2. 安全元件硬件架构与安全边界
安全元件(Secure Element, SE)之所以能作为信任根,根本原因不在于它运行了什么软件,而在于它的硬件布局本身就把“可信”与“不可信”在物理上分开了。理解 SE 的安全,必须从芯片内部各功能块的相对位置、总线连接方式以及它们与外部世界的接触面开始。本节围绕 CPU、ROM、RAM、NVM、密码协处理器、真随机数发生器(TRNG)、传感器与屏蔽层这几类核心部件,说明它们如何共同构成一个可防御物理攻击的边界,并给出信任根设计的基本原则。
一、内部功能块的分工与布局逻辑
SE 内部通常包含以下功能块,它们并非随意摆放,而是按“敏感度”和“访问频率”分层布置:
- CPU 与总线:执行安全固件,通常为低功耗 32 位内核(如 ARM Cortex-M 系列或专有核)。CPU 通过内部总线访问其他模块,总线本身可能带加密或地址混淆。
- ROM:存放芯片出厂即固化的引导代码与核心安全例程,不可改写,是信任根的第一段代码。
- RAM:存放运行时密钥、会话数据和临时中间值,掉电即失,通常带主动清零与防探测设计。
- NVM(Flash/EEPROM):存放密钥、证书、计数器、配置和安全固件,是持久化敏感数据的核心区域,常带加密与完整性校验。
- 密码协处理器:执行 AES、ECC、RSA、SHA 等运算,密钥不离开协处理器边界,避免明文密钥出现在通用总线上。
- TRNG:产生真随机种子,供密钥生成和挑战应答使用,其输出质量直接决定密钥不可预测性。
- 传感器:电压、时钟、温度、光照、频率等探测器,用于识别异常环境并触发保护。
- 屏蔽层:覆盖在芯片表面的金属网格或主动屏蔽,用于阻断探针、聚焦离子束(FIB)和微探针攻击。
这些模块的布局遵循一个基本原则:越敏感的数据,其物理路径越短、越封闭。例如,密码协处理器与 NVM 之间的密钥传输往往走专用内部通道,而不经过通用总线;TRNG 的输出直接进入密钥生成逻辑,减少暴露节点。
二、物理安全边界与信任根设计原则
SE 的物理安全边界不是一条线,而是一组同心防御层。最外层是封装与屏蔽层,向内依次是传感器监测环、总线加密与地址混淆、存储加密与完整性校验,最内层是密钥永不外泄的密码协处理器边界。攻击者要拿到明文密钥,必须同时突破多层,而每一层都设计为“一旦被扰动即触发保护”。
信任根的设计遵循三条原则:
- 不可篡改性:信任根代码存放在 ROM 中,出厂后无法修改。任何后续固件更新都必须经过信任根验证签名,验证失败则拒绝执行。
- 最小暴露面:密钥只在密码协处理器内部使用,CPU 和总线只能看到句柄或密文。TRNG 输出直接进入密钥生成逻辑,不经过可探测的通用总线。
- 可验证的启动链:从上电复位开始,ROM 引导代码先校验 NVM 中的安全固件签名,校验通过后才将控制权交给固件。每一级都验证下一级,形成链式信任。
三、一个可参考的启动校验流程
下面以示例参数说明信任根如何逐级建立信任。假设某 SE 的 ROM 中固化了厂商公钥 PK_ROM,NVM 中存放了安全固件镜像 FW 及其签名 Sig_FW。上电后的校验过程如下:
1. 复位释放,CPU 从 ROM 固定入口取指。
2. ROM 代码读取 NVM 中的 FW 和 Sig_FW。
3. 计算 H = SHA-256(FW)。
4. 用 PK_ROM 验证 Sig_FW 是否对应 H。
5. 若验证失败:触发安全异常,清零 RAM,锁定接口,记录事件计数器。
6. 若验证通过:将 FW 加载到 RAM,跳转执行。
7. FW 继续校验应用层密钥与配置的完整性,形成下一级信任。
这里的判断依据很明确:签名验证通过则继续启动,失败则进入锁定状态。事件计数器是单调递增的,攻击者无法通过回滚计数器来掩盖一次失败的启动尝试。
四、传感器与屏蔽层的协同
传感器和屏蔽层不是独立工作的。屏蔽层被切断或短接时,传感器会检测到网格阻抗变化;电压毛刺攻击会触发电压传感器;激光注入会触发光照传感器。一旦触发,SE 通常执行以下动作之一:立即清零 RAM 中的密钥、复位 CPU、锁定外部接口,或永久熔断某条密钥路径。这些动作的优先级高于正常固件逻辑,由硬件状态机直接控制。
总结来看,SE 的硬件架构把“信任”拆解为可验证的物理结构:ROM 提供不可篡改的起点,密码协处理器提供密钥不出边界的运算环境,TRNG 提供不可预测的随机源,传感器与屏蔽层提供对物理攻击的实时响应。信任根的设计原则就是让这四者互相支撑,使攻击者无法通过单点突破获得完整密钥。理解这些布局与边界,是后续进行 SE 固件开发、密钥管理和攻击面分析的基础。