2、硬件安全基础(HSM/SHE):硬件安全模块架构、密钥存储策略、真随机数发生器原理

聊到嵌入式安全,很多人第一反应是“加个加密算法”。但说实话,算法只是安全链条上的一环。真正决定系统是否牢靠的,是底层的硬件安全根基。今天我们就来拆解这个根基——HSM、SHE、密钥怎么存、随机数怎么来。

2.1 硬件安全模块(HSM)架构

HSM,全称 Hardware Security Module。你可以把它理解成一个“黑匣子”。这个黑匣子专门干一件事:安全相关的运算。它有自己的CPU、内存、甚至独立的真随机数发生器。主芯片想加解密数据?把原始数据丢给HSM,HSM算完把结果吐出来。密钥?全程不出HSM的门。

我最早接触HSM是在一个T-Box项目上。当时客户要求“密钥必须硬件保护”,我们一开始想用软件模拟,结果安全评审直接被毙。后来老老实实上了HSM芯片,才明白硬件隔离的价值。

核心要点: HSM的本质是物理隔离。密钥和敏感运算在独立的安全岛内完成,主处理器即使被攻破,也无法直接窃取密钥。

HSM的典型内部结构

  • 安全CPU核:通常是一个低功耗的ARM Cortex-M或RISC-V核,专门跑安全固件。
  • 安全存储器:包括SRAM(存临时密钥)、ROM(存BootROM)、Flash(存安全固件)。
  • 硬件加速器:AES、RSA、ECC、SHA等算法的硬核加速模块。
  • 真随机数发生器(TRNG):产生高质量的随机种子。
  • 密钥存储区:一次性可编程(OTP)或eFuse阵列,用于存储根密钥。
  • 安全DMA:在安全域和非安全域之间搬运数据,不暴露密钥。

嗯,这里要注意:HSM不是一颗独立的芯片,它通常作为SoC内部的一个安全岛存在。比如NXP的S32K系列、Infineon的TC3xx系列,都内置了HSM。

2.2 SHE(安全硬件扩展)规范

SHE,全称 Secure Hardware Extension。它其实是HSM的一个“轻量版”规范,由AUTOSAR组织定义。说白了,SHE就是给那些不需要完整HSM、但又需要基本安全能力的MCU用的。

我记得有一次给一个车身控制器做OTA方案,MCU资源有限,上不了完整的HSM。后来查资料发现它支持SHE规范,正好满足密钥存储和固件校验的需求。省了一颗外部安全芯片,成本降了不少。

对比项 HSM SHE
安全等级 高(EVITA Full/Medium) 中(EVITA Light)
密钥槽数量 可配置(通常16~64个) 固定10个(SHE规范定义)
支持的算法 AES、RSA、ECC、SHA等 仅AES-128
真随机数发生器 通常内置 可选
典型应用 网关、域控制器、T-Box 车窗、座椅、雨刷等节点

SHE规范里定义了10个密钥槽(Key Slot),每个槽有固定的用途。比如密钥槽0是用于安全启动的根密钥,密钥槽1~9可以用于固件加密、MAC计算等。这种“固定分工”的设计,其实降低了使用门槛——你不需要自己设计密钥管理策略,照着规范来就行。

我的建议: 如果你的MCU支持SHE,优先用SHE。它比纯软件方案安全得多,而且AUTOSAR有现成的驱动栈,开发成本可控。

2.3 密钥存储策略

密钥存储,是硬件安全里最容易踩坑的地方。你想想看,算法再强,密钥被人读走了,一切白搭。

密钥的生命周期

  1. 密钥生成:在安全环境中(如HSM内部或产线安全服务器)生成。
  2. 密钥注入:在产线阶段,通过安全通道写入OTP或eFuse。
  3. 密钥使用:运行时,密钥只在HSM内部使用,不出安全边界。
  4. 密钥销毁:设备退役或密钥泄露时,通过硬件机制擦除。

