【The 4th AutoCS 2023】小米智能终端安全实验室-数字钥匙攻防实践指南

汽车安全 11个月前 admin
353 0 0
【The 4th AutoCS 2023】小米智能终端安全实验室-数字钥匙攻防实践指南

5月18-19日由上海市普陀区科学技术委员会指导,匠歆会展主办,中国汽研北京院,上海控安,上海市信息安全行业协会,中汽智联联合主办在上海市明捷万丽酒店召开的“The 4th AutoCS2023智能汽车信息安全大会”上,小米智能终端实验室安全工程师肖临风老师发表【数字钥匙攻防实践指南】。

【The 4th AutoCS 2023】小米智能终端安全实验室-数字钥匙攻防实践指南

以下为致辞内容整理:

现在智能汽车在往信息化不断发展,这个过程有很多新技术加入到智能汽车中。随着这些新技术的加入,很多新的安全风险也在被引入汽车,这次我们探讨的主题就是数字钥匙攻防,会针对目前主流的数字钥匙进行探讨,以及讨论一些新技术在引入数字钥匙之后会产生哪些安全风险。我们团队针对数字钥匙这个领域进行了一段时间的研究,借这次机会跟大家进行分享。

首先进行自我介绍一下,我叫肖临风,来自小米智能终端安全实验室。我的主要工作职责是负责米系IOT产品的安全研究、日常测试、自动化能力提升等,目前因为集团的战略要求,所以目前主要的研究重点是汽车安全领域。

小米智能终端安全实验室是小米旗下的安全团队,致力于研究行业前沿的安全技术、安全实践以及自动化平台的研发,最终目的是为了提升小米智能终端产品的安全性,我们团队成员都拥有多年的安全领域经验,曾在Geekpwn、天府杯、补天杯等赛事中获得过大奖。我们有一个愿景是希望能让更多的朋友能够安全地享受科技带来的便利和乐趣。

这次我从三个方面来讲,首先是智能钥匙的风险综述、无钥匙进入之殇、如何围绕风险做防御。开始第一部分,看一下这个数据NICB(美国国家保险犯罪局)最近公布了一份报告,囊括的2019-2021年的车辆盗窃案,到2021年底全国报告了10万起的汽车盗窃案,其中数字钥匙促成的盗窃案占了20%以上。所以从这个角度来看,在车联网飞速发展的今天,数字钥匙导致的安全风险依然是占了主要的比重。

在这里我将汽车门锁的风险分4个方面。物理开锁、信号干扰、重放攻击、中继攻击。

首先聊一下信号干扰,这个技术非常好理解,就是攻击者通过一些频段针对我们的钥匙信号进行干扰,让我们的信号无法传达给汽车,具体一个攻击场景是这样的,比如我是车主,我下车了,我需要离开这辆车,我要执行关锁的动作,这个动作会被攻击者进行干扰,干扰后我离开车后以为我的钥匙已经锁上了,但实际上我们的关锁信号没有被车辆接收到,这时攻击者会借此打开车门实施盗窃甚至通过技术手段把车直接开走。

让我们看一个实际案例(视频),这辆黑色的车就是盗窃者的车,此时受害者他靠近了,此时是攻击者对他进行了干扰,最后他完成了一次盗窃并且扬长而去了。其实这个案例是在美国,但是这个问题在现实中其实并不少见,特别是在几年前那时候各种法规都没有完善,所以当时针对汽车钥匙的干扰是非常常见的,包括我身边的朋友他们都遭受过相同的困扰。

第二个重放攻击。它的原理非常好理解,就是针对钥匙的解锁动作,首先通过嗅探小时的解锁信号,然后对这个信号进行截获,截获后对它进行重放。在目前大部分厂商都会使用一个滚动码,但是很多厂商使用滚动码时使用了错误的加密算法,或者在认证时为了保证稳定性加了一些额外措施,因此导致重放攻击在这个时代依然是存在的。

我们也看一个视频,这个工具是最近比较火的叫FLIPPER ZERO,所以抓取433信号,对信号进行重放。这边是放大了这个解锁信号,成功打开了一个200米以外的汽车。

