OfO小黄车的最新款锁被两个黑客现场破解了!而且,短期内这个漏洞可能修补起来很困难。
9月6日,在极智未来XPwn上,上演了可能让 OfO 懵逼的一幕。
“共享单车锁厂很多,哪家实力最强?”
“我们决定拿最大的锁厂Nokelock最新款的智能马蹄锁试试。截止5月,共有515万把投放量。”
百度安全的安全研究员黄正和小灰灰如是说。
首当其冲的是大面积铺了这款锁的 OfO 。
在这场连破解前一天媒体都没收到一点风声的现场破解大赛上,两辆用于演示的小黄车被抬到了演讲台上。
接着,黄正掏出了一款看上去与对讲机一样小的设备,小灰灰捣鼓了一下两台笔记本电脑,数了三秒,然后演讲台上的两把锁就滴答一声开了!
一把锁引发的 OfO “惨剧”
这是怎么回事?故事要从几周前开始。
百度安全实验室以进行前沿研究为主。有一天,百度安全的几个研究员在某宝上逛,发现某宝上在卖各种共享单车的锁、零部件什么的。
好像很有意思的样子,买两把锁过来玩玩吧。
然后,一不小心就买了一款 OfO 最新使用的锁。
破解过自动售货机、智能门锁的安全研究员练就了一身过硬的开锁技能。
黄正对雷锋网宅客频道编辑表示:“这种锁一般人确实拆解不了,因为芯片特别小,我们用特殊工具把里面的关键芯片取了出来,花了一个星期进行了逆向分析,然后发现了一个大漏洞。”
这并不是一个容易的过程。
黄正、小灰灰并没有这款锁的源代码,但是根据先前破解的经验,他们决定先研究OfO的通信情况。
这个车锁里有一个SIM卡,通过GPRS的流量访问服务器,发送的内容经过某算法加密。
找到这个算法后,他们在茫茫代码中找到了一条关键的通道,在这条通道上,黄正、小灰灰终于发现了打开关键功能的大门。
黄正分析出了加密方式,又发现了加密犯的一个错误,利用这个错误,他们可以在用户关锁时,锁和云端的通讯过程中,成功劫取锁和云端通讯的信号。
一个关键信息点是,为了减少通讯,一辆共享单车锁与云端通讯时,比如,锁车时,锁会告诉云端:“宝宝我先睡了,你把下次开车的密码告诉我,下次开车我就不打扰你了。”
然后,云端就把密码“预付”了。
黄正和小灰灰动的手脚是,让车锁在和云端的通讯过程中,将车锁信号劫持到自己的服务器上,从而把原来应该给车锁的密码修改成自己设定的任意密码。
承包了这个地铁口的共享单车
看上去,这仅仅是免费骑车的一个方式。
事情并没有这么简单。
黄正没在演讲台上告诉大家的是,其实他们还可以在服务器端把车锁与云端的通讯过程中获得密码的机制修改成“不认识”云端发送的正确密码,但其他任意密码都可打开车锁。
这意味着,正儿八经的用户反倒开不了锁,其他别有用心的用户反倒分分钟开锁!
难怪,小灰灰在演示时表示:我的服务器在主导一切,你的锁成了我的锁,你的车成了我的车,早上起来去地铁,地铁旁边停的这一片OfO 都被我承包了!
这两个安全研究员开玩笑地建了个群,与另一位参与破解的同事表示:搞定!买漆去!
把 OfO 分分钟涂成 UFO ,他们就可以不费什么成本的创业了!
捣乱者的插曲
当然,也并非不费丝毫成本。
黄正展示了他们的关键工具:监听信号的“对讲机”。事实上,这个装备在以前雷锋网宅客频道的报道中也出现过,它就是发出“假信号”的“引路人”。黄正告诉雷锋网,这个装备也不便宜,造价数千美元。
让追求完美的小灰灰不开心的是,在他们的演示过程中,后台出现了一个捣乱者,对方可能在用信号强大的某设备进一步劫持了车锁的信号,试图阻挡两人的正常演示。
但是,两人留了一个后招:此前他们曾在劫持信号后远程替换了一个车锁的固件,这个固件可以让车锁只与他俩的设备通讯,而不认捣乱者的设备。
自此,OfO 的车锁真的成了小灰灰和黄正的车锁!
不知攻,焉知防。黄正告诉雷锋网,这个漏洞涉及关键的加密协议,车厂修补比较复杂,如果替换新的加密协议,在更换协议的过程中,要注意协议的适配性,不然可能影响车锁的正常通讯。车锁厂商整体对安全重视低,应该多关注!
不然,千万辆小车将成为别人的小车!