4. 可信启动核心概念
在 AURIX 这类面向功能安全与信息安全的车规级 MCU 上,可信启动并不是一个单一功能,而是一组围绕“启动阶段建立可验证信任”的机制组合。理解这些机制,关键在于区分五个概念:信任根(Root of Trust, RoT)、信任链(Chain of Trust, CoT)、度量启动(Measured Boot)、验证启动(Verified Boot)、安全启动(Secure Boot)与可信启动(Trusted Boot)。它们既相互依赖,又各自解决不同问题。
一、核心原理:从信任根到信任链
信任根是整个系统信任的起点,它必须是一段不可被篡改、可被无条件信任的代码或硬件逻辑。在 AURIX 中,信任根通常由固化在 Boot ROM 中的启动代码、HSM(Hardware Security Module)内的安全固件以及芯片内一次性可编程(OTP)区域中的公钥哈希共同构成。信任根不依赖外部存储,因此无法被普通软件改写。
信任链则是信任根向后续启动阶段逐级传递信任的过程。每一级启动代码在运行前,先验证下一级镜像的完整性与真实性,验证通过后才将控制权交出。这样,信任就像链条一样从不可变的 RoT 延伸到 Bootloader、HSM 固件、应用固件,最终覆盖整个运行环境。
二、度量启动与验证启动:两种不同的信任建立方式
度量启动与验证启动是可信启动的两条技术路线,它们的目标不同,不能互相替代。
- 度量启动:启动过程中对每一级镜像计算哈希(如 SHA-256),并将度量值记录到受保护的存储区或 TPM/HSM 的度量寄存器中。它不阻止未通过验证的镜像运行,而是留下不可否认的证据,供后续远程证明或本地审计使用。
- 验证启动:启动过程中对每一级镜像进行签名验证,只有验证通过才允许执行。它强调“不合规就不启动”,是安全启动的核心执行机制。
在 AURIX 工程实践中,两者常结合使用:先度量、再验证,既保留证据链,又确保只有合法镜像能运行。例如 HSM 固件启动时,Boot ROM 先计算其哈希并扩展至度量寄存器,再用 OTP 中的公钥验证其签名,两者都通过后才释放 HSM 复位。
三、安全启动与可信启动的区别与联系
安全启动与可信启动经常被混用,但严格来说,安全启动是可信启动的一个子集或一种实现手段。安全启动强调“验证并阻止”,可信启动强调“可验证、可度量、可证明”。
| 概念 | 核心动作 | 是否阻止非法镜像 | 是否产生证据 | 典型用途 |
|---|---|---|---|---|
| 信任根 RoT | 提供不可篡改的信任起点 | — | — | Boot ROM、HSM、OTP |
| 信任链 CoT | 逐级验证并传递信任 | 是 | 间接 | 多级启动流程 |
| 度量启动 | 计算并记录哈希 | 否 | 是 | 远程证明、审计 |
| 验证启动 | 签名验证后放行 | 是 | 否 | 安全启动执行 |
| 安全启动 | 验证启动 + 策略控制 | 是 | 可选 | 防止未授权固件运行 |
| 可信启动 | 度量 + 验证 + 证明 | 视策略 | 是 | 全生命周期可信 |
联系在于:可信启动通常以信任根为起点,以信任链为骨架,以验证启动为执行手段,以度量启动为证据来源。安全启动则更聚焦于“验证启动”这一环,强调启动阶段的准入控制。可以说,安全启动是可信启动的“守门人”,而可信启动是安全启动的“证据链”。
四、AURIX 场景下的启动流程与参数关系
以 AURIX TC3xx 为例,上电后 Boot ROM 首先运行,读取 OTP 中的公钥哈希,验证 HSM 固件签名。验证通过后,HSM 启动并接管安全服务。随后,HSM 或 Boot ROM 继续验证应用固件。整个过程中,度量值被写入 HSM 的度量寄存器,供后续挑战-响应证明使用。
启动阶段示例(伪日志):
[BOOTROM] RoT hash check ... OK
[BOOTROM] HSM image signature verify ... OK
[HSM] measure app image SHA-256 = 3f2a...c9
[HSM] verify app signature with OEM key ... OK
[HSM] extend PCR[0] = 9b1d...77
[APP] jump to application, trust chain established
关键参数包括:OTP 中的公钥哈希、镜像签名算法(如 ECDSA P-256)、哈希算法(SHA-256)、度量寄存器索引、验证失败后的策略(复位、降级或进入安全模式)。这些参数共同决定了信任链的强度和可信启动的行为。
五、常见误区与复盘
复盘要点:在 AURIX 项目中,应先明确信任根由哪些硬件和 OTP 构成,再设计信任链的每一级验证关系,最后决定度量寄存器如何扩展、证明协议如何挑战。安全启动策略应明确验证失败后的行为:复位、进入安全模式还是降级运行。只有把 RoT、CoT、度量、验证、安全启动和可信启动放在同一张架构图上,才能避免概念混淆,设计出真正可落地的可信启动方案。