射频RFID信号攻击模拟效果探讨
国内外频发各种RFID攻击事件,一些黑客利用RFID技术破解各种消费卡、充值卡,然后盗刷恶意充值消费卡,有些人也因此获刑了。现在是物联网推动着移动互联网发展,很多手机终端也被嵌入NFC功能,用于公交、移动支付等等,很多的安全问题也逐步被曝露出来。
RFID攻击模拟效果
1、卡数据嗅探
多数人身上一般都会携带有各类射频卡,里面可能一些个人信息,或者门禁监控系统的验证信息。一些攻击者可能通过一些设备,去读取受害者身上的射频卡信息(能否读取成功就取决于射频卡的通讯距离了),然后通过将这些数据写入空白卡或者其它方式进行重放攻击,就可以获取他人的身份验证或者其它敏感信息。
2、模拟卡数据重放
由于卡上uid不可写(特种卡除外),对于一些加入uid识别的读卡系统,有时需要模拟卡片数据才能绕过验证,这些借助proxmark3即可实现。
3、卡复制
在很多门禁卡中,经常使用存储器头部的uid值作为一个判断值,如果我们直接将它写入一张空白卡中,就可复制出一张卡来通过门禁。但由于多数卡的uid部分是不可写,因此必须使用到uid可写的特种卡,至于如何获取到这种卡,大家自行百度下。
4、卡数据破解与篡改
一些Mifare Classic卡(比如A类卡)很早之就已经被破解出来,但目前使用仍是很广泛,很多公司、学校的门禁、餐卡、一卡通都仍在使用这类芯片卡。
下面是某食堂餐卡被破解后获取到的数据,只有第1扇区存在数据。通过多次充值、消费等数据的对比,得到以下结果:
1、余额值有两个字节,前1字节代表几角,后1字节代表256的倍数,其计算单位也是角,比如充值前余额为64 00,即代表余额0x64 = 100 = 10元;充值后余额为58 02,即代表余额0x58 + 2*256 = 60元。
2、检验值也是由2个字节构成,比如上面的AE 01,通过数据对比,发现在充值后该值与金额变化无关,而跟消费日期有关,因此我们可以直接修改下方余额来达到充值的目的,因为充值的时候并不会改变上面的消费日期,省去分析检验值的计算原理的步骤。
比如我们打算给上面的60块餐卡充值,使其余额达到256元,那么可以直接将上面的58 02修改为00 0A:
测试结果:
RFID为何物
用学术派的话来讲,就是“射频识别,(Radio Frequency IDentificaTIon,简称RFID)技术,是一种无线通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。”这种概念对于多数人来说可能不太好理解,但如果直接用下图来描述,应该就更直观了,就是帮助用户图方便、图省事的隔空交互技术。常见的RFID产品有交通卡、门禁卡、借书卡、动物身份标签、电子车票等等。
RFID主要由3部分组成:标签、阅读器、天线(有时也包括中间件),如下图所示(源自网络)。读卡器通过内置天线发送一定频率(包括低频、高频、超高频及微波,其中高频13.56MHz在生活中可能比较常见)的无线电信号,当射频标签(比如交通卡)进入读卡器的磁场感应范围后,读卡器就可以获取标签中的相关信息。
RFID与NFC有何关系
相信很多人分不清RFID与NFC(近距离无线通讯技术)的关系,在微博或文章中经常看到两者被混为一谈的。大体可以用以下几点来说明:
1、NFC本身就是基于RFID演变而来的,RFID勉强可以算是NFC“他爹”;
2、频段差异:NFC仅限于13.56.MHz高频段,不像RFID有较多频段可选;
3、通讯距离差异:NFC大多在10厘米以内,而RFID可能扩展到几十米;
4、工作模式差异:NFC可被当作射频卡、阅读器或者点对点模式来使用,因为它把非接触读卡器、非接触卡和点对点功能都整合到同一块单芯片中,不像RFID需要阅读器和标签组成,因此NFC会更轻巧便捷,更注重信息的交互;
5、应用场景差异:RFID更多被运用于生产、物流、资产管理等,更适合厂商企业,而NFC则更多运用在公交、门禁、手机支付上,更适合平民大众。
防御方案探讨
很多时候,我们都是把各种射频卡放在钱包里,因此国外有家厂商就利用不锈钢制作出一款可防御RFID黑客的钱包,价格在100美元左右,据说薄如皮质,触如丝绸,土豪们可以网购一个试试。它主要是利用“法拉第笼”的原理去屏蔽外电场的干扰,从而防止钱包内的RFID卡被外界读取到。
除此之外,以下几点也许可以作为一个参考:
1. 避免使用Mfiare Classic芯片卡,而采用更强加密算法的芯片卡,比如CPU卡。
2. 涉及金额等敏感数据应进行加密处理,禁止明文存储。
3. 读卡器与后端主机数据库实行线上作业,采用即时连线的方式进行系统核查。
4. 结合uid进行加密,并设置uid白名单,提高攻击者破解成本,但可能被特殊卡绕过。
5. 对全扇区采用非默认密码加密,提高破解成本,但可能通过DarkSide方式暴力破解。