常见的密钥存储介质

  • eFuse(电子熔丝):一次性编程,写入后不可更改。适合存根密钥。我见过一个项目,产线烧录时eFuse电压没控制好,导致整批芯片的密钥位熔断不全,直接报废。嗯,产线工艺参数一定要验证。
  • OTP(一次性可编程存储器):和eFuse类似,但通常面积更大。适合存少量密钥和配置信息。
  • 安全Flash:可擦写,但需要配合访问控制。适合存会话密钥或派生密钥。
  • SRAM(易失性存储器):掉电即失,适合存临时密钥。但要注意防侧信道攻击。
避坑指南: 我曾经遇到一个案例,工程师把根密钥存在外部SPI Flash里,还加了“加密存储”。结果攻击者直接读Flash的明文数据——因为加密密钥也放在同一个Flash里。密钥存储必须分层,根密钥必须放在硬件保护的OTP/eFuse中。

密钥派生策略

实际项目中,我们不会直接用根密钥加密每一帧数据。而是用根密钥派生出一组会话密钥。比如:

// 伪代码:基于根密钥和计数器派生会话密钥
session_key = AES_CMAC(root_key, counter || "OTA_SESSION")
// 用会话密钥加密固件包
encrypted_firmware = AES_CTR(session_key, firmware_data)

这样做的好处是:即使某个会话密钥泄露,根密钥依然安全。而且可以定期更换会话密钥,降低长期风险。

2.4 真随机数发生器(TRNG)原理

随机数,是密码学的“维生素”。没有好的随机数,密钥生成、签名、挑战-响应认证全都会出问题。

伪随机数发生器(PRNG)靠算法生成随机数,但种子一旦被猜到,整个序列就暴露了。真随机数发生器(TRNG)则不同,它从物理噪声中提取随机性。比如:

  • 热噪声:利用半导体中载流子的随机热运动。
  • 振荡器抖动:利用环形振荡器的相位噪声。
  • 量子效应:比如隧穿二极管的随机电流。

我调试过一个TRNG模块,输出总是“不够随机”。后来发现是PCB布局问题——数字信号串扰进了模拟采样电路。重新布局后,随机性测试(NIST SP 800-22)全部通过。硬件设计里,TRNG的模拟部分一定要和数字部分隔离。

TRNG的典型工作流程

  1. 噪声源:物理过程产生原始随机比特流。
  2. 数字化:将模拟噪声转换为数字信号(通常通过比较器或ADC)。
  3. 后处理:用算法(如Von Neumann校正、哈希提取)消除偏差。
  4. 健康检测:持续监控噪声源是否正常,防止攻击者注入确定性信号。
关键指标: TRNG的输出必须通过NIST SP 800-22或AIS-31随机性测试。如果测试不通过,说明硬件设计或后处理算法有问题。

2.5 本章知识体系总览

下面这张图,把HSM、SHE、密钥存储和TRNG的关系串起来了。你可以把它当作本章的“思维导图”。

硬件安全基础知识体系 硬件安全基础:HSM / SHE / 密钥存储 / TRNG 硬件安全基础 HSM架构 SHE规范 密钥存储策略 TRNG原理 安全CPU + 硬件加速 物理隔离 10个固定密钥槽 仅AES-128 eFuse / OTP / Flash 密钥派生 + 分层 物理噪声源 后处理 + 健康检测 安全启动与OTA的硬件根基 密钥不出HSM,随机数来自物理噪声

这张图里,HSM和SHE是“骨架”,密钥存储是“血液”,TRNG是“心脏”。缺了任何一个,安全体系都不完整。

一句话总结: 硬件安全不是选配,而是刚需。HSM/SHE提供隔离执行环境,密钥存储策略决定攻击者要花多大代价才能拿到密钥,TRNG保证所有密码操作的基础是随机的。这三者加起来,才是可信的硬件安全根基。