鉴源实验室 | 汽车网络安全攻击实例解析(三)

2023-12-02 16:01

本文主要是介绍鉴源实验室 | 汽车网络安全攻击实例解析(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者 | 张璇 上海控安可信软件创新研究院工控网络安全组

来源 | 鉴源实验室

社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区”

引言:随着现代汽车技术的迅速发展,车辆的进入和启动方式经历了显著的演变。传统的物理钥匙逐渐被无钥匙进入和启动系统(Passive Keyless Entry and Start,PKES)所取代,这一系统允许车主在保持车钥匙在口袋中的情况下,轻松地进入并启动车辆。PKES系统通过使用射频识别技术和先进的通信协议,为用户提供了极大的便利性,然而,随着PKES系统的普及,其安全性也逐渐受到关注,这不仅仅关系到财产安全,更涉及到驾驶者和乘客的生命安全。在这一背景下,对PKES系统的安全性进行深入的研究变得至关重要。

01

PKES系统安全研究

2018年,比利时鲁汶大学安全团队揭示了特斯拉PKES系统中的CVE-2018-16806漏洞,成功破解了DST40加密算法,仅用数秒就复制了特斯拉Model S钥匙,并最终成功盗走了车辆。

2019年,该团队在亚特兰大的Cryptographic Hardware and Embedded Systems conference(CHES)上宣布,在特斯拉修复了漏洞后,他们仍能够再次复制车钥匙。尽管这次破解工作需要更近的距离和更长的时间,但特斯拉Model S被盗事件引发了对Passive Keyless Entry系统安全性的广泛关注。

2020年,一名黑客成功为特斯拉汽车开发了一种新的密钥克隆“中继攻击”,并在特斯拉Model X电动汽车上进行了演示。特斯拉得知了这一新的攻击,并计划推出新的补丁。在北美,特斯拉汽车被盗相当罕见。但在欧洲,一些老练的窃贼通过“中继攻击”盗窃了不少特斯拉汽车,其中大多数都没有被找回。

2022年,安全研究人员通过中继攻击成功黑客攻击了特斯拉Model 3和Y,可以有效地解锁并启动这些车辆。

近年来,安全人员一直专注于特斯拉的PKES系统的安全研究,揭示了该系统存在许多安全漏洞[1,2,3,4]。

02

攻击案例分析

2.1 攻击案例介绍

2019年发生的特斯拉Model S被盗事件引发了对PKES系统安全性的广泛关注(图1)。在英国的博勒姆伍德地区,两名小偷在没有钥匙的情况下,使用中继攻击设备成功盗取了特斯拉Model S,整个过程仅用时30秒。盗窃者使用的中继攻击工具并不昂贵,且便于携带。值得注意的是,这一过程并未涉及破解钥匙与车辆认证算法等机制。中继设备的作用仅限于采集车钥匙发送的信号,而非篡改信号内容,也未涉及解密和破坏通信协议的过程。

图1 特斯拉被盗事件题

2.2 案例分析

2.2.1 研究对象

首次提出PKES的设想可追溯到[5]。在这项研究中,作者提出了一种系统,当携带钥匙的用户靠近车辆时,系统会自动解锁车辆,并在用户远离车辆时将其锁定。该系统之所以被称为“被动”,是因为它无需用户采取任何主动措施。钥匙与车辆之间的通信特点是通过磁耦合的射频信号完成的。在这一系统中,车辆通过判断钥匙是否在汽车的通信范围内来确定其是否在近距离内。

PKES汽车钥匙采用低频射频识别技术(LF RFID,Low-Frequency Radio-Frequency Identification)进行短距离通信(在主动模式下为1-2米,在被动模式下为几厘米),并使用全功能超高频(UHF,Ultra High Frequency)收发器进行较长距离通信(在10到100米的范围内)。LF信道用于检测钥匙是否在汽车内外的区域内。图2显示了必须检测以确保PKES系统安全和方便使用的汽车附近区域。这些区域包括:

1)与汽车外部较远距离(通常高达100米),只允许通过按下钥匙上的按钮来开启/关闭汽车。

2)在汽车外部,但距离车门把手约1-2米,允许通过使用车门把手来开启/关闭汽车。

3)在汽车内部,允许启动引擎。

图2 PKES系统LF覆盖范围

图3显示了正常模式下汽车开锁的两个示例实现。汽车通过LF信道定期发送信标,或者在操作车门把手时发送信标。这些信标可以是简短的唤醒消息,也可以是包含汽车标识的较长的挑战消息。当钥匙检测到LF信道上的信号时,它唤醒微控制器,解调信号。在计算出对挑战的响应后,钥匙通过UHF信道回复。该响应被汽车接收并验证。在有效响应的情况下,汽车解锁车门。随后,为了启动汽车引擎,钥匙必须位于汽车内(图2中的Inside区域)。在这个区域,钥匙接收到不同类型的消息,当回复这些消息时,将通知汽车正确的钥匙就在车内,汽车然后才被允许启动引擎。

图3 PKES系统两种实现方式

2.2.2 PKES中继攻击分析

在上述的PKES安全案例中,主要采用了中继攻击的手段,该方式广泛应用于通信系统的渗透攻击[6]。中继存在两种方式,一种是基于电缆的中继攻击,另一种是空中中继攻击。

1)电缆中继攻击

