1 HSM介绍
随着汽车上通信系统越来越复杂,云端远程通信的场景越来越多,信息安全变得越来越重要,在通信领域常用的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模块还会带有真随机数生成器等加密算法常用外设。
Synopsys HSM(Hardware Security Module)模块是一种硬件设备,用于提供安全的密钥管理和加密功能。它通常用于保护敏感数据和执行加密操作,例如数字签名、身份验证和数据加密。
HSM模块由硬件和软件组成,它提供了安全的密钥存储和处理功能。它的主要特点包括:
密钥管理:HSM模块可以生成、存储和管理密钥,确保密钥的安全性和保密性。它可以支持各种加密算法和密钥长度。
加密操作:HSM模块可以执行各种加密操作,包括数据加密、解密、数字签名和验证等。它使用安全的硬件隔离来保护私钥和敏感数据。
安全边界:HSM模块具有安全边界,限制对密钥和加密功能的访问。只有经过授权的用户和应用程序可以使用HSM模块进行加密操作。
审计和日志记录:HSM模块通常具有审计和日志记录功能,可以记录所有的操作和事件,以便进行安全审计和追溯。
FIPS认证:HSM模块通常符合FIPS(Federal Information Processing Standards)的安全要求,并通过相关认证。
安全启动:
可验证主机 CPU 的软件和数据完整性,并用于确保它仅执行受信任的固件。tRoot™ HSM 验证将在主机处理器上运行的代码库的真实性和完整性。根据验证的结果,主机系统可以决定是否继续启动过程。除了完整性和真实性,安全启动服务还通过可选的固件解密功能提供机密性保护。
安全更新:启用基于安全识别和身份验证的现场固件更新(具有可选加密)。
安全验证:对于确保与目标设备通信的一个或多个上游和/或下游设备是否可信至关重要。为确保这种信任,需要双方认可的身份验证方案。HSM 可以确保各种身份验证协议的完整性以及设备之间的共享密钥的机密性。
安全调试:允许使用安全协议通过外部主机进行身份验证,以便在设备上启用本地调试。只允许受信任的、经过身份验证的开发人员调试访问系统。
安全存储:为设备的应用数据提供保护。启用后,tRoot™ HSM 提供安全路径以加密和解密存储在不受信任位置的应用程序数据,从而防止攻击者进行读取或修改。
密钥管理:将密钥材料保留在硬件信任根中。通过应用程序层的权限和策略,来允许和管理密钥的使用。此外,密钥生成、导入和导出由 tRoot™ HSM 可信应用软件控制,无需访问来自系统中的应用程序或其他不太可信的处理器的密钥。
2 密钥生成和管理
· 一般有两种根密钥:一个是加密解密用的对称密钥 Secure Boot Key,一般是 AES 128 的,每台设备都是随机生成不一样的;
· 另一个是一个 Secure Boot Signing Key 公钥,一般用的 RSA 或 ECC,这个是每个 OEM 自己生成的,每台设备用的都不一样,有些芯片会存公钥的 Hash 来减少 eFUSE 的空间使用。