查看原文
其他

汽车网络安全--安全芯片应用场景解析

快乐的肌肉 汽车MCU软件设计 2024-03-08
在聊汽车网络安全时,最先想到的就是使用芯片内置HSM,比如说英飞凌TC2xx系列的HSM、瑞萨RH850的ICU、NXP的HSE等等;实际上除了内置HSM,还有外置HSM(通过UART、SPI等通信)、安全存储芯片等等。而这些芯片统称为安全芯片。

安全芯片的主要作用是为整个系统建立起一个可信的环境,主要通过安全启动、可信启动、加密启动等组合,再结合通信、存储相关的功能要求,共同完成一个可信系统的建立。

那么我们首先来看安全芯片在车规领域常见的应用方式。

1.安全芯片的主要应用方式

(1)安全启动
做过启动代码的同学都清楚,在2017年前,一个ECU的启动通常都是沿用芯片厂提供的startup.s,保证能正常进入到BootLoader就行,几乎不会考虑到用户代码的真实性和完整性。而随着ISO21434(2021)、R155(2018)以及《信息安全技术 汽车电子系统网络安全指南》(2017)的铺开,各大车企、供应商都开始对汽车的网络安全进行布局。首先考虑的就是安全启动。
所谓安全启动,就是在芯片或者ECU启动的最初阶段,通过技术手段保证即将要启动的程序、软件均为真实可信且未被篡改的版本。具体技术手段有数字签名+验签,以信任链的方式来实现安全启动。

具体来讲,一般是通过逐级校验的方式,以BootRom作为信任根,开始对Bootloader、App1、App2进行验签。
这里其实有一个比较大的信息安全风险;在实际开发中,芯片厂的BootRom代码量很小且不可更改,在芯片出厂后它本身并不知道这个芯片的终端客户会如何使用,在设计BootRom时,几乎不可能把所有启动场景都覆盖全,因此很多芯片厂在BootRom阶段都只做简单的启动,例如堆栈初始化、权限跳转、BIST检查等;真正安全启动的验签则完全交由主机厂或者Tier1来做;因此我们可以看到Vector、ETAS这些牛逼轰轰的供应商开始进行垄断,而启动方式(顺序、并行、混合)也镶嵌在他们的启动代码和配置工具中,这里不再赘述。
(2)加解密
使用安全芯片,除了安全启动外,还肯定会使用安全系统的内部密码加速引擎来实现数据的高效、安全加解密。包含对称密码算法(AES\SM4等)、非对称算法算法(SM2\RSA等)。
以SOC的安全启动为例,通常会涉及到加密启动,例如从BootRom跳转至SecondBoot时,通常由BootRom对SecondBoot进行解密,然后加载至内存中运行,这里一般使用对称密码算法;而SecondBoot会对接下来要运行的程序,例如HSM固件、APP进行验签工作(可信启动),这里就要用到非对称密码算法。
对于密码算法所需的密钥,安全芯片会对对称算法的密钥、非对称算法的私钥进行安全存储和物理隔离保护。
(3)安全存储
安全存储,很好理解,就是保证车载设备的敏感信息(用户信息、车辆内部信息、密钥等)不被外界获取;一方面安全芯片内部有独立的存储区域实现敏感信息的物理隔离;另一方面,在运行密码算法时的中间数据也需要与外界进行物理隔离
(4)完整性保护和验证
这就要用到著名的Hash。玩过数字货币的同学一定对此感到熟悉,例如以太坊使用的Keccak 的哈希算法。使用Hash算法可以将不同长度的数据经过计算后输出为一个固定长度的数据摘要,这个摘要具有很强的抗碰撞性,因此常用数据的完整性保护。常见的算法有SM3、SHA256等等,值得一提是,早年间常见的MD5、SHA1已被攻破。
(5)签名/验签
除了完整性保护之外,一个软件的有效性和可信度还需要身份认证。这就需要用到数字签名/验签的技术。
近几年,数字证书已经被座舱领域应用并逐步推广开来,因此作为软件开发工程师,熟悉传统的X509PKI和车联网V2XCA体系是非常有必要的。
所谓数字签名和验签,主要运用的还是非对称算法+Hash;做法通常为:数据提供方首先对待签名数据进行Hash运算得到数据摘要,然后使用自己的私钥对数据摘要进行加密,最后将公钥、原始数据、加密后的数据摘要发送给数据接收方;数据接收方首先使用公钥对数据摘要进行解密,然后使用相同Hash算法对原始数据进行摘要计算,最后比对数据摘要,从而保证数据的身份认证和完整性。
2.安全芯片车载应用场景分析

    基于当前汽车多域的E/E架构来看(以后聊中央域),主要还是分为动力域、底盘域、车身域、智驾域和座舱域;

    域域之间通信需要经过授权和身份认证,那么我们就具体分析每个域所需的信息安全技术。

(1)座舱域

座舱域提出来最想讲,因为这是与用户关系最密切的一个控制器,主要是通过环境感知、驾乘感知、交互反馈来让用户用的爽。

由于座舱域使用的数据大多与舱内乘客个人信息有关,因此这个域的信息安全尤为重要,不仅要保证个人信息的加密存储、传输、脱敏合法合规,更需要保证数据的有效和系统的稳定。因此这个域加入安全芯片是十分有必要的。

座舱域除了驾乘体验之外,现在还有趋势将T-Box融进来,而T-Box作为与外界联系的关键控制器,它的信息安全也尤为重要。

具体来讲,该域会使用到安全芯片的功能有:安全启动、数据高效加解密及存储、数据程序签名/验签、密钥的生成和生命周期管理。

(2)V2X通信安全芯片

这类芯片其实对于从传统车企出来的工程师很陌生,实际上这也是近几年兴起的基于V2X CA体系所提出的需求。V2X通信需要车内V2X通信设备具备对V2X消息的验签能力,目前签名性能要求≥10次/秒,验签要求≥2000次/秒。

目前了解的到,意法半导体的ST4SIM,紫光同芯的THD89具备这样的能力,但性能还需要实际去验证。

(3)动力、车身、智驾域

这三个域关系到驾驶乘车安全,其数据的重要性不言而喻,因此配备安全芯片势在必行。

特别是智驾和动力之间通信,点对点的通信数据信息安全非常重要。

上述域会使用到安全芯片的功能有:安全启动、数据高效加解密及存储、数据程序签名/验签、密钥的生成和生命周期管理。

3.总结

基于之前的开发经验,车内配置HSM的控制器主要包含T-Box、座舱域、智驾域以及网关,动力控制较少,特别是制动和转向涉及较少,第一底盘控制非常关键且需要快速响应,目前来看安全芯片性能有所欠缺,第二也是最关键的一点,主机厂或者供应商对于底盘控制类的迭代非常谨慎。

不过现在随着S32G的通信加速引擎的诞生,个人感觉在网络安全通信架构设计上会有新的思考,也欢迎大家一起讨论。


继续滑动看下一个

汽车网络安全--安全芯片应用场景解析

快乐的肌肉 汽车MCU软件设计
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存