历史上的今天
今天是:2024年10月21日(星期一)
2019年10月21日 | 车联网时代基于硬件的车辆安全解决方案
2019-10-21 来源:电子工程专辑
未来,车辆到基础设施(V2I)和车辆到车辆(V2V)通信将与车辆到一切(V2X)通信相结合 ,这个价值十亿美元的市场吸引了越来越多的消费者关注。V2X通信的一个目标是通过交换信息来减少交通事故的发生量。根据对2004年至2008年美国道路交通事故的分析,美国交通部(USDOT)发现使用V2X系统可以预防450万起事故发生,占据所有事故的81%。
威胁
到目前为止,V2X尚未证明广受欢迎。其中一个原因是对V2X通信的安全性存在很多负面看法,最大的威胁可能在于网络攻击。如果车辆的计算机系统或手机系统遭到黑客入侵,则可能导致财产损失。如果当时汽车正在行驶中,甚至可能会危及人员生命。2015年两名安全研究人员利用了基于Linux的信息娱乐系统中的一个弱点,远程成功地攻击了一辆吉普切诺基的CAN总线,从而他们能够操控车辆。一年后,这两位研究人员通过笔记本电脑连接到车辆OBD端口,再次成功操控驾驶这辆吉普切诺基。
在几十年前开发CAN技术时,加密安全性尚未受到足够重视。因此,CAN并未保证数据的机密性,并且以广播模式传输信号。现代汽车通过CAN总线交换信息,例如打开车门和启动引擎。信息在车辆内的ECU和电子钥匙之间进行交换,如果这个系统被入侵,窃贼便很容易偷走这辆汽车。
此外,用于电子邮件、SMS、视频流、视频呼叫等移动互联网功能的蓝牙、GPRS或UMTS等无线通信标准为黑客提供了更大范围的“目标区域”。这使得黑客不仅能够控制车辆而且还能够安装恶意软件以窃取车辆数据,例如车辆位置、常规驾驶路线以及远程完成呼叫。由于现在所谓的远程信息处理控制单元(T-BOX)负责处理上述所有通信功能,因此安全性是重中之重。
解决方案
硬件架构必须具备哪些功能才能确保ECU满足最高安全要求,并且防止发生非法的篡改,未经授权的安装,恶意软件的上传,特洛伊木马和伪造升级?数据加密是确保车辆网络的内部通信总线内数据完整性、可用性和机密性的有效方式。因而该加密方法可以防止网络攻击。

EVITA架构(图片来源:EVITA项目)
近年来,业界已经成立了各种各样的工作小组,提供相应的系统设计和验证指引来抵御黑客攻击和操纵。
这方面的一个主要示例是欧盟资助的EVITA研究项目,其中包括宝马、大陆集团、富士通、英飞凌和博世等数家企业。EVITA项目提出了许多指导原则,详细描述了各种汽车ECU安全架构的设计、验证和原型设计。此外,EVITA规定所有关键ECU均需要配备芯片,其中不仅要包含专用硬件安全模块(HSM),还要包含CPU;其中为HSM定义了三种不同要求的配置:全型、中型和小型。这些模块对ECU之间交换的所有信息进行加密和解密。

全型EVITA硬件安全模块

中型EVITA安全模块

