记一次宿舍门卡的分析 #1

本人非相关专业人士,仅记录探索过程。其中提到的结论和分析均有可能出现错误。因本文章造成的一切后果均与本人无关

本实验进行地点为原重庆互联网学院

学校搬了新校区后,宿舍的门从传统的钥匙变成了类似于酒店的IC卡片。本来正在制作中的电机联网用手机开门便搁置了,开始研究了通过手机打开门的方式。

尝试使用设备NFC模拟

手机NFC直接模拟

我使用的小米手机,所以按直觉,当然是先尝试使用了小米钱包中的门卡模拟功能。

使用手机直接模拟后的门卡,在前几个扇区上,和实体门卡没有任何区别,但是介于当时读卡器还没到,所以我的探索当时也止步于此。

虽然前几个扇区和原门卡一致,但是在使用手机刷卡时,门锁没有任何反应。手机直接模拟以失败告终

手机模拟白卡后写入数据

在网上搜索了很多资料,发现了一种新的方法——可以通过将加密卡的第一扇区写入到一张空白卡中,再让手机模拟。这样手机就可以模拟出一个除了第一扇区,其余全为空的白卡。接着,再使用读卡器写入完整数据即可。

这时候,读卡器模块正好到手了,便进行了尝试。

  1. 首先通过 M1Tools 读取房卡和白卡,导出 HEX 文件
  2. 用 WINHEX 打开房卡文件,把第一扇区的数据复制到白卡的第一扇区。保存关闭写入白卡
  3. 打开手机,模拟实体门卡,将只写入了第一扇区的卡片贴到手机后。
  4. 打开这张卡,贴在读卡器上,再写入完整房卡数据

完成后,再尝试开门,见证奇迹的时刻!!!

失败。。。还是没反应

手表NFC直接模拟

我现在用的手表是华为 GT-4,也有着NFC模拟门卡的功能。但是因为以前在其他地方使用的时候,小米手机模拟成功,华为模拟不成功,所以一直对华为设备模拟加密卡有一定偏见。但是这次直接模拟加密卡,在扫描两次后,居然成功开门了。

再次使用手机读取华为手表门卡中的内容,发现和手机读取的门卡相比,第一扇区甚至还缺少后面几位的数据

分析门锁对卡片的检测

从以上的两个实验来看,门锁对小米手机模拟的完整数据的门卡没有任何反应,对华为手表模拟的不完整数据的门卡却可以正常开门。另外,尝试了使用空白M1卡进行开门。在没有数据时,门锁有反应,但不会开启锁芯。

小米手机华为手表M1空白卡
正常模拟,无法开门正常模拟,正常开门不模拟,无法开门

根据门锁的表现,可以粗略得出以下结论

表现
类型错误,数据正确不反应
类型正确,数据错误不开门,蜂鸣器连续快速短响
类型正确,数据正确正常开门,蜂鸣器播放音乐

看来,门锁的读卡器中存在防火墙。在卡的类型出错时,便无法反应。否则,便校验卡片的数据进行对应的提示。

看来手机无法模拟是硬件上的问题,我们没办法左右,手表上使用线圈又有点过于小了,刷卡非常不方便,每次都要对半天位置。

最终 Workaround

既然没办法通过手机模拟,那么直接通过硬件实现就行了。但是因为手机本身有磁场影响,直接把卡放在手机后面当然是行不通的

(部分手机可能可以。试了下索尼 Xperia 金属壳子的可以,只要不在NFC天线旁边)

于是在网上购买了一批 NFC 贴纸,各种形状的。来测试每种形状的体验

(顺便吐槽一句,好像这次买的 PN532 是wai货,不把线圈怼在上面根本识别不到,哪个**画的PCB,还卖这么贵)

加上一批屏蔽膜,用于屏蔽一小块的手机信号。

把加密卡跑了一下午,获取卡片的密码后,完整读取卡片扇区,写入贴纸标签,贴上屏蔽膜,粘在手机壳内,成功尝试开门

对数据进行的对比分析,后面再更新

chevron_right

Join the conversation

comment 2 comments
  • admin01

    非常好解决方法,使我备受启发,爱来自桥的城市

    • Avatar photo

      hina

      我了个admin01

Leave a comment

您的邮箱地址不会被公开。 必填项已用 * 标注

Comment
Name
Email
Website