前一阵子搬了新办公室,新办公室的门禁系统用的是遥控器来选泽门工作的模式,有四个:
- 开
- 关
- 自动(根据有没有人在门前)
- 密码 /刷卡
于是乎,搬出家里的 Infiniium S 示波器,从物业那里借来了遥控器,抓了一下通信。

可以看出,Carrier 是 315Mhz,然后用了简单的 OOK 进行编码。
保存了单次的结果成 reference,然后再次按同样的按钮,得到的竟然是同样的波形! WTF !竟然不是 rotate key。这样的话谁只要抓到就可以获得控制权,太不安全了吧。
接下来把四个模式的信号都抓下来,复制到电脑上去分析。

然后假设短是 0,长是 1,把波形转换成 0 和 1 大概是这样的。

可以看出,信号前 16 位应该是类似门 ID 之类的东西,后 8 位是模式,最后一位一直是一样的(也可能是校验位)。一共 25 位。
然后写了个程序把 0 和 1 写成了二进制文件,画了个 GRC 流程,用 Ettus USRP 直接发射,就把门搞定了。

这栋楼里其他楼层也是一样的门禁系统,我只要穷居一遍 ID (小于 2 小时)就可以把剩下所有的门全部打开。其他外来人员想要攻击直接等物业用遥控器的时候用 GRC 抓一下信号,直接重放就可以搞定门禁了。
我记得汽车行业应该已经完全没有这种静态 KEY 的系统了吧,怎么别的行业不从汽车行业吸取点教训呢。