小型EVITA安全模块
基于EVITA标准,越来越多的半导体供应商正在其微控制器/微处理器中实施所谓的“安全区域”(也称为“信任锚”)。例如,意法半导体已将HSM同时集成到其基于电源架构的SPC5微控制器系列(MCU)和ARM核心处理器中,例如STA1385 TCU(远程信息处理控制单元)。
这些带有HSM的IC可以全面防范网络威胁。HSM是一个独立的子系统,具有自己的安全处理器内核、RAM和闪存(用于存储代码和数据)。此外,HSM还具有用于加密的硬件加速器。意法半导体公司旗下的这类器件是C3加密加速器,还包含一个真正随机数发生器(TRNG)。数据和中断请求通过硬件接口在HSM和应用处理器之间进行交换。
HSM不仅承担访问接入控制,还可以生成用于加密密匙的实际随机数,并通过集成的TRNG执行所有其它加密功能。如前所述,CAN总线无法提供高级别的安全性,因此无法保证所传输数据的机密性和完整性。但是,若能够配合已加密的数据,CAN总线也可用于安全数据传输。具有HASH函数、消息认证码(MAC)或CMAC的非对称和对称加密算法可以实现数据的机密性、完整性和可用性、数字签名和数据认证。所有的编码和解码功能都在硬件中实现,以确保主机CPU不会发生过载。
典型应用
安全启动
安全启动功能验证启动加载程序的完整性。为此,MCU的HSM首先通过总线主控器从闪存加载引导程序。使用商定的密钥,HSM可以计算所接收消息的MAC(消息认证码);如果计算出的MAC符合存储中的引导MAC,则数据的完整性得到保护,MCU便可以使用这个引导加载程序。
安全通信
HSM还可以实现安全通信。下面的例子说明了其工作原理:中央ECU与传感器ECU进行通信。如前所述,每个HSM都有一个TRNG和一个硬件加密引擎。中央ECU生成随机数并将其发送到传感器ECU。传感器接收了随机数,并行测量其数据和激活其HSM,以使用ECU随机数来加密测量数据。传感器ECU将加密数据发送回中央ECU。中央ECU使用自己的随机数来解密数据,然后将传送的随机数与接收的随机数进行比较,以验证数据的完整性和真实性。TRNG可以防止重放攻击和加密“窃听”。
闪存保护
由于密码和密钥等固件和安全配置资料存储在控制器的闪存中,因此闪存的保护也很重要。ST SPC5 MCU配备了两个专门负责保护存储器的模块:TDM强制软件在TDR(篡改检测区域)中删除一个或多个区块之前,必须先在特定闪存区域写入数据集。另一方面,在写入或删除闪存之前,PASS模块要先执行密码比较操作。
系统安全配置
为确保在重置后可安全地执行系统启动,在重新启动之前要先检查所有存储的设备配置格式(DCF)的完整性,从而防止未经授权的干预和更改。此外,还可以检查多项安全功能。这可以确保阻止使用多种攻击方法更改特定位置的内容,或者在启动时加载恶意固件的攻击。
结论
车辆中的IT安全措施是至关重要的,使用具有集成HSM的先进半导体解决方案有助于提高安全性和实施效率。
史海拾趣
|
基于Ansoft电磁技术的新一代PCB仿真设计 针对PCB设计人员关注的问题予以讨论,剖析PCB电磁问题的实质及处理方法,介绍Ansoft仿真解决方案的技术特点,与同类型产品的定位关系及比较,并为您展示Ansoft电磁技术及工具在国内 ...… 查看全部问答> |
|
我用了一个看门狗芯片LTC1232,想每100ms喂狗,程序如下,OK没问题。 但现在我的两个定时器都要用到别的地方,做计数器用,难道我要在主程序里面每过一段时间喂狗码? 请高手指教 void time0() interrupt 1//定时器中断time0 {   ...… 查看全部问答> |
|
[===============]WINCE arm开发板 上电后 全屏 自动运行 指定程序 第一次 接触 wince 开发板 首先遇到的问题是 要让用vs2003写的程序 在 设备 一上电 就 全屏 自动运行 这个问题 就是不想让用户 看到 wince 系统界面上的程序 请各位大侠 指教 … 查看全部问答> |
|
[wince5.0]关于interruptinitialize的使用问题,请教! 我目前是在一个wince5.0平台上写个小驱动,需要在init里启用一个中断,于是就想到了interruptinitialize()这个函数。现在的问题是如果在原BSP里的某个驱动里使用这个函数调用就没有问题,并且能完成任务;但是我自己写的驱动,编译完成后就总是出现 ...… 查看全部问答> |
|
各位大哥:本人现做的一个项目需要用到一个8M的RAM缓存,初步打算用1*16的SDRAM,主控是AVR单片机,我想请问一下哪位高手有用过普通单片机来控制SDRAM的呢?具体怎么实现?还有,究竟怎样通过执行LOAD MODE REGISTER命令,完成对SDRAM工作模式设定 ...… 查看全部问答> |