第三个中继攻击。我们可以先看一下这张图,中继攻击一般需要两个人同时配合,首先需要一个人去靠近车锁,另外一个人靠近汽车,他们通过一些技术手段在他们二人之间建立起一个通道,能够让钥匙直接跟汽车进行交互,汽车就会认为我的钥匙就在我身边,那么就会触发钥匙解锁的功能。这个中继攻击就是针对目前流行的一个功能叫做无钥匙进入,专门为这个功能而设计的一个攻击方式。这种攻击在现实中也是有的,我们继续看一下(视频),这又是美国的案例。右下角是在靠近车主的房子,左边的人靠近汽车,可以看到这个车门开得非常快。但是现在这个车他还开不了,他需要再靠近然后触发无钥匙启动的功能,可以看到这个车子已经能够被开走了。其实这个案例是非常吓人的,攻击者只需要知道车主在哪里,然后他就可以把车开走,所以进入第二部分:

无钥匙进入。首先回顾一下这个功能,我这里讲的无钥匙进入主要指PASSIVE KEYLESS ENTER STARIT(被动无钥匙进入),就是车主不需要带钥匙,只需要带手机靠近汽车就可以完成解锁汽车。进入车内后汽车会检测到,然后自动点火。这项功能它对用户的体验是非常好的,我家车子也是有无钥匙进入功能,有了那个功能之后基本上就不会再想带钥匙了,每次上车的时候直接走到车边就进去,直接开车就行了。

但是这个功能在安全界有一个定律是一项功能越便利,那么它越有可能带来一些安全风险,无钥匙进入也是。

聊一下目前的行情,这个数据是预测的,预测大概8-10年之后80%的车都会装配无钥匙进入功能,这个也是可以预见的。

在2021年ADAC公布了一项报告,针对目前主流的486辆汽车进行了中继测试,测试的结果是有465辆汽车都被中继成功了,其中只有21辆是失败的。从这个结果来看,目前行业内的无钥匙进入功能的安全性是非常糟糕的。全德汽车俱乐部是德国最大的交通协会,所以它的数据是非常有说服力的。

以上都是别人对无钥匙进入的研究,接下来让们开始我们实践。首先,拿NFC钥匙作为例子,汽车厂商会提供一个NFC卡片钥匙作为汽车物理钥匙的平替,只要通过借助车的B柱就可以对车进行无钥匙开门。

像NFC钥匙的中继是比较简单的,我们需要准备的工具是两台手机,然后需要一个服务端。我使用的工具是nexus 5X,在手机上安装工具NFC gate,通过这个工具就可以针对NFC进行中继。只要一个手机靠近NFC卡片钥匙,另外一个手机贴住车门就可以实现开锁。让我们来看一下演示(视频)。

接下来是射频钥匙,射频钥匙也是目前比较主流的无钥匙进入功能。它主要是通过低频的信号进行短距离通信,低频信号磁场占主导,磁场是有方向的,可以更好地判断车主的位置。

我们说一下中继的原理,中继主要需要一个低频的收发器,130KHz的收发器。然后中间的通道是通过上变频道2.5GHz因为远程传输,最后能针对这个射频钥匙进行中继。

前面举了NFC钥匙还有射频钥匙的安全风险,接下来要聊一聊BLE钥匙。从目前来看BLE的无钥匙进入功能可以说是目前无钥匙进入功能的最佳实践。为什么呢?我认为有4点,首先,BLE通信距离非常远,在BLE的核心规范里面它的距离最远达150米。其次,它的硬件要求也是很低的,在座的朋友手机中都有BLE功能,所以它不需要厂商额外研发一些硬件。因此,它的开发成本是比较低的,厂商只需要开发一个APP,就可以让汽车具有无钥匙进入的功能。最后也是最重要的就是通信的安全性,BLE从蓝牙4.0开始迭代到目前的5.3、5.4,它的一些安全机制和加密算法不断在进行升级。从协议本身的角度来说,它的安全性是非常高的,所以它的安全性应该是要比其他常用的无线电协议更加优秀。

