徽州骆驼 · 2022年10月20日 · 北京市

车辆通信的网络安全

摘要
在汽车行业,网络安全的实施程度很低。一辆汽车有多个电子控制单元(ECU),每个ECU通过控制区网络(CAN)与另一个ECU进行大量的信息交流。如果黑客入侵系统,那么它就像一个开放的资源来源,任何有价值的信息都可以被操纵。这可能会导致巨大的损失。这是一个验证各种现有网络安全功能的动机,了解系统,然后实施网络安全功能。本文讨论了密钥槽验证设计、最大权威计数器验证设计和用户模式实现。汽车工业的发展采用了汽车开放系统架构(AUTOSAR)平台。

I.简介

近年来,正如人们所看到的,机械系统正在被电子元件所取代。现在,汽车不再是一个机械装置和一个电子设备,连接性使它成为一个物联网(IOT)设备。在汽车行业,一辆汽车有许多电子控制单元(ECU)。这些ECU已被编程以执行许多功能。早期的网络安全问题只是用计算机进行各种攻击的黑客。如今,有许多网络安全功能在非计算机上实现,例如,家用电器、交通、公用事业以及各行业。随着每个设备都在向自动化和物联网方向发展,许多工厂和行业都在发展。随着连接性的增加,物联网概念在汽车行业得到了广泛的应用。这种连接性的增加也增加了网络风险,这是一个严重的问题,也是一个社会问题。ECU被编程了许多功能,这些功能被用于汽车中,如驾驶辅助、安全气囊和许多其他应用。这些ECU通过控制区网络(CAN)相互连接,这是广泛用于车辆的通信协议。在CAN总线上有许多信息传输,而某些信息与安全有非常重要的关系。如果这些安全信号在CAN总线上被操纵,对车辆的影响是危险的,车辆没有安全保障将导致巨大的风险。

II.理论和方法

A.安全通信

发射器ECU和接收器ECU通过CAN总线连接。发射器有硬件安全模块(HSM),它能够计算出信息验证码(MAC)。HSM计算MAC的输入是时间戳和信息或有效载荷。MAC被生成并与信息和时间戳一起发送给接收方ECU。接收器也与HSM相关联,它有能力验证发射器通过CAN总线发送的MAC。一旦MAC被HSM验证,信息就被接收器接受。

在这种情况下,时间戳显示为7'O clock,如图1所示。有一个黑客ECU监视着总线,并有意在总线上捕获信息。当黑客ECU捕获信息时,很明显,MAC和时间戳7'O时钟也从总线上被捕获。现在,黑客ECU以不同的时间戳发送相同的信息。图1中的不同时间戳是9'O时钟。在9点钟,黑客ECU通过CAN总线向接收器发送相同的信息。当接收方在验证MAC时,时间戳不匹配。接收者没有关于不同时间戳的信息。因此,该信息被拒绝。

image.png

图1. 信息认证

现在,可能有这样的情况:发射器和接收器之间有时间延迟,信息连同MAC和时间戳到达接收器时有一些延迟。这不会有任何问题,因为时间戳只不过是一个计数器而已。计算MAC的计数值和接收方关于该计数值的信息将保持不变。接收方的计数器值不会递增。因此,即使总线上有一定的延迟,MAC也会被接收器验证。

B.基于密码的信息验证码

基于密码的信息验证码(CMAC)是一种用于MAC生成和验证的算法。这种算法在ECU的硬件安全模块(HSM)中进行。如图2所示,CMAC算法与发射器的对应密钥槽相耦合。有效载荷或信息和防重放计数器被作为输入给CMAC算法以生成MAC。这是与安全信息相关的计数器。因此,CMAC算法的输入是有效载荷和防重放计数器。每一个安全发射器信息都与一个密钥槽相关。

image.png

图2. CMAC生成

