利用PN532在小米手环上模拟加密门禁卡

Posted by AaronYang on August 23, 2020

利用PN532在小米手环上模拟加密门禁卡

用小米手环直接模拟小区门禁卡时出现“该卡是加密卡,不支持模拟”的情况,门卡支持范围中也确实提示仅支持未经加密且频率为13.56MHz的门卡。无法模拟小区门禁卡这让小米手环NFC版瞬间失去了一半的价值,还有一半就是公交卡。为了充分发挥其作用,必须破解加密门禁卡。

什么是NFC呢?如何辨别NFC卡的类型?

近场通信(Near Field Communication,简称NFC),是一种新兴的技术,使用了NFC技术的设备(例如移动电话)可以在彼此靠近的情况下进行数据交换,是由非接触式射频识别(RFID)及互连互通技术整合演变而来的,通过在单一芯片上集成感应式读卡器、感应式卡片和点对点通信的功能,利用移动终端实现移动支付、电子票务、门禁、移动身份识别、防伪等应用。

NFC卡可以分为ID卡和IC卡。ID卡(身份识别卡),为低频卡,工作频率为125KHz~1000KHz,编号固定,卡号公开,不可写入数据。IC卡全称集成电路卡,工作频率为13.56MHz。日常使用的电梯卡,门禁卡等智能卡大都为IC卡。

软硬件基础

购买PN532模块后需要将排针焊接到模块上,然后用排线将PN532模块和串口通信模块相连,对应关系如下:

串口通信模块---------PN532模块
  5.0V               VCC
  GND                GND
  TXD                SCL
  RXD                SDA

硬件准备好后,首先安装串口通信模块的驱动,再下载IC卡分析软件以及安装APP,一切准备就绪后就可以破解加密门禁卡了。

破解加密门禁卡

  1. 破解加密门禁卡的UID以及加密部分

将门禁卡放置在模块上,运行MifareOneTool.exe并按图示步骤进行,稍等片刻后,终端会显示解码内容,同时会跳出对话框让你保存DUMP文件。

  1. 分析DUMP文件,并制作空白卡

将DUMP文件拖入到M1卡分析分析助手可以看到门禁卡的信息,此时破解工作已经完成,接下来就是复制门禁卡的过程。在此之前,我们需要提前准备一张空白卡,用来转接数据。我们将空白卡放置在PN532模块上,打开MifareOne Tool的高级操作模式,点击UID写号,将解密后的卡号16285FF5写入,如果写入成功,那么一张ID相同的未加密复制卡就制作完成了,如果出现后门解锁指令[1/2]: 失败或没有响应的错误,则需要利用手机应用程序MIFARE经典工具中的写标签功能将0扇区的第一块整个写入包括校验位。

  1. 模拟门禁卡并写入加密数据

有了同卡号的复制卡后,便可以打开小米运动APP模拟这张普通卡了,此时小米手环模拟了一张同卡号的模拟卡,之后再通过PN532模块将除0扇区1块数据之外的所有数据写入小米手环的模拟卡中。打开软件MifareOne Tool进行检测连接 -> 扫描卡片 -> 写入普通卡,前面两步不能省略,否则会出现块写入不成功的情况。当然,用手机APP中的写标签 -> 写转储功能也是可以的。

总结

MIFARE经典工具也有读卡功能,但是读取加密卡时会出现部分扇区无法读取的情况,所以PN532模块配合软件真正起到的作用是破解加密卡的作用。个人猜测,其实门禁卡识别装置可能只识别卡号,加密部分数据并不会参与验证功能,所以可以只制作一张同卡号的普通卡,也可以进行刷卡。另外提一下,如果门禁卡识别器不仅识别卡号还识别厂商信息的话,那么小米手环及时模拟成功了门禁卡也无法通过验证,因为厂商信息无法修改。

这次复制加密门禁卡确实费时费力,但结果还是圆满的。其中遇到了不少坑,比如驱动找不到、卡号无法写入、复制普通卡时部分块无法写入…… 但也学到了不少知识,对于IC卡的底层也算是有些了解了,享受不断折腾,慢慢摸索,最终解决的一系列过程。市场上也可以花钱请人破解,但是如果自己学会了“渔”,之后怎么玩都行。