为了执行这种攻击,可以使用一种中继设备(如图4),该设备由两个环形天线连接在一起的电缆组成,该电缆在这两个天线之间中继LF信号。中间可以放置一个放大器以提高信号功率。当环形天线靠近车门把手时,它捕获汽车信标信号作为局部磁场。这个场激发了中继的第一个天线,它通过感应在天线的输出处产生了交替信号。然后,这个电信号通过同轴电缆传输,通过一个可选的放大器传达到第二个天线。是否需要放大器取决于诸多参数,如天线的质量,电缆的长度,原始信号的强度以及中继天线距离汽车天线的距离。当中继信号达到电缆的第二个天线时,它在天线中产生电流,进而在第二个天线的附近产生磁场。最后,这个磁场激发了钥匙的天线,后者解调了这个信号并从汽车中恢复了原始消息。汽车将从外部天线向钥匙发送开启命令,从内部天线发送启动命令。因此,攻击者首先需要将中继天线放置在车门把手前,以便钥匙发送开启信号。一旦车门解锁,攻击者将中继天线带入汽车内,并在踩刹车踏板或按下启动引擎按钮后,汽车将向钥匙发送启动消息。在这两种情况下,钥匙都会通过UHF回应。

图4 PKES系统两种实现方式

2)空中中继攻击

通过电缆进行中继可能会不方便或引起怀疑。例如,墙壁或门的存在可能会阻止它。因此,可以实现一个在空中进行的物理层中继攻击,通过专门构建的RF链路中继LF信号(如图5)。该链路由发射机和接收机两部分组成。发射机捕获LF信号并将其升频到2.5 GHz。获得的2.5 GHz信号然后被放大并通过空气传输。链路的接收器部分接收此信号并将其降频以获得原始的LF信号。然后再次放大此LF信号并发送到一个环形LF天线,该天线复制了汽车发射的信号。打开和启动汽车引擎的过程与上述讨论相同。

另外,由于模拟处理信号通常比数字处理更为迅速,使用模拟实现的中继攻击使攻击者能够在保持攻击的大小、功耗和价格非常低的同时,达到更大的传输/接收中继距离。

图5 通过升频和降频在空中中继LF(130KHz)信号的简化视图

2.2.3 攻击步骤分析

在上述的案例中,偷窃者通过中继攻击设备,在不拥有实际钥匙的情况下,成功实施了对特斯拉Model S的盗窃。攻击过程包括以下几个关键步骤:

1)寻找信号:小偷利用中继设备在目标房屋周围寻找和靠近特斯拉的钥匙信号。

2)信号放大:采用上述的方法,通过中继设备识别并放大车钥匙和特斯拉之间的通信信号。

3)误导特斯拉Model S:通过中继LF信号欺骗特斯拉,使其误以为钥匙就在附近,从而解锁车门、启动车辆。

整个攻击过程并不牵涉到破解钥匙与车辆认证算法等机制。中继设备的作用仅在于收集车钥匙发送的信号,而不是篡改信号内容,也没有解密或破坏通信协议。偷窃者使用的工具并不昂贵,同时发动这类攻击并不需要较高的专业知识。

03

总结

本文研究了汽车PKES系统的安全性,通过实际的案例,研究了PKES中继攻击的原理和方法。该方法不需要解码信号,也不需要修改信号内容,仅引入了模拟的RF组件的典型延迟,该攻击强调了物理层安全的重要性,与针对身份验证或消息机密性的安全协议的攻击相互独立,为加强和理解PKES系统安全性提供了新的视角。中继攻击只是PKES系统攻击方法中常用的一种,随着PKES系统在汽车领域的广泛应用,安全研究人员需要不断关注新的攻击方式和漏洞,并提出更多创新性的解决方案,以满足不断演变的安全挑战,以确保这一关键技术的可靠性和稳定性。

参考文献:

[1] S. Indesteege, N. Keller, O. Dunkelman, E. Biham, and B. Preneel. A practical attack on KeeLoq. In Proc. of the 27th Annual Eurocrypt Conference, pages 1–18, Berlin, Heidelberg, 2008. Springer-Verlag.

[2] C. Paar, T. Eisenbarth, M. Kasper, T. Kasper, and A. Moradi. KeeLoq and side-channel analysis-evolution of an attack. Fault Diagnosis and Tolerance in Cryptography, Workshop on, 0:65–69, 2009.

[3] N. T. Courtois, G. V. Bard, and D. Wagner. Algebraic and slide attacks on KeeLoq. In Fast Software Encryption: 15th International Workshop, FSE 2008, Lausanne, Switzerland,

February 10-13, 2008, Revised Selected Papers, pages 97–115, Berlin, Heidelberg, 2008. Springer-Verlag.

[4] S. C. Bono, M. Green, A. Stubblefield, A. Juels, A. D. Rubin, and M. Szydlo. Security analysis of a cryptographically enabled RFID device. In Proc. of the 14th USENIX Security Symposium, Berkeley, USA, 2005. USENIX Association.

[5]T. Waraksa, K. Fraley, R. Kiefer, D. Douglas, and L. Gilbert. Passive keyless entry system. US patent 4942393, 1990.

[6] G. P. Hancke, K. Mayes, and K. Markantonakis. Confidence in smart token proximity: Relay attacks revisited. Computers & Security, 28(7):615–627, 2009.

这篇关于鉴源实验室 | 汽车网络安全攻击实例解析(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/445945

相关文章

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Java Spring ApplicationEvent 代码示例解析

《JavaSpringApplicationEvent代码示例解析》本文解析了Spring事件机制,涵盖核心概念(发布-订阅/观察者模式)、代码实现(事件定义、发布、监听)及高级应用(异步处理、... 目录一、Spring 事件机制核心概念1. 事件驱动架构模型2. 核心组件二、代码示例解析1. 事件定义

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和