业内针对BLE钥匙的中继肯定是有的,早在2016年就有一款软件gattacker,是模拟一种完整的BLE设备,实现一个中间人的过程。但是这种中继有一个问题,可以看这张BLE协议栈的图,我们目前的中继的内容是上层的GATT,但是BLE有一个功能是Security Manager,它会对整个链路进行加密,当我们整个协议站被加密的时候,我们就无法解出GATT这个层的内容,那如果链路层被加密的话我们就无法进行中继。另外应用层中继的时延也比较高。

肯定有朋友会问,直接中继BLE空口信号可以吗?参考之前射频中继的方案,理论上是可行的,但是现实是残酷的。首先回到BLE协议本身,BLE有一个功能叫做跳频,BLE在2.4G赫兹这个非常拥挤的频段,它将这个频段分为40个频段,每几毫秒会再选择一个频段进行通信。这么说我通过简单的信号放大是很难对它进行中继的,比如说我一开始发出信号是在35频段,但是中间通过中继可能有几毫秒的延迟,过了几毫秒后另外一个接收方可能就跳到另外一个频道了,所以通过物理层的中继是很困难的。

解决方法是研究BLE的链路层,发现有几个参数来控制跳频,首先是跳频算法,就是我们按照什么样的算法调频,Channel Map就是我们规定了哪些频段是可用的,哪些频段是拥挤的。Connect Interval是决定我们多久跳一次。在实现链路层之后,我们就可以发现通过链路层我们可以实现中继。我们可以通过直接转发应用层上面的包实现中继。

最后实现了效果的是这样的,我们在两个链路层中间建立了一个透传通道,这个链路层实现的过程比较复杂,因为大部分蓝牙厂商都不会公开rom信息,所以它的底层不会开源,这就需要我们去读一些BLE标准协议,然后我们通过编写代码实现了链路层中继。

最后给大家看一下效果,我们是针对某款汽车进行了中继测试。(视频)车主现在走到了一个离车很远的地方,第一个攻击者靠近了这个车主,我们通过中继它这个蓝牙的认证,目前连接已经开始。最后我们可以通过这个蓝牙中继的功能实现开锁,以及无钥匙启动功能,最后成功可以把这辆车开走。因为这是在BLE设计上的缺陷,所以这个问题在很多不同款的车上进行复现,另外一个厂商的汽车,车门也是成功打开了。

那么就到最后一部分,非知攻,焉知防。防御角度上我从三个方面入手,首先是BLE协议本身方面。BLE协议链路层的加密配置项还是得开启,无论是在什么应用场景下,因为链路层加密是能够保护我们一些传输的数据。针对链路层我们推荐定期进行链路参数的调整,通过更改这些参数让链路层中继更加不稳定。第二个是检测技术,通过运动传感器、ToF测量、定位技术来提高预防中继的能力。最后就是使用一些新方案,比如UWB,它是相对来说能够中继的,或者使用一些生物识别的能力。我也期待在座的各位同行都可以提出更好的一些新方案。欢迎大家和我进行技术交流。

在最后,介绍一下小米安全中心。小米安全中心是由小米的安全专家和安全运营团队组成的团队,大家如果有小米产品的安全漏洞都可以提交给我们,我们会给予白帽子与之匹配的奖励。另外对于卓越贡献的个人和团队,我们也会有月度奖励以及年终的颁奖活动。欢迎大家加入我们这个团队,让智能更加安全,谢谢大家!

【The 4th AutoCS 2023】小米智能终端安全实验室-数字钥匙攻防实践指南

原文始发于微信公众号(ArtiAuto 匠歆汽车):【The 4th AutoCS 2023】小米智能终端安全实验室-数字钥匙攻防实践指南

版权声明:admin 发表于 2023年5月23日 下午3:56。
转载请注明:【The 4th AutoCS 2023】小米智能终端安全实验室-数字钥匙攻防实践指南 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...