G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~

admin 2023年6月15日03:22:07评论42 views字数 2117阅读7分3秒阅读模式

小米电动滑板车(e-Scooter)作为国货之光,在世界范围内大杀四方,让人忘记了Vespa的同时(新闻报道称,国内电动滑板车行业,成规模的生产企业有100多家,2018年产量突破180万辆,其中60%产品出口,占据了美国进口电动自行车的九成以上),在国内却落下了洪水猛兽的名声(参考新周刊的报道 https://zhuanlan.zhihu.com/p/70247469 《电动滑板车,别出来害人害己了》)。我们作为世界第一大国,人均小轿车到手,当然不屑于发展这种危险而不赚钱的东西。倒是欧洲的研究人员把目光聚焦在小米电动滑板车的安全上,在今年的WiSec会议上发表了一篇名为 E-Spoofer: Attacking and Defending Xiaomi Electric Scooter Ecosystem 的论文,剖析了小米电动滑板车的安全“六宗罪”。

G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~

其实在阅读这篇论文支持,最好回顾一下G.O.S.S.I.P在DSN 2022上发表的论文 Kingfisher: Unveiling Insecurely Used Credentials in IoT-to-Mobile Communications (https://www.lijuanru.com/publications/dsn22-k.pdf 哈哈强行软广告)。在那篇论文中,我们已经指出了手机和物联网设备之间直接通过BLE通信的安全问题——安全配对(pairing)的老大难。今天这篇论文其实就是把研究场景限定在下图所示的小米滑板车和米家APP之间。

G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~

G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~

作者通过逆向分析,发现小米滑板车和米家APP之间,前前后后共有4代不同的通信协议,除了最后一代协议的第二版,其余都是不安全的。我们简单介绍一下:

  1. 初代协议:完全没有任何加密和完整性保护;

  2. 次世代协议:从滑板车一侧读了一个12字节的mask,然后用简单的字节xor来掩盖通信的明文信息;

  3. 第三代协议:通过AES-ECB(key=constant,input=escooter_name)算出来一个16字节的伪随机数,然后用这个值反复的xor来掩盖通信的明文信息;

  4. 第四代协议:基于ECDH进行密钥协商,然后再用AES-CCM模式保护通信的明文(机密性和完整性)。

除了第四代协议,前面三代协议都是毫无安全性可言(如果你不知道为什么,那么恭喜你,密码学常识课程得了0分)。但是就算是第四代协议,其实也隐藏了一个大bug,我们后面具体介绍小米电动滑板车的安全“六宗罪”时会提到。现在让我们先看看攻击模型(下图):

G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~

攻击者可以开展近距离攻击(proximity attack)和远程攻击(remote attack):近距离攻击就是接近滑板车通过BLE攻击;远程攻击则是想办法让用户的手机安装一个恶意APP,然后进行攻击。之所以能开展这些攻击,归根结底,就是这如下安全“六宗罪”:

  1. 不安全的通信协议:由于通信协议(前三代)毫无安全性可言,而第四代协议其实也只是保护了通信安全,却没法保证双方的身份互认证(缺乏可信第三方的介入),导致任意的手机上的米家APP都可以绑定任意滑板车;

  2. 随意配对:滑板车上有个配对按钮,只要按照17秒,不管之前是否绑定了手机,都可以重新绑定;由于第一宗罪,导致不管滑板车处在什么状态(哪怕已经被合法用户的APP锁定了),都能重新配对;
    G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~

  3. 滑板车一侧缺乏口令保护:尽管米家APP一侧可以允许用户设置一个口令,只有正确输入才能管理滑板车,可是这个口令的检查和限制仅仅在手机一侧有效……也就是说,管你设置了什么口令,滑板车一侧根本不关心;

  4. 敏感信息泄露:滑板车通信协议里面包含了一些(私有的)神奇命令,允许读写滑板车内存中的敏感信息,不仅可以把上面提到的没有发挥作用的口令信息给读出来;

  5. 允许协议降级:不知道为什么,滑板车通信协议允许“偶数变奇数”,也就是通过直接发送一个私有命令,让第四代降级成第三代,第二代降级到第一代……(当然,小米最后发布了一个第四代协议的v2版,把这个降级命令拿掉了……)
    G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~

  6. 不安全的BLE:小米滑板车本身并没有开启BLE的安全通信底层特性,直接用不安全的配对模式裸奔!

集合了这六宗罪的小米滑板车,简直是教科书般的不安全APP-IoT BLE通信!!!作者分析了多个版本的小米电动滑板车,对其安全性总结如下:

G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~

作者最后看不下去了,在发布对小米滑板车安全分析的工具ESpoofer的同时,还支持对有问题的滑板车的安全修复:通过对BLE firmware的patch(改掉了二进制代码中的一条cmp指令,从5a2f改成了552f,这不禁让我们想起了当年经典的0x740x75互相更改的“一字节破解软件注册”大法)关闭小米那个脑残的“协议降级”命令,保护了很多“时尚时尚”的滑板车~

工具:https://github.com/Skiti/ESpoofer

最后,让我们回忆一下经典大作《我的滑板鞋》

G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~

G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~


论文:https://francozappa.github.io/publication/2023/espoofer/paper.pdf


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月15日03:22:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2023-06-14 我的滑板车~http://cn-sec.com/archives/1808128.html

发表评论

匿名网友 填写信息