钥匙槽也被称为密钥ID。密钥ID是提供钥匙的槽位。在提供的钥匙槽中提供钥匙,然后设置MAC标志。有一些内部值被设置为MAC Only flag。该标志用于生成MAC。这些生成的密钥与CMAC算法相连,该算法将生成以有效载荷和防重放计数器为输入的MAC。用于MAC验证的值是不同的,该标志值只能验证MAC。与安全发射器信息相比,安全接收者信息被赋予不同的密钥ID。“MAC验证”的值在提供密钥后设置。MAC验证标志有一个设置好的内部值。这个过程将生成MAC验证的密钥。因此,这些密钥被耦合到CMAC层,用于MAC生成或MAC验证。

C.用户模式和管理模式

两种特权模式的操作是管理模式和用户模式。监督员模式将可以访问所有的资源控制操作。它就像一个管理员,拥有所有内存位置的读、写和可执行权限。

所有的任务都在一个单一的平台上运行,除了管理员,没有人可以改变任何任务、任何代码或任何配置。这使得该系统非常僵硬。在汽车工业中,汽车中的电子设备之一是ECU。这个ECU只在监督员模式下运行。寄存器和内存位置只能在监督员模式下访问。所有的应用程序都在监督员模式下运行。

当处理器在用户模式下运行时,它对系统的访问将受到限制。如果实施了用户模式,那么在这种模式下,用户将有对资源控制操作有限的访问权,某些内存位置将有有限的权限。要了解从管理模式切换到用户模式,并检索到管理模式。了解机器状态寄存器(MSR)是很重要的。这个MSR决定了处理器的状态。MSR是一个32位的寄存器。MSR中的问题状态寄存器(PR)位表示处理器是处于用户模式还是监督模式。如果PR位=0,处理器处于管理模式。如果PR位=1,处理器在用户模式下运行。

ECU在监督员模式下运行。其中一个功能将被定义为在用户模式下运行。因此,代码是在该功能中开发的,以便ECU在用户模式下运行该特定功能。当代码正在执行时,MSR的PR位被设置为1,而不会干扰MSR中的任何其他位。将PR位改为1后,ECU现在在用户模式下运行。如果ECU必须切换回管理模式,则必须执行系统调用或中断,以将MSR寄存器的PR位更改为零。
image.png
图3. 用户模式概念

MSR将其值存储在特殊用途寄存器(SPR)中,同时执行系统调用。SPR的作用是将MSR值的PR位位置改为1。当MSR从SPR中检索到它的值时。对它的指示,是保持在管理模式,因为MSR的PR位将是1。这个概念证明了可以从管理模式切换到用户模式,反之亦然。通过使用这个概念,用户和管理模式可以在ECU中成功实现。

III.设计

本节将解释网络安全三个功能的设计,前两个设计将证明现有的代码运行良好。第三个设计是ECU中用户模式的实现。

A.钥匙槽验证

验证任何一个ECU都不得使用安全外围设备内的同一密钥槽来生成和验证MAC。ECU已被校准以生成有效的非零MAC。已使用不同的密钥来生成和验证MAC。

行动

触发ECU发送安全信息。选择由ECU在总线上发送的安全发射器信息,并形成必要的数据发送到MAC生成接口操纵应用程序代码,将密钥槽号为4的数据发送至MAC 生成与接收方信息密钥槽号相对应的密钥槽接口。密钥槽验证的设计如图4所示。
image.png
图4. 密钥槽验证设计

设计显示,密钥槽号11、12、13、14、15是接收信息的密钥槽号,这些密钥槽被强制放在密钥槽号4上,一次一个。MAC生成的密钥闪光,这些密钥与密钥槽11、12、13、14、15相关。这些钥匙应该被生成。这个动作将触发错误。这个错误就是无效的钥匙。所有的钥匙槽都经过验证,每次使用不同的接收器钥匙槽时,应用程序代码都会提供相同的错误。

B.最具权威性的反核查

确保ECU在权威性计数器达到最大值时设置一个DTC,并发送零MAC。

行动

触发ECU来发送安全信息。验证ECU正在发送它所支持的所有发送器信息。选择一个安全的发送器信息,并操作应用程序代码,将相应的权威计数器设置为其最大值。

image.png

图5. 最具权威性计数器验证设计图

