对某种射频卡的简单安全探究

本文仅是对特定射频卡(RFID卡)在技术上的简单探究,请勿以此用作非法用途。

本次研究的RFID卡是Mifare1 S50卡(1K容量),符合ISO / IEC 14443型标准,其在国内比较常见,是由恩智浦公司(NXP)开发生产,亦有国产的兼容卡。

简介

这种卡片的就像一个强制加密的硬盘,密码和数据都存在硬盘里面,厂家出厂会把密码设置默认密码,FFFFFFFFFFFF。
其中一共有16个扇区,就像硬盘被分成了16个区,每个区都有独立的两个密码来管理,分别是A密码和B密码。两个密码的权限由控制位决定,一般情况只用A密码便能读写数据。另外有些控制位更改了后就不可逆转。
每个扇区又有四个块,就像一个分区面有四个文件一样,如下图。

扇区0的块0为制造商使用,并不可以更改,其中前4字节为卡片的UID,无需密码可读。(有一种国产M1卡可改UID,在国内叫UID卡,在国外叫 Chinese Magic Card 中国魔术卡)

漏洞

1.PRNG漏洞 :通过PRNG漏洞攻击,可获得0扇区密匙。

国外的安全研究人员发现,MIFARE Classic采用的是Crypto-1私有加密算法,其算法的特点就是对称式的密码算法或者说是私钥密码系统。其主要组成部分是伪随机数发生器(PRNG)、48位的线性反馈移位寄存器(LFSR)以及非线性函数。由于算法当中的Filter Function的设计出现缺陷,导致改变线性反馈移位寄存器的后8位数值就有可能得到所对应的Keystream。这个缺陷类似于802.11b WEP算法,不同的明文有极高的可能性被相同的Keystream,使得整个加密算法出现了漏洞。

2.嵌套认证漏洞 :使用任何一个扇区的已知密匙,获取所有扇区的密匙。

已知一个扇区的密钥,可以根据漏洞得到其它密钥的32位,然后对其它16位进行穷举攻击,该穷举耗时很短。

3.通信嗅探 :通过监听卡片和读卡设备的通讯获得密钥。

M1卡在读卡机和卡片交互数据和密码时,使用了crapto1算法。即便同一张卡,同样的密码,嗅探得到交互数据也是随机的,但是只要获得前面提到的四组随机数组,以及UID,就可以反解出密匙。

由于水平有限,漏洞的详细原理不叙述,感兴趣请自行搜索相关论文。:D