指纹锁的硬件逆向工程

  • A+
所属分类:逆向工程

指纹锁的硬件逆向工程


今天介绍的这把锁只能通过指纹来解锁,但是....它貌似不喜欢我的指纹,因为十次解锁可能只有两次成功,一气之下,我打算把它拆了。

首先,我们看一下电子挂锁的工作方式有几种:


  • 电机转动主轴释放/解锁卸扣

  • 电磁铁吸住物理螺栓


如果设计不当,第一种方式往往容易受到暴力破解,第二种方式则是使用强力磁铁。而今天这个挂锁,使用磁铁+轻轻的摇晃生拉硬拽便弹了出来。


指纹锁的硬件逆向工程


开锁的部分我们搞定了(老虎钳),接下来看看它里面有什么?


指纹锁的硬件逆向工程


用钳子搞了一个小时,突然闻到了锂电池的气味,锁体也变得非常热。


指纹锁的硬件逆向工程


为了不损坏锁内的芯片,得停下来让它冷却一下。但最终还是狠心把它切开了,可以看到内部被一层切割粉末覆盖:


指纹锁的硬件逆向工程


可以看到它使用带锁闩的电机(注意锁闩下面有一个小电路板)  


指纹锁的硬件逆向工程


这个是挂锁的微动开关


指纹锁的硬件逆向工程


电机和锁闩(我感觉我刚刚拆的时候把它弄坏了)


指纹锁的硬件逆向工程


我承认拆的很丑,但下一次我肯定会拆的更漂亮


指纹锁的硬件逆向工程


电池就是冒火的原因


指纹锁的硬件逆向工程


整个电路板都是非常粘的胶水,我用镊子去掉一些残留物后可以看到一个MCU和几个放大器。左边是蜂鸣器。它使用USBC供电


指纹锁的硬件逆向工程


电路板的反面是一个指纹模块子板


指纹锁的硬件逆向工程


通过电路板, 我们可以看到MCU型号是 STM32F411(ARM Cortex M4)


指纹锁的硬件逆向工程


可以看到电路板上有两个测试焊盘。顶端是SWD界面。焊盘标注有:


  • VSS

  • Not Connected

  • SWDCLK

  • SWDIO

  • Vdd


Not Connected焊盘最有可能与RESET引脚相连,但其他组件可能没有标注出来


指纹锁的硬件逆向工程


在底部焊盘看到它们连接到了PA10,PA9和VSS。从这里可以看出这是UART


指纹锁的硬件逆向工程


我们把杜邦线焊到UART接口


指纹锁的硬件逆向工程

我们将UART连接到Saleae逻辑分析仪。虽然电池刚刚着火了,但是现在居然还能用


指纹锁的硬件逆向工程


尝试识别指纹,查看TX口的数据


指纹锁的硬件逆向工程


然而这些东西并没有什么卵用,我觉得有可能是它设置了管理员打印。不过还是发现了一个Title信息:"由microzero设计"。貌似这是广州Microzero公司的设计(该公司是指纹识别算法系统的制造商)


指纹锁的硬件逆向工程


最后,我们来试试使用SWD脚读取MCU的闪存


指纹锁的硬件逆向工程


现在将它连接到ST-Link上,尝试复制flash内容,但在Linux下获取到的flash空间为0,这很奇怪


指纹锁的硬件逆向工程


再用 Windows 上的官方软件试试。好吧,原来它启用了代码读出保护


指纹锁的硬件逆向工程


针对这个情况,我觉得已经无法继续破解下去了,我使用最少的工具拆开了它,拆解的过程本身就很有意思,但如果没有办法读取flash,我不知道自己还能做什么


[下篇文章我们将介绍在某些情况下绕过代码读出保护的例子]

指纹锁的硬件逆向工程

原文地址:https://www.pentestpartners.com/security-blog/hardware-reverse-engineering-a-tale-from-the-workbench/

指纹锁的硬件逆向工程

指纹锁的硬件逆向工程

指纹锁的硬件逆向工程

指纹锁的硬件逆向工程

本文始发于微信公众号(渗透云笔记):指纹锁的硬件逆向工程

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: