经过9个小时的休整我又踏上了飞往福州的路上,经过四天的休息并且远离网络的日子,我终于回到家了!昨天在史上最强安全资讯网站看到《研究人员重置交通卡数据搭乘免费火车》的新闻。而当中的某些内容有所偏差,所以就冲动地写下了这一篇小小的文章。
研究人员利用基于NFC的城铁交通卡的漏洞,开发出一个Android应用程序,可以让持卡者免费搭乘城铁。
首先,大家知道什么是NFC吗?
NFC是Near Field Communication缩写,即近距离无线通讯技术。
由飞利浦公司和索尼公司共同开发的NFC是一种非接触式识别和互联技术,可以在移动设备、消费类电子产品、PC 和智能控件工具间进行近距离无线通信。NFC 提供了一种简单、触控式的解决方案,可以让消费者简单直观地交换信息、访问内容与服务。
NFC和RFID本质上是有区别的,前者是兼容后者的,而前者主要是基于移动终端设备使用的,例如现在我们使用的Google
Android Phone就是有NFC的功能,因其兼容RFID的原因,所以NFC是可以读取基于ISO14443A/B的Tag(标签)以及日本的Felica标签(也是ISO14443A标准)。并且从Google开始引入NFC技术之后,就一直对外宣传Google
Android Phone是可以NFC模拟RFID Tag的,但是因为一些安全的原因,其系统底层的驱动并未发布,所以在市面上暂时是没有任何基于交通系统的RFID
Tag是可以模拟的。而文章提到的问题就出现了“研究人员利用基于NFC的城铁交通卡的漏洞”,这应该说的是基于RFID的城铁交通卡而并非是基于NFC的。
重放/重置攻击顾名思义就是利用原有数据进行重写利用,从而绕过消费终端设备的限制,而该攻击手法主要是针对以下两种模式:
1、基于UltraLight卡的重放/重置攻击
首先,MIFARE ultralight是不存在加密的,所以是不需要认证的,攻击者只需要针对数据进行识别,从而找到相关的数据进行修改就可以达到不断使用的效果,但这个和我们理解的重放/重置攻击是不一样的。因为攻击者只是基于该卡的数据进行了很详细的分析,从而利用手机进行修改,而并非在修改前保存卡内的数据,然后进行数据覆盖操作而达到重放/重置攻击。
2、基于CLASSIC/PLUS卡的重放/重置攻击
因为CLASSIC/PLUS卡是经过加密的,所以首先攻击需要破解卡的加密算法,然后分析卡内的数据以及架构,利用NFC手机的程序(例如NFC-War)去读取卡内/修改卡内的数据,从而达到修改的效果。而重放攻击就是针对破解后备份卡内的数据,当卡内的数据使用完后重新复写/复制到卡内,这样子就好像我们所使用的Ghost镜像一样,不断的修复数据,攻击者就可以利用NFC手机+卡的备份数据覆写完成重放/重置攻击。
以上两种攻击模式的问题在于,因为消费终端设备并未对消费卡进行验证而导致的,而这样子的漏洞在我们国内也非常常见的。
文中刚刚提到Google Android
Phone尚未发布NFC模拟功能,我们将会在完整版的NFC-War当中发布NFC模拟卡的功能,使得NFC-War可以做到破解卡 ——>
得到卡的数据 ——> NFC手机模拟卡进行重放攻击等。
[分析]研究人员重置交通卡数据搭乘免费火车之重置攻击,布布扣,bubuko.com