手把手教老司机教你如何破解ofo智能锁

发布时间:151 阅读次数:151

  ”的黑客大会上,百度安全实验室的研究员小哥高树鹏(业内花名:小灰灰)和黄正展示了破解 ofo 小黄车最新一代电子锁的技术。

  呃不不不不,放错图了不好意思,这是第一代机械锁,我们今天说的是第二代电子锁。

  笔者有幸观看了破解现场,并第一时间勾搭上了百度安全实验室的小灰灰和黄正本人。

  小灰灰:共享单车最近火得不行,作为我们生活中最常见的智能设备之一,自然就成为我们研究的对象了。

  破解OFO,是因为我们觉得 ofo 是目前市场占有率是 Top1,所以就拿它作为目标了。做技术研究当然要选择影响范围最广的产品,同时也是对我们技术实力的证明。

  比如今天上半年,百度安全实验室在 Geekpwn 大会上还破解过某款广泛应用于自如、小猪、途家等公寓的智能门锁,也是市场占有率第一的。

  小灰灰:你这个人啊,瞎说啥大实话?!不过话说回来,这可能是第一个影响千万级单体设备的破解。

  ofo 和摩拜等共享单车的电子锁里都有SIM模块(类似于我们手机里装的SIM卡),用于和云服务器通信。

  但是 ofo 和摩拜的通信原理不一样:摩拜有发电装置,所以电子锁可以一直和服务器保持连通;ofo 的没有发电花鼓,为了省电,它在正常情况下不和服务端通信,只有在上锁的一瞬间和服务器发生短暂通信。

  我们(百度安全实验室)利用一台小型网络信号嗅探设备,截获了车辆和云服务器之间的通信,发现通信做了强加密。

  于是我们利用逆向工程技术,分析出了加密协议的弱点,从而解密了经通信协议加密的数据。

  (谢幺:咳咳……通俗解释就是:他们从万能的某宝买到了一个小黄车的电路板模块,皮鞭滴蜡严刑拷打,终于逼问出了它和服务器的接头暗号和交流方式。)

  成功破解了通信协议之后,我(小灰灰)立马就想到了4种破解 ofo 单车的方法:

  既然我们已经搞懂了单车和服务器的通信协议,那么只要模拟小黄车发出一段锁车信号,就能欺骗 ofo 服务器,让它误以为用户已经还车。

  我们知道,最新的小黄车电子锁每一次还车都会自动更换密码。它的实现原理是这样的:每一次锁车,单车都向服务器发起请求,询问下一次密码是多少,服务器会返回单车下一次的密码,比如2134。当有用户想解锁该辆单车,服务器再把密码2134通过手机APP下发给用户。

  按照这个思路,只要我站在一个正在还车的用户旁边,利用通信嗅探设备截获这段通信数据,就能直接拿到下一次解锁密码。

  这种方法可以不花一分钱解锁小黄车,但需要等别人还车才能用,还是不够高级。

  既然小黄车的密码由服务器下发,那我也可以伪装成 ofo 的服务器,给单车下发一个特定的密码,比如:1111,然后用1111去解锁车辆了。

  同样,我也可以把设备放在地铁口,不断发出指令,就能把附近所有的小黄车密码都变成1111,让 ofo 公司失去对小黄车的控制权。

  我们通过分析找到了一个办法,可以伪装成服务器给小黄车下发一个固件版本更新,然后把我们自己做的 ROM 固件包刷进去,这样就能获得电子锁的完整控制权。(相当于给电子锁重装了一套系统)

  正常情况下更新固件需要做服务端签名校验,不允许随意刷入其他非官方固件。然而,我们发现 ofo 存在一个 OTA 漏洞,并没有做校验,所以……

  刷完固件之后,这辆车除了印着 ofo 的 logo,长得是黄色之外,就再也和 ofo 公司无关了。—— 它再也受 ofo 的控制了。

  如果我愿意,完全可以控制一大堆 ofo 小黄车,把它们刷成绿色,然后自己搭建一个服务器,写一个APP,然后零成本运营一家共享单车公司来。

  (小灰灰:好吧我只是开玩笑的,不过,不法分子确实可以利用这种手法控制大量单车锁,想想都可怕。)

  3、不识相的问一句,百度安全实验室把 ofo 的锁破解了,不怕 ofo 会来怼你们么?

  小灰灰:啊?为什么要来怼我们?(黑人问号脸)我们是本着安全研究的目的去破解的,帮他们发现了程序漏洞,避免被黑产利用,薅羊毛什么的。维护了他们的利益啊和用户的权益啊。

  比如,最近ofo正在搞七夕集卡活动,集齐卡片可以换77元钱,如果黑产利用这个漏洞去大量集卡,就可能给 ofo 带来巨额的紧急损失,并且干扰正常的活动秩序,让用户无法正常参与。

  后期我们(百度安全)也会积极配合厂商修复漏洞,希望通过百度的安全能力为更多智能设备厂商解决安全问题。

  不光是共享单车,很多物流、家居等其他领域也有使用类似的智能锁,我们研究了市面上很多智能锁,发现这类隐患是广泛存在的,现场PPT展示的大量同类型车锁↓

  虽然我们破解了 ofo 的电子锁,但发现其实 ofo 的车锁在安全防护上做得已经是同类产品中比较好的了。

  市面上部分品牌车锁,甚至没有对服务端通讯做加密,直接使用信号嗅探装置就能获得车锁和服务器的通讯内容。

  甚至,在和一些锁厂的交流中,我们发现不少锁厂的工作人员对的网络安全意识相对缺乏,他们并不太相信有人能截获并解开通信流量。

  所以这次破解展示也算是轻敲一下网络安全的警钟吧,未来智能锁的应用会越来越普及,也希望锁在智能化的同时,网络安全性也能跟上。