1 PM3介绍算法
proxmark3是一款开源的RFID安全研究平台黑色按钮从图中咱们能够看到左上方有一颗黑色按钮,这个按钮就是Proxmark3的功能键,主要用于启动嗅探模式以及中止进程功能,其中内置高频和低频天线,可以识别和读取大部分的RFID卡片,而且国产的PM3还能够经过转接头等工具和手机等智能设备进行链接,从而实现跨平台的使用。数据库
前面对ID与IC之间的差异进行比较时得知,ID卡内的卡号读取无任何权限,易于仿制.IC卡内所记录数据的读取,写入均需相应的密码认证,甚至卡片内每一个区均有不一样的密码保护,全面保护数据安全。因此这里对于RFID卡片的破解主要目标就是IC卡。安全
这里咱们使用典型的飞利浦公司的16扇区64扇块M1卡做为实验对象,首先看一下这种卡片内部的数据存储形式。函数
经常使用的M1卡主要有荷兰恩智浦(NXP)公司生产的S50 和S70,都是属于MifareClassic家族的。以S50为例,国内兼容的最好的厂家是上海复旦微电子生产的FM11RF08芯片,区别是NXP原装S50芯片的前15个扇区的密码块的控制位是:FF078069,最后1个扇区的密码快的控制位是:FF0780BC。工具
国产复旦FM11RF08芯片的全部扇区的全部控制位均为:FF078069,其次看芯片第0扇区第0块的代码,从第10位开始看,若是后面是08040062636就是复旦的芯片,若是后面是08040023569就是贝岭芯片。oop
MifareClassic 1k共有16个扇区,分别为0-15个扇区;每一个扇区有4块,分别为0-3块,每一个块有32个字符;0扇区的0块为只读块,只存储厂商代码和UID号。测试
其余每一个扇区的前3块为数据库,最后一块为密码块。密码块的前12个字符为A区密码,中间8个字符为控制位,后面12个字符为B区密码。ui
控制位主要是读卡器在验证卡的时候所用到的,不一样的控制位表示不一样的验证方式。加密
结合上图,咱们能够来计算一下MifareClassic 1K的真实容量,首先1扇区的0块为只读,全部扇区的3块都是固定的没有容量,那么真实容量就是:spa
32(每一个块的容量)×3(每一个扇区可写的块)×16(共16个扇区)-32(除去0扇区0块)=1504字节
1504字节比1k多出了480个字节,因此MifareClassic 1K 的真实容量将近1.5K
IC卡在制造时制造厂商为了方便会将除0扇区以外的扇区的全部密码默认设置为FFFFFFFFFFFF,这就是IC卡片的默认密码,咱们可使用PM3对卡片的默认密码进行爆破。
早期的PM3要把高频天线链接到Proxmark3的天线接口,而且链接完成以后要查看一下天线与PM3链接以后的工做电压是否正常;国产的PM3工具在设计时就将高频天线和低频天线安装到一块儿,在使用时只须要实用工具对其电压等进行探测是否正常。因为PM3是一款开源的硬件产品,最先在2000左右就已经开始有人开始对其进行研究,因此如今相对的技术已经很是成熟,在外文资料中常常会看到一个PM3对应的利用工具,这个工具分为两种,一种是命令行下的利用工具,另一种是英文的可视化图形界面。
可是这两款软件都有其对应的缺陷,在通过国人的二次开发以后推出了PM3 GUI版的利用工具。
软件中继承了绝大多数常见的软件,可以对RFID进行快速攻击。
首先使用数据线将PM3与电脑链接,并在设备管理器中查找相对应的串口。
链接成功后检测工做电压
将IC卡放置在高频卡读卡器位置,天线电压发生变化
高频天线电压降低很是明显,这就说明咱们如今所持有的卡片为高频IC卡,下面尝试对器破解,首先先读取卡片类型。
什么是proprietary non-iso14443a card found,RATS not supported?
有时候Proxmark3在读取部分MIFARE Classic卡UID的信息时,由于没法获得RATS的返回信息,会判断为非ISO14443a标准的卡.国内有太多MIFARE Classic类的卡,并非NXP出产的,因此Proxmark3就会出现了这样子的提示!
同时还会提示是不是中国后门卡,这也是由于IC可修改UID的卡片是中国人首先研究出来的,因此被统称为中国后门卡。后面咱们会有详细的介绍。
一般当咱们拿到相关的卡的时候,咱们应该先用chk命令去检测一下测试卡是否存在出厂时遗留的默认Key,由于使用默认的Key致使恶意用户可使用其进行卡的信息读取以及修改。
已知的部分默认Key列表
nffffffffffff
nb0b1b2b3b4b5
n000000000000
na0a1a2a3a4a5
naabbccddeeff
n714c5c886e97
na0478cc39091
PM3程序中内置了一个默认密码列表,并会自动阐释使用者以列表中的密码进行探测。
而且经过默认密码扫描功能成功读取了除1扇区和2扇区的山区密码
这是利用嵌套认证漏洞使用任何一个扇区的已知密匙,获取全部扇区的密匙,此漏洞成功率较高,这个漏洞也被称做知一密求全密,咱们如今已经知道其中的几个扇区的默认密码,使用PM3的知一密求全密的功能对扇区一、2进行破解
成功破解出一、2扇区的密码。
MIFARE Classic采用的是Crypto-1私有加密算法,其算法的特色就是对称式的密码算法或者说是私钥密码系统。其主要组成部分是伪随机数发生器(PRNG)、48位的线性反馈移位寄存器(LFSR)以及非线性函数。因为算法当中的Filter Function的设计出现缺陷,致使改变线性反馈移位寄存器的后8位数值就有可能获得所对应的Keystream。这个缺陷相似于802.11b WEP算法,不一样的明文有极高的可能性被相同的Keystream,使得整个加密算法出现了漏洞。
Proxmark3基于PRNG的安全缺陷是进行随机数碰撞,利用PRNG的安全缺陷咱们能够很快速地获得对应的密钥,从而进行进一步的破解操做。
若是咱们没法进行基于PRNG的安全缺陷破解的时候,很大多是由于卡类增长了对应的机制(增长了防碰撞机制)以及修复了漏洞。
命令:hfmf mifare当输入命令后,须要耐心等待,整个过程花费的时间有快有慢。
结果出现后,首先要判断的是Found invaidKey仍是Found vaidkey,若是是invaidkey的话,就是表明基于PRNG的漏洞出现的Key是错误的,并不是正确的Key来的。可是最起码能够证实卡是存在PRNG漏洞的。接下来就是记住数值当中的Nt,这个数值将会被利用来进行第二次的PRNG漏洞的攻击测试
命令:hfmf mifareNT值
当输入命令后,窗口会再次进入进度状态,依然请记住耐心等待结果,而且如需中止,请按黑色按钮
由于基于PRNG的漏洞进行的破解,因此有时候会出现屡次Nt的循环,这是很正常的结果,咱们须要不断的利用Nt去进行真正Key的破解。整个过程是漫长而乏味的
前面提到过中国后门卡,这里给你们讲解一下中国后门卡的原理的发展。
在早期RFID技术开始兴起时,卡片的价格还比较高昂,随着后期这项技术的关注程度愈来愈高,中国的不少厂商也考试对这项技术进行研究,并很快研究出了和M1系列卡片功能一致且价格极其低廉的卡片,可是后期有一部分人发现这种卡片在使用时有的须要实现相同功能,可是卡片又没有办法复制,因此就开始研究一种可以复制UID的卡片,并在后期成功研制出可以进行复制的卡片,这就是早期的CUID卡,这种卡片可以在正常使用时间内无限次的修改卡片的UID,并可以实现和市场上流通的卡片相同的功能。
后来不少厂商发现了这一问题,开始研究如何对后门卡进行预防,随后出现一大批可以检测中国后门卡的方案,其中大部分方案都是利用中国后门卡的自身的功能对其中的uid进行修改测试,若是机器判断可以修改UID,即中止对这张卡进行服务。
后来研究人员又对后门卡进行升级,而后推出了FUID卡,这种卡片和CUID卡相相似,可是它有一个特性就是在出场以后只能对其UID进行一次修改,一次修改完毕以后机会将0扇区锁死,没法再次修改,这种方案成功绕过了场上的检测机制。ID卡片的发展机制与之相似。
下面进行IC卡的复制实战,首先将卡中数据所有读取并写入到编辑区
放上空白的S50卡片,并点击克隆到空白S50卡片,待写入成功以后便可将数据写入到空白卡中。并可以使用复制以后的卡片进行河源卡同样的操做。
RFID嗅探也是一种很是常见的RFID攻击方式,对于一些卡片咱们没法使用默认密码或者PRNG漏洞攻破其密码,可是咱们仍然可使用嗅探的方式对其进行攻击,从而嗅探出密码。
点击GUI软件中的现场有卡嗅探按钮,或者在命令行下输入hf 14a snoop
而后将卡片读卡器和PM3按照以下顺序进行放置
待嗅探完成以后按下PM3左侧按钮,并在命令行下输入hf list 14a命令查看嗅探结果。
并使用工具计算出扇区密码
——by laohei
无线安全技术交流:QQ:2834283053