点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
01
引言
CAN 总线中没有目的地址,每个节点可以根据预定义的节点(此处指 ECU)配置发布和接收特定消息。这种通信技术提高了网络的弹性,这意味着如果要向当前网络添加新的 ECU,它可以轻松配置,并且无需对网络基础设施和其他节点进行任何更改。CAN 总线是事件触发协议,即消息是在网络中响应事件或请求的生成而产生的。CAN 总线被视为多主协议,它定义了如果通信总线空闲,任何节点都可以在总线上发布 / 接收消息,并且延迟时间也有保障。
控制器局域网(CAN 总线)协议由罗伯特・博世有限公司于 1983 年推出,已广泛应用于汽车通信领域,甚至在家用电器、医疗设备和娱乐领域也有应用。与 TCP/IP 协议不同,TCP/IP 协议在每个数据包中定义了源地址和目的地址,而 CAN 总线消息没有源地址和目的地址,而是采用广播通信技术,网络中的每个节点都可以向总线发送数据包或从总线接收数据包。
车载网络带来了诸多优点,如在很大程度上减少了线束,实现了数据共享,显著提高了车辆的智能控制水平(如先进驾驶辅助系统(ADAS)),增强了故障诊断和修复能力等。
为了满足实时系统的期限要求,每个消息都被分配了一个标识符帧,用于定义消息优先级。消息标识值的数字越小,获得总线的优先级越高。这种优先级排序功能还解决了总线访问冲突问题,即如果两个节点想要同时发送数据,ID 值较低的每个 ECU 将首先发布消息(因为优先级更高)。这种技术也称为消息仲裁。一般来说,CAN 以可预测且高效的方式管理仲裁。图 1 展示了三个节点(第一个节点:二进制 11001011111,第二个节点:二进制 110011111111,第三个节点 110010110010)试图同时传输消息的情况。为了防止总线冲突,ID 最低的给定节点(在这种情况下是第三个节点)将传输信息,因为它的值最低,优先级比其他两个节点高。图 1 描绘了这种场景下的消息仲裁。
图1.CAN总线协议中的仲裁条件
02
CAN总线协议概述
在讨论 CAN 总线协议的安全漏洞之前,本节先对 CAN 总线协议进行概述。一般来说,CAN 总线有两种格式:标准格式(标识符为 11 位)和扩展格式(包含 29 位标识符帧)。数据帧、远程帧、过载帧和错误帧是控制器局域网(CAN 总线)中的四种主要帧类型。数据帧用于将数据从发送方传输到接收方,它由以下位字段组成:帧起始(一个显性位)、仲裁字段(由 12 位组成)、控制字段(6 位)、数据字段(0 到 64 字节)、CRC 字段(16 位)、ACK 字段(2 位)和帧结束(7 位)。数据帧的完整图示如图 2 所示。仲裁字段定义每个消息的优先级,并且该字段中有一个单独的位用于定义这是数据帧还是远程帧。远程帧用于使接收方能够向发送方请求其他数据。数据帧的长度可以为零(远程帧)到八个字节,控制字段指定数据帧的长度。CRC 帧:CRC 帧总共由 16 位组成;15 位用于循环冗余校验算法以进行错误检测,还有一个隐性位作为分隔符。ACK 字段:接收节点重新计算 CRC,如果匹配,它会向发送方报告已正确接收有效消息。这是通过将 ACK 时隙中的隐性位(逻辑 1)覆盖为显性位(逻辑 0)来实现的。
图2.CAN总线数据帧
CAN 总线采用位填充技术,即如果在总线上连续传输六个相同的位,则被视为错误,因为违反了位填充规则。位填充可应用于 CAN 总线的不同帧,如仲裁字段、控制字段和 CRC 字段,这意味着当发送方发现连续有五个相同的位时,会向帧中添加一个互补位。因此,在传输过程中连续出现六个相同的位被视为位填充违规,检测到这种情况的每个节点都将传输错误帧。图 3 展示了 CAN 帧以及位填充是如何应用于该帧的。
图3.CAN总线中的位填充技术
CAN 总线由三个主要层组成,即物理层、传输层和对象层。物理层包括不同节点之间的实际位传输、传输的电气特性以及用于通信的介质。
03
CAN总线协议漏洞
CAN 总线通信通道由称为 CAN-High 和 CAN-Low 的双绞线组成。位传输有两种不同的状态,即隐性逻辑 “1” 和显性逻辑 “0”。CAN 数据包从 CAN 接口传出后,CAN 收发器(发送器 / 接收器)将数据包转换为差分信号,通过双绞线进行传输。大多数汽车通信协议采用 ISO 11898 - 2 中规定的物理差分信号 —— 高速 CAN,最高速率可达 1Mbps。当传输隐性位(逻辑 1)时,CAN-High 和 CAN-Low 线都承载 2.5V 电压,这意味着电压差为零。另一方面,在传输显性(逻辑 0)位时,CAN-High 的电压增加 1V,达到 3.5V,CAN-Low 的电压降低 1V,变为 1.5V,这意味着 CAN-High 和 CAN-Low 之间的电压差变为 2 伏。图 4 展示了 CAN 总线的电压电平。通过这种方式,总线上的平均电压始终为 2.5V,使 CAN 总线对电磁干扰具有很强的抵抗力。
图4.CAN总线差分信号图示
CAN 总线协议被设计为轻量级、稳健且快速的协议,因为它需要在实时环境中具有令人满意的性能并满足时间限制。然而,CAN 总线在设计上存在一些漏洞,为攻击者访问网络并出于不同目的注入恶意消息创造了条件。从安全解决方案的角度来看,安全通信应满足协议或系统安全设计者提出的以下五个标准:
-
数据完整性:接收方接收到的信息应与发送方在信道中发送的信息完全相同,没有任何更改。
-
认证:应检测所有参与方(CAN 总线中的 ECU)是否经过认证。
-
保密性:授权方之间的通信应受到保护,防止未经授权的方获取。
-
不可否认性:安全解决方案应证明通信中的各方不能否认所组织消息的真实性。
-
可用性:安全解决方案应确保在不同情况下系统的可用性得到保证。
CAN 总线的固有局限性之一是每个 CAN 消息中缺乏消息认证,这使得网络中的节点容易受到攻击。顾名思义,CAN 总线是一个由具有不同功能的不同控制器组成的网络。例如,发动机控制单元不断向总线发送 RPM 数据,该数据对 CAN 总线中的所有节点都可用,无论总线上的节点是否请求了该消息。其他节点不断监听总线以获取它们特定的消息,这些消息可以通过消息标识符识别。在正常情况下,CAN 总线架构运行良好。然而,它在设计上没有提供安全措施来防止未经授权的节点加入通信并向其他节点广播恶意消息。这些固有漏洞为攻击者在了解 CAN 总线的合法格式后发送伪造消息提供了潜在途径,并且每个 ECU 都可以模拟其他 ECU 进行重放攻击,这可能会对车辆乘客造成有害后果。攻击者可以被动监听总线,记录不同功能的合法消息内容,然后注入自己的消息来操纵车辆功能。
将车载网络连接到不同的环境(包括内部网络和无线网络),在效率、成本和安全性方面为汽车行业创造了出色的服务,如车对车(V2V)、车对基础设施(V2I)通信、空中固件更新(FOTA)和远程诊断。远程诊断使嵌入式软件组件能够远程重新编程,为驾驶员提供了便利,他们无需将车辆送到经销商处进行诊断服务。然而,这些功能也带来了新的挑战,因为内部和外部通信都需要得到妥善保护,否则攻击者可能会完全控制车辆,从而危及乘客的生命。
CAN 总线协议的另一个漏洞是通信过程中的流量未加密。在协议设计阶段从未应用加密技术,因为这会给实时通信带来开销,这与协议的性质(轻量级和快速)相悖。这个问题使得攻击者可以轻易地通过购买一个低价硬件连接到 CAN 总线并被动嗅探数据,显然,没有某种形式的加密,消息的真实性和完整性无法得到保证,攻击者就能够进行恶意活动。因此,需要在当前协议中增加一定的安全级别或插件来避免这些情况。
协议的滥用是黑客可以利用的另一个原因。例如,如前所述,当多个节点试图发送数据时,CAN 总线使用消息仲裁来赢得总线进行数据广播。攻击者可以利用消息仲裁技术发起拒绝服务(DoS)攻击,即不断发送具有最高优先级(最低 ID)的恶意消息。因此,数据总线将一直被受攻击的节点占用,可能导致系统故障。如今,随着机器学习和智能算法的出现,在各种工程应用中提出了多种方法,如工业机器人的智能控制器设计、入侵检测系统(IDS)、自适应优化算法等。机器学习算法已被广泛用作开发车载网络安全解决方案的强大数学工具。
04
相关工作
在这部分,我们进行了前沿综述,以讨论研究人员为使车载通信更安全而提出的不同方法和解决方案。研究人员在 CAN 总线的不同层开展工作,以引入安全解决方案。
赵和申提出了一种基于时钟偏移的 ECU 指纹识别框架,并将其用于开发基于时钟的入侵检测系统(IDS)。所提出的基于时钟的指纹识别方法利用了所有数字系统中都存在的时钟特性:“称为时钟偏移的微小定时误差”。时钟偏移识别利用时钟偏移和时钟偏差的唯一性,根据发送 ECU 的时钟属性来识别给定的 ECU。该方法测量并利用 CAN 总线消息的周期性行为对网络中的每个 ECU 进行指纹识别,然后使用递归最小二乘(RLS)算法构建每个 ECU 的参考时钟行为。基于开发的参考行为,与基线时钟行为的偏差将被视为异常行为(ECU 受到攻击),误报率低至 0.055%。赵和申为所提出的 IDS 开发了一个原型,并在本田雅阁、丰田凯美瑞和道奇公羊三款不同的车辆上展示了所提出的 CIDS 的有效性。
王等人提出了一种实用的车辆系统安全框架(VeCure),它可以从根本上解决 CAN 总线的消息认证问题。他们使用飞思卡尔汽车开发板开发了一个概念验证原型来验证所提出的方法。在他们的方法中,每个发送 CAN 数据包的节点还需要发送消息认证码数据包(8 字节)。他们将 ECU 分为两类,即低信任组和高信任组。具有外部接口(如 OBD - II 或远程信息处理)的 ECU 被放入低信任组。高信任组共享一个秘密对称密钥,用于认证每个传入和传出的消息,这样低信任组中不知道密钥的 ECU 就无法向高信任组中的关键 ECU 发送消息。王等人使用了 SHA - 3 哈希函数,但他们通过预计算重负载加密函数提高了系统吞吐量。与没有消息认证技术的系统相比,所提出的方法会增加 2000 个额外的时钟周期(在 40MHz 处理器上运行相当于 50 微秒)。通过离线预计算哈希函数,他们的方法在计算上比其他使用消息认证解决方案的方法快 20 倍。图 5 展示了所提出的方法、没有消息认证的 CAN 总线以及经典 SHA - 3 哈希函数在消耗的 CPU 时钟周期数方面的对比。
图5.没有消息认证、VeCure和经典SHA-3哈希函数的CAN总线的CPU周期数
Koscher 等人对车辆攻击面展开了全面的实验分析。他们剖析了不同的威胁模型,以及涉及不同范围向量的漏洞,比如在诊断机制会话场景中,攻击者可通过 OBD-II 端口物理接入总线,借助在笔记本电脑上运行程序向 CAN 总线注入恶意软件。现代汽车的信息娱乐系统带来了许多有趣的功能,如连接互联网、手机,将手机中的联系人列表等日志信息导入信息娱乐屏幕等。这些功能为攻击者在音频文件中注入恶意软件创造了新途径,一旦受害者车辆播放经过修改的音频文件,信息娱乐系统就可能被攻破,攻击者便能窃取存储在其中的日志数据。Koscher 等人还研究了蓝牙、远程无钥匙进入、RFID 等短距离无线接入,以及 GPS 和卫星广播等长距离无线通信。他们利用这些攻击面实施了多种攻击。例如,他们对 WMA 音频文件进行处理,使其在个人电脑上能正常播放,但在受害者车辆播放 CD 时,该文件会在后台发送 CAN 总线消息。人们可能会疑惑,汽车制造商在开发 CAN 总线时为何没有考虑这些漏洞?Koscher 等人解释称,过去车辆并非这类攻击的目标,而且当时的通信方式也不像如今这般多样。然而,如今的车辆与多种短距离和长距离无线网络相连,随着车对车(V2V)和车对基础设施(V2I)通信的普及,这种趋势还在持续发展,这无疑为攻击者提供了更多机会,车载网络的漏洞也随之增多。
德国的 Paar 等人指出,现代车辆中越来越普遍的远程无钥匙进入功能存在被攻破的风险,他们基于 Keeloq RFID 技术破解了该系统。这种漏洞适用于所有采用 Keeloq 作为加密方式的远程无钥匙进入系统或其他远程建筑门禁系统。他们发现,无钥匙远程访问在距离车辆 100 米处就可能被攻击。理论上,汽车会生成随机值,由远程无钥匙模块进行处理,当计算结果匹配时,车门便会解锁。安全协议通常禁止重放攻击,即便攻击者记录了双方之间的所有通信,并试图在之后冒充其中一方,重放日志文件也无法打开车门。但 Paar 等人针对这些系统发起了侧信道攻击。
Hoppe 等人对车窗升降控制、警示灯、安全气囊控制系统和中央网关进行了四项不同测试。他们在 CERT 分类法中对每个部分的安全渗透和漏洞测试结果进行分类总结,并分析了两种选定的应对措施。他们提出了一些短期和长期解决方案,认为短期方案可应用于当前的车辆电子系统,而长期方案则需要对协议设计进行重大修改。例如,入侵检测系统(IDS)和数据分析被作为短期安全解决方案。在第一个场景中,他们在 CANoe(Vector CANTech 公司的仿真软件)中模拟车载网络,针对电动车窗升降进行攻击。当满足预设条件(车速超过 200km/h)时,通过添加恶意代码,电动车窗会自动打开,且在攻击结束前无法关闭。这种攻击采用 “读取” 和 “伪造” 手段监控当前流量,当达到特定条件时,伪造电动车窗升降指令,最终实施拒绝服务攻击,且在攻击过程中驾驶员无法停止攻击。黑客正是利用了 CAN 总线通信中消息未经认证的漏洞,从未经授权的 ECU 发送恶意代码。
在第二个场景中,Hoppe 等人针对警示灯(指示器)展开攻击。正常情况下,车门未经授权打开时,相应的车门传感器会向 ECU 发送消息,触发诸如警示灯亮起、喇叭鸣响数秒等事件。在这个场景里,黑客打开车门时,触发的 “开启” 警报会立即被设置为 “关闭”,导致警示灯熄灭、喇叭停止鸣响,小偷便能在毫无警报的情况下偷走汽车或车内物品。同样,该漏洞源于 CAN 总线架构通信(缺乏消息认证),属于 “读取” 和 “伪造” 攻击行为,也是拒绝服务(DoS)攻击。在第三个场景中,Hoppe 等人分析安全气囊控制系统。在这次攻击场景中,安全气囊模块被从系统中移除,这在车祸发生时会造成严重后果(安全气囊在紧急情况下无法弹出)。他们认为这种攻击的动机可能是经济利益,因为安全气囊在事故中弹出后,更换成本较高。这种攻击可通过被入侵的动力车子网络 ECU,或连接硬件到 OBD-II 端口来实现。此外,他们还控制了安全气囊控制器的指示灯,使其不再显示安全气囊故障。表 1 总结了上述三个场景的 CERT 分类。
表1.CERT对三种攻击场景的分类
短期应对措施之一是开发入侵检测系统(IDS)。当智能检测系统检测到恶意活动或异常网络模式时,应发出警报,以降低攻击造成的后果,比如让车辆在下一个安全位置停下。IDS 的一项功能是检测消息频率。例如,在场景 1 和场景 2 中,特定标识符会以恒定频率发送相应消息。攻击者通常会尝试发送相同标识符但内容不同的消息。由于删除现有消息难以实现,攻击者会试图以更高频率发送修改后的相同标识符消息。因此,如果 IDS 能够检测到可疑活动的高频率,就能向驾驶员发出相应警报。
05
结论
本研究介绍了车载网络通信协议 CAN 总线及其相关漏洞。已有不少研究揭示了其在网络渗透方面的弱点。尽管部分研究人员针对当前协议提出了安全解决方案,但该领域的大部分工作仅停留在指出现有问题上,所提解决方案并不全面。与在传输层开发安全机制相比,在物理层开发安全解决方案更具优势,因为在传输层应用消息认证码面临的挑战之一,是微控制器的计算能力和内存有限,难以在实时环境中为 CAN 总线开发加密算法。为提升用户体验和驾驶安全性,现代计算和通信技术正融入汽车领域,推动车辆变革。因此,过去封闭的车载系统如今开放了蓝牙、3G/4G、GPS 等多种外部接口。CAN 总线的根本漏洞之一在于通信中缺乏消息认证码,这为攻击者渗透总线提供了可乘之机。随着 V2V 和 V2I 通信的发展,外部接口不断增加,车载网络通信协议似乎需要重新设计以增强安全性,或者更多地采用以太网等更安全的协议用于车载网络通信。
来源:
https://i-newcar.com/index.php?m=home&c=View&a=index&aid=4079
end
精品活动推荐
AutoSec中国行系列沙龙
专业社群
部分入群专家来自:
新势力车企:
特斯拉、合众新能源-哪吒、理想、极氪、小米、宾理汽车、极越、零跑汽车、阿维塔汽车、智己汽车、小鹏、岚图汽车、蔚来汽车、吉祥汽车、赛力斯......
外资传统主流车企代表:
大众中国、大众酷翼、奥迪汽车、宝马、福特、戴姆勒-奔驰、通用、保时捷、沃尔沃、现代汽车、日产汽车、捷豹路虎、斯堪尼亚......
内资传统主流车企:
吉利汽车、上汽乘用车、长城汽车、上汽大众、长安汽车、北京汽车、东风汽车、广汽、比亚迪、一汽集团、一汽解放、东风商用、上汽商用......
全球领先一级供应商:
博世、大陆集团、联合汽车电子、安波福、采埃孚、科世达、舍弗勒、霍尼韦尔、大疆、日立、哈曼、华为、百度、联想、联发科、普瑞均胜、德赛西威、蜂巢转向、均联智行、武汉光庭、星纪魅族、中车集团、赢彻科技、潍柴集团、地平线、紫光同芯、字节跳动、......
二级供应商(500+以上):
Upstream、ETAS、Synopsys、NXP、TUV、上海软件中心、Deloitte、中科数测固源科技、奇安信、为辰信安、云驰未来、信大捷安、信长城、泽鹿安全、纽创信安、复旦微电子、天融信、奇虎360、中汽中心、中国汽研、上海汽检、软安科技、浙江大学......
人员占比
公司类型占比
原文始发于微信公众号(谈思实验室):车载网络通信“CAN总线”的安全与漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论