关于”RFID安全技术探讨”的一点小看法

  • A+
所属分类:硬件安全

前言:前两天刚好看到TSRC的一篇关于RFID安全的文章<RFID安全技术探讨>,就有了一点点小看法。

RFID攻击模拟效果

1、卡数据嗅探

文中提到的关于所谓的“嗅探”,在我结合了“(能否读取成功就取决于射频卡的通讯距离了)”上下文分析,以及作者所截图的原视频来分析。这样的手法的成功条件只取决于距离,无所谓其他加密机制。这只是一个UID的读取。而作者小标题是对于“卡数据嗅探”,内容却根本和嗅探这种攻击手法无关。

而实际上“嗅探”应该是窃听读卡器与卡之间交互的数据。由此看来作者应该是对嗅探的概念不熟悉。

如果要用Proxmark 3来进行嗅探符合ISO/IEC14443A标准的卡,命令是 hf14asnoop。官方的手册也明确说明,嗅探这种攻击方式是要在读卡器与卡之间通信时进行的。而不是单独对一个设备进行所谓的”嗅探“。

2、模拟卡数据重放

作者写的通过模拟卡来完成数据的重放,而这边的数据,作者应该指的是前面获取的无需任何密钥就获得的UID。文中写的模拟某高频卡的UID值,这个也只是模拟出UID这个数据。这和数据重放是不一样的东西。

重放攻击(Replay Attacks):是在已经监听过合法交互信息以后,再次用这些合法信息对设备进行交互,如对于门禁系统这类的,通过监听卡与读卡器之间的通信数据,再用伪装成合法卡,与读卡器进行交互,从而绕过系统认证。对于卡上有保存着重要信息的,通过监听卡与读卡器之间通信数据,记录下读卡器认证卡的通信数据,从而伪装成合法读卡器与卡进行交互。在重放的过程中有时还可以对重放的内容进行修改。

由此看来作者应该是对数据重放的概念不熟悉。

3、卡复制

作者在写卡复制这部分的时候,所提到的事是最简单的认证情况,只通过UID进行认证。但是不是只写入UID就可以了呢?就拿符合 ISO/IEC 14443 标准的卡来说,下面是关于UID的规范。 

关于”RFID安全技术探讨”的一点小看法

配图来自MIFARE and handling of UIDs [AN10927]不管是4 byte UID,7 byte UID还是10 Byte UID 都要接着一个BCC,是对前面4个字节进行xor,用来校检。由此可以看出,作者对UID的认识还不够深刻。况且Block 0/Sector 0的数据不仅仅是UID,还有制造商数据(Manufacturer Data),拿MIFARE Classic 1K 来说,如下图所示 

关于”RFID安全技术探讨”的一点小看法

配图来自 MIFARE Classic 1K datasheet

只写入UID不一定能保证这张卡就是一个合法的卡。

对于MIFARE Classic的卡复制来说,应该是两张卡的全部数据要一模一样,包括制造商数据块(Manufacturer Data:Block 0 /Sector 0)里面的所有数据。数据块(Data blocks),还有Sector trailer,Sector trailer包含了Key A 和 Key B 以及存取控制情况。

4、卡数据破解与篡改

作者在这部分一笔“一些Mifare Classic卡(比如A类卡)很早之就已经被破解出来,” 将是如何破解卡而获取到数据带过,而转而说了卡内数据的分析,而我也不懂作者所说的A类卡是什么,以及到底有哪些MIFARE Classic系列的卡没有被破解。此时题目作者所说的破解应该指的是卡内数据的分析。

关于RFID的攻击,应该是对于RFID安全的漏洞来说的,作者着重讲了电子钱包的数据分析,来描述对RFID的攻击模拟。在以MIFARE Classic系列卡为例子的这一部分我们看不到真正的漏洞,这部分真正的漏洞应该是,MIFARE Classic加密算法缺陷,以及基于卡类密钥的使用不规范,再加上对于整个应用系统来说,设计者没有对消费系统进行联网,使得攻击者可以破解密钥,和篡改数据

RFID为何物

射频识别,(Radio Frequency IDentification,简称RFID)技术,它的交互过程应该叫做耦合。耦合的类型有电感耦合(Inductive coupling)和电磁反向散射耦合( Electromagnetic Backscatter Coupling )

RFID与NFC有何关系

“相信很多人分不清RFID与NFC(近距离无线通讯技术)的关系,在微博或文章中经常看到两者被混为一谈的。大体可以用以下几点来说明:”作者看起来也有点像也是分不清两者的关系

1、NFC本身就是基于RFID演变而来的,RFID勉强可以算是NFC“他爹”;

RFID本身是一个范围非常广的概念,而NFC有一部分的特性可以当做RFID,而不是勉强啥啥。下面第2点和第3点,讲述所谓“频段差异”和“通讯距离差异”也是一样的问题,主次关系不分。

4、工作模式差异

NFC将那些功能整合在一起,不是与RFID的差异,而是因为技术的兼容。

关于”RFID安全技术探讨”的一点小看法

配图来自飞利浦的<NFC vs ISO14443 vs Felica>

PS:关于技术的兼容,NXP的MIFARE®和Sony的FeliCa™都修复了指令集。像NXP也有相关文档对产品的兼容进行描述和说明。如:AN1305 <MIFARE Classic as NFC Type MIFARE Classic Tag>和AN1304<NFC Type MIFARE Classic Tag Operation>

防御方案探讨

1.避免使用Mfiare Classic芯片卡,而采用更强加密算法的芯片卡,比如CPU卡;

当换成了CPU卡,物理介质上升级了,而也有不少方案是通过CPU卡来模拟MIFARE Classic系列的卡,你物理性质不一样了,可是还是用了相同的技术。还是会存在老漏洞,默认密钥枚举,和监听这样的攻击同样适用。而CPU卡并不就代表着安全,CPU卡的安全问题也不少。

2.涉及金额等敏感数据应进行加密处理,禁止明文存储;

数据本身已经是加密的了,卡自身的防护是第一道最结实的保护,但破解了卡,数据再加密也没有太大了意义。

3.读卡器与后端主机数据库实行线上作业,采用即时连线的方式进行系统核查;

这样实时的系统构架只能在小范围内适用,如果网络出现了问题,系统就无法工作了。防御的切入点不应该在这个地方。不管是同步/异步(离线,定时上传到服务器进行数据对比)系统都会存在时间戳,重放攻击都有一定的可以利用的空间。

4.结合uid进行加密,并设置uid白名单,提高攻击者破解成本,但可能被特殊卡绕过;

这边作者给参考的前提感觉好像还是通过UID进行认证,这样的验证是很薄弱的,在一个比较薄弱的前提下给的参考。还附带“但可能被特殊卡绕过”那么这样的说法就不应该算是在防御,防御的话应该是在已知的情况下尽可能减少被攻击的可能性。就像作者第一点讲的,换成更完善的加密算法的卡,不仅是识别UID,还可以增加一些其他的措施,比如校检数据。

5.对全扇区采用非默认密码加密,提高破解成本,但可能通过DarkSide方式暴力破解。

这一点要明确指出是在MIFARE Classic芯片系列的卡上,不是所有IC卡都有DarkSide攻击。而作者这样所谓的防御,总感觉是拆东墙补西墙。提高了一个小小的门槛,但并不修复问题。而且DarkSide攻击是针对PRNG(伪随机数发生器),而不是暴力破解。采用“嗅探”同样也能破解MIFARE密钥。

以上只是个人的一点小看法,没有针对任何组织或者个人。说的不对的地方还希望大家指出来。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: