查看原文
其他

汽车网络安全--SoC中的Security系统

快乐的肌肉 汽车MCU软件设计 2024-03-08
Security系统是集成电路(即微控制器或SoC)中的专用子系统。在汽车市场中,它们通常被称为安全硬件扩展(SHE)模块或硬件安全模块(HSM)。
该系统的功能主要如下
  • 应用程序提供加解密服务,管理敏感信息和资产等;

  • 为SoC提供平台安全性,保护APP完整性以及关键资产的机密性和可用性;

  • 保护加密密钥等

1. 系统架构

通常带有Security系统的车规电子系统会划分为两个部分:Appl Domain和Security Domain;参考NXP提供的架构,如下:

Appl主要是常规的软件算法等,Security主要负责给Appl提供敏感信息等服务;

2.安全服务

2.1 安全服务请求

Appl Domain通过安全服务请求来使用HSM中的服务;安全服务请求的信息通常包含待处理的数据源地址和目标地址,要使用的加解密算法ID、密钥ID(想想为什么使用的是ID)。HSM在收到请求后根据请求类型立即或者稍后处理。

2.2 密钥管理

密钥管理,顾名思义,包括HSM对密钥存储、派生、导入、继承等的管理;通常情况下,密钥是存在HSM内部non-volatiile memory中。从物理上,将密钥和Appl进行隔离;同时,HSM还可以对密钥进行加密,进一步保证密钥安全性;
对HSM来说,密钥可根据类型进行分类管理,例如sym要使用的key为一组、asym要使用的为另外一组;所有的密钥都以slots形式管理,并且以slots ID来进行密钥的索引。
对于Appl来说,可以通过密钥slots ID选择目标key,但是不能知道该key的具体值。
为了避免在不安全的环境下注入密钥从而导致密钥泄露的问题,HSM提供密钥的内部生成、以及密钥的派生;密钥的派生典型场景就是用于TLS的通信。TLS主要分为两层,上层为握手协议,下层为记录协议,而记录协议主要是采用对称加密算法对消息进行处理;在上层握手时,就要共享信息,例如一些永久密钥、会话信息等,用于派生出临时的共享密钥和证书;握手成功后,就用这些临时共享密钥对数据进行加解密。
为了保证PKI能够生成并安全将密钥下放到HSM系统,HSM还要支持密钥的更新、导入、导出;首先密钥的导入,是基于HSM或者整个系统的生命周期进行,例如,在芯片下线时,导入原始密钥到HSM空闲slots,而密钥更新的前提是更新方必须知道该密钥的slots、该密钥的具体值等;而密钥的导出仅支持以加密形式导出,防止密钥的泄露;
除了上述描述外,最重要的,HSM必须给密钥分配其属性,例如只做验签的密钥,在某种程度上就不能用于签名的生成,这样就防止了Appl被恶意攻击后该密钥用于生成某些签名,从而影响整个系统安全。

2.3 加密服务

加密服务通常是Appl用来保护即将要对外传输的关键敏感信息,HSM可以通过sym或者asym的cipher mode和机制,来生成加密后的数据,通常叫做密文。
在加密服务中,常见的用法就是整车网络中数据交互时的保护,通过生成或者校验MAC值或者签名,同时为了满足实时性要求,整车中通常用的都是对称加密算法;从而也印证了密钥导入这一功能;
在汽车不同ECU的交互过程中,身份的识别也是非常必要的。因此,一个共享密钥或者公私密钥对是需要的;这在TLS或者IPsec至关重要。
除了上述服务,随机数的生成也需要HSM支持,这个功能主要给HSM自己使用,用于签名的生成或者对密钥进行加密。随机数分为真随机数和伪随机数,真随机数来源于高质量的熵源,伪随机数则来自一个确定算法;但是,在汽车某些实时性要求比较高的场景,TRNG中使用的熵源本质上是缓慢(熵源本质上有大气噪声、电子噪声、频率抖动等),并不总是满足应用程序的要求。因此,TRNG的输出被用于扩展熵池。熵池的内容用作PRNG的种子,这比TRNG快得多,并且PRNG的输出可用于应用程序。
加密服务在汽车MCU级别使用的比较少的是on-the-fly encryption,这个加密方式在最初是为了保护存储在外挂SPI NORFlash中的只读firmware的机密,这里不多做介绍(主要我也没搞懂),参考资料STM OTFDEC

3.Security安全策略

HSM作为整个系统的安全信任锚,在系统的访问权限上需要制定相应的安全策略;

        下面提供几个示例:

  • 安全启动策略(Secure Boot):配置整个系统的启动流程,包括并行启动、顺序启动、启动Stage等,定义安全启动失败后整个系统行为和对应惩罚措施;

  • 系统memory访问权限策略

  • Firmware保护策略:内部flash读出权限,或者外挂flash的固件加密等;

  • Debug策略:在调试HSM时功能权限分配策略;

4.小结

在第三节安全策略中,其实大有深挖的地方,限于篇幅,这暂时不讲,在后续章节,我们会继续聊安全启动,密钥生命周期管理等

      本文其实就是一个HSM简单小科普,让大家知道它是干什么的。具体里面涉及的东西,我会从汽车方面展开,以芯片原厂、Tier1、OEM三个维度进行梳理和讲解。

继续滑动看下一个

汽车网络安全--SoC中的Security系统

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

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

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