权威的计数器是与安全发射器信息相关的内部计数器。如果该计数器达到其最大值,那么应用代码应该设置诊断故障代码(DTC)。还可以观察到,选定的安全发射器信息中的MAC值应该是零。当代码中出现错误时,DTC就是设定的。DTC可以被设置为各种错误,通过这个应用层提示某些内容没有按照预期工作。

IV.用户模式验证

最初,ECU将在管理模式下执行功能。在管理模式的功能结束时,会引入一个链式任务,并将一个用户模式定义的功能作为参数给出。这些函数不能在用户模式下访问寄存器,因为它们是不被信任的函数,所以引入了包装器,如图6所示,它显示了用户模式的实现设计。

这些是映射到可信函数的不信任函数,以调用原始函数,在用户模式下执行。当包装器在函数中被调用时。它应该在实时操作系统(RTOS)中进行配置,这些函数被配置为可信函数。

这样就可以访问寄存器和函数,在用户模式下执行。现在,为了将运行在用户模式下的ECU切换到管理模式,在用户模式函数的末端调用一个链式任务,传递给它的参数是管理模式函数。
image.png
图6. 用户模式的实现设计

因此,ECU将以管理模式运行。在函数执行结束时,会调用一个终止链任务,该任务将终止该进程。

V.结果

所有三种设计的结果都显示在本节中。

A.密钥槽位验证结果

CAN总线通常在传输所有的发射器和接收器信息,如ECU所规定的。这些信息将包含分配给每个信息的原始密钥槽。选定的安全发射器信息包含密钥槽ID为4,这是最初分配的密钥ID。不会有任何错误。该测试案例也没有启用。

image.png

图7. 密钥槽验证的结果

现在,测试案例被启用,接收器的钥匙槽ID,一次一个被强制送到特定选择的发射器信息的应用代码中。在图7中,接收器的钥匙槽号11、12、13、14、15是强制的。在提供钥匙后,应用程序代码会出现错误。出现的错误是INVALID KEY。在这种情况下,发射器信息2被迫接受改变了的钥匙槽11、12、13、14、15。所有的接收器钥匙槽ID都给出了同样的错误,因此,这将证明,当接收器钥匙槽被强制取代发射器钥匙槽时,没有一个ECU能够发挥作用。

B.最具权威性的计数器结果

发射器指数2的选择是为了使权威的计数器达到最大。这将导致为安全发送器信息2设置DTC,并且传输的MAC值也为零。这在图8中显示。
image.png
图8. 最大权威性计数器的验证结果

结果证明,测试案例是经过验证成功的。DTC也被设置,并且该特定信息的MAC值为零。其他信息通常会执行一个有效的MAC。

C.用户模式的结果

图9显示了管理模式的结果。决定ECU状态的寄存器是MSR。在图9中,MSR的值是00009000。这表明第17位是0,也就是确定监督员模式的PR位。
image.png
图9. 管理模式的结果

如图10所示,MSR寄存器的值是00029000。

这清楚地表明,MSR的PR位等于1,这代表处理器运行在用户模式下。 
image.png
图10. 管理模式的结果

所有其他的位子都没有受到影响,ECU有能力在用户和监管理模式下切换和执行功能。它甚至能够访问所需的特权寄存器和内存位置。

VI.总结

由于攻击率高,网络安全只出现在计算机中。现在,车辆通信中的网络安全已经成为汽车行业不可或缺的一部分。没有钥匙,就没有安全。因此,钥匙在有关安全的HSM中起着重要作用。目前只讨论、设计和实现了三个功能,但汽车行业的网络安全是一项巨大的研究课题。实现了许多功能,每一个功能都需要对AUTOSAR、CAN通信和许多其他功能的平台有深入的了解。一旦理解了这些特性,就可以设计和实现其他安全特性。

作者: Manjula R Parmar
来源:智能汽车开发者平台
微信公众号:
汽车电子与软件.jpg

推荐阅读:

更多汽车电子干货请关注汽车电子与软件专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
5726
内容数
471
汽车电子与软件行业的相关技术报道及解读。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息