自主访问控制系统的问题 - 意想不到的地方

祝大家美好的一天。 我将从促使我进行这项研究的背景开始,但首先我要警告您:所有实际行动都是在治理结构的同意下进行的。 任何试图使用该材料进入无权进入禁区的行为均属刑事犯罪。

这一切都始于我在清理桌子时不小心将 RFID 入口钥匙放在 ACR122 NFC 读取器上 - 想象一下当 Windows 播放检测到新设备的声音并且 LED 变成绿色时我有多惊讶。 直到这一刻,我相信这些键只能在 Proximity 标准中使用。
自主访问控制系统的问题 - 意想不到的地方
但既然读者看到了它,这意味着密钥满足 ISO 14443 标准之上的协议之一(又名近场通信,13,56 MHz)。 打扫卫生很快就被忘记了,因为我看到了一个机会,可以完全摆脱那组钥匙,并将入口钥匙保留在我的手机中(公寓早已配备了电子锁)。 开始研究后,我发现塑料下面隐藏着一个 Mifare 1k NFC 标签——与企业徽章、交通卡等的型号相同。 起初尝试进入扇区内容并没有成功,当密钥最终被破解时,发现只使用了第3个扇区,并且芯片本身的UID被复制到其中。 看起来太简单了,事实也确实如此,如果一切都按计划进行的话就不会有文章了。 所以我收到了钥匙的内脏,如果你需要将钥匙复制到另一把同类的钥匙上,也没有问题。 但任务是将密钥传输到移动设备,这就是我所做的。 这就是乐趣开始的地方——我们有一部电话—— iPhone SE 与既定 iOS 13.4.5 测试版 17F5044d 以及一些用于 NFC 自由操作的自定义组件 - 由于一些客观原因,我不会详细讨论这一点。 如果需要,下面所说的所有内容也适用于 Android 系统,但有一些简化。

要解决的任务列表:

  • 访问密钥的内容。
  • 实现设备模拟密钥的能力。

如果第一个一切都相对简单,那么第二个就会出现问题。 第一个版本的模拟器无法运行。 这个问题很快就被发现了 - 在模拟模式下的移动设备(iOS 或 Android)上,UID 是动态的,并且无论图像中硬连线什么,它都会浮动。 第二个版本(以超级用户权限运行)将序列号严格固定在所选版本上 - 门打开了。 然而,我想把一切都做到完美,最终组装了一个完整版本的模拟器,可以打开 Mifare 转储并模拟它们。 我一时冲动,将扇区钥匙更改为任意钥匙,然后尝试打开门。 和她… 打开! 过了一会儿我发现他们要开门了 任何 带有此锁的门,即使是那些原来的钥匙不适合的门。 对此,我创建了一个新的任务列表来完成:

  • 了解哪种控制器负责处理按键
  • 了解是否存在网络连接和共同基础
  • 了解为什么几乎不可读的钥匙变得通用

在与管理公司的工程师交谈后,我了解到使用简单的 Iron Logic z5r 控制器无需连接外部网络。

CP-Z2 MF 读卡器和 IronLogic z5r 控制器
我得到了一套实验设备:

自主访问控制系统的问题 - 意想不到的地方

从这里可以清楚地看出,该系统是完全自主的并且极其原始。 起初我以为控制器处于学习模式 - 意思是它读取钥匙,将其存储在内存中并打开门 - 当需要记录所有钥匙时使用此模式,例如在更换钥匙时锁在公寓楼里。 但这个理论并没有得到证实——这种模式在软件中被关闭,跳线处于工作位置——然而,当我们启动设备时,我们看到以下内容:

设备上的仿真过程截图
自主访问控制系统的问题 - 意想不到的地方
...并且控制器发出信号表示访问已被授予。

这意味着问题出在控制器或读取器的软件上。 让我们检查一下读卡器 - 它在 iButton 模式下工作,所以让我们连接 Bolid 安全板 - 我们将能够查看读卡器的输出数据。

该板稍后将通过 RS232 连接
自主访问控制系统的问题 - 意想不到的地方

通过多次测试的方法,我们发现阅读器在授权失败的情况下会广播相同的代码:1219191919

情况开始变得更加清晰,但目前我不清楚为什么控制器会积极响应此代码。 假设当数据库被填满时——偶然或故意地出现了带有其他扇区密钥的卡——读卡器发送此代码并且控制器保存它。 不幸的是,我没有 IronLogic 的专有程序员来查看控制器密钥数据库,但我希望我能够引起人们注意问题存在的事实。 提供了如何处理此漏洞的视频演示 链接.

PS随机加法理论与以下事实相反:在克拉斯诺亚尔斯克的一个商务中心,我也设法使用相同的方法打开了门。

来源: habr.com

添加评论