1. 概述
随着汽车上通信系统越来越复杂,云端远程通信的场景越来越多,信息安全变得越来越重要,在通信领域常用的AES、SHA、RSA等加密算法被越来越多地应用到汽车上。但通常这类加解密算法都需要大量的数学运算,需要消耗很多CPU时间和资源,汽车上的ECU又有比较高的实时性要求,为了节省主CPU的资源,HSM应运而生。
HSM(Hardware Security Module),是MCU上专门用于实现加解密算法的一个外设,它一般会有一个独立的CPU,专门用来进行加解密运算,还有一些针对特定算法的硬件加速器(如AES-128、SHA-256等)。有了HSM模块,程序中就可以把加解密运算交给HSM来执行,主CPU就可以去做其他工作,一段时间后来查询结果,或等待HSM计算完成后通过中断等方式通知主CPU计算结果即可。
而且HSM通常还拥有单独的存储区,包括RAM和NVM,HSM的存储区在正常运行状态下应只允许HSM核读写,主核不能读写。这样就可以把算法秘钥等重要数据存储在HSM存储区,与主核进行隔离,进一步加强安全性。此外HSM模块还会带有真随机数生成器等加密算法常用外设。
2. EVITA中HSM的分级
在《汽车电子网络安全白皮书》中,引用了EVITA(E-safety vehicle intrusion protected applications——安全车辆入侵保护应用)的概念,里面给出了EVITA定义的车载网络参考架构和HSM的基本结构:
EVITA定义ECU应拥有一个密码协处理器HSM。HSM负责执行所有密码应用,包括基于对称密钥的加解密、完整性检查、基于非对称密钥的加解密、数字签名的创建与验证,以及用于安全应用的随机数生成功能。
EVITA把硬件安全模块划分为三个等级:
- EVITA full HSM
- EVITA medium HSM
- EVITA light HSM(或是EVITA small HSM)
其中,EVITA full HSM主要用于V2X的通信单元,以及中央网关;EVITA medium HSM用于ECU之间通信场景的ECU;EVITA light HSM则用于传感器、执行器。
EVITA full HSM、medium HSM 和 light HSM的结构分别如图附A1-3~5所示:
三者之间的差别:
与full HSM相比,medium HSM没有包括ECC-256和WHIRLPOOL 密码模块(NIST提出的基于AES 的hash函数),并且,medium HSM所包含的CPU性能要低一些。因此,medium HSM没有基于硬件加速的非对称密码和哈希算法。一方面,可以通过软件的方式来执行一些时间性能要求不高的非对称密码操作;另一方面,基于效率和成本方面的考虑,ECU之间通信的保护采用对称密码算法具有合理性。
light HSM只包含基于AES-128的对称加解密模块,以满足传感器和执行器在成本和效率方面的严格需求(消息大小、时间、协议限制、处理器能力等)。基于light HSM,使得传感器和执行器能够保证通信数据的真实性、完整性和机密性。另外,同full和medium HSM相比,light HSM没有提供独立的处理和存储单元,应用处理器和应用软件可以完整访问所有的密码数据。为此,可以考虑对light HSM进行安全增强,提供内部的非易失性存储器和RAM,以及基于AES的伪随机数生成器。这样,light HSM可以更加安全地生成、处理和存储密钥。
3. 其它网络安全策略
除EVITA外,还有SHE、TPM(Trusted Platform Module)和智能卡(smartcard)等方面的硬件安全策略。SHE(Secure Hardware Extension)是由HIS(由Audi、BMW、Porsche、Volkswagen形成的组织)制定的标准,以通过硬件提供基于AES-128的密码服务:加解密;消息认证码;引导加载程序的认证;唯一的设备ID等,并可以应用不可直接访问的方式存储密钥。SHE的基本结构如图附A1-6所示。
4. 英飞凌AURIX系列MCU的HSM
我们以TC397为例来了解一下AUTIX系列单片机的HSM。下图为TC397的架构图,HSM作为外设之一,挂载在单片机的SPB系统外设总线上:
下图为HSM展开后的架构图,HSM有一个基于ARM Cortex-M3的CPU,有随机数生成器TRNG,和AES、Hash、PKC(公钥加密整数)算法的硬件加速器,以及中断、Timer等组成部分。
TC3XX系列的HSM支持以下算法:
- 对称加密:AES-128:支持硬件实现,支持ECB、CBC两种模式;
- 摘要算法:MD5(128 bits)SHA-1(160 bits)、SHA-2(224 bits)、SHA-2(256 bits)、SHA-2(384 bits)、SHA-2(512 bits):其中MD5(128 bits)SHA-1(160 bits)、SHA-2(224 bits)、SHA-2(256 bits)支持硬件实现,SHA-2(384 bits)、SHA-2(512 bits)可以用软件实现。
- 非对称加密:RSA、ECC等,是否支持硬件实现待验证,可用软件实现。
|