4. 可信启动基本原理
车载 ECU 上电后,最先运行的代码决定了整台控制器是否可信。可信启动的核心思想是:把“信任”建立在一个不可篡改的起点上,再通过逐级度量与验证,把这份信任像链条一样传递到操作系统和应用。RH850 作为车载安全 MCU,其可信启动通常围绕硬件信任根、逐级度量、签名验证和启动状态机展开。
一、信任根:可信启动的起点
信任根(Root of Trust, RoT)是系统中第一个被无条件信任的组件,它必须满足三个条件:不可修改、可被验证、行为确定。在 RH850 上,信任根通常由以下几部分构成:
- Boot ROM:芯片出厂固化的只读代码,负责上电初始化、基本自检和启动模式判断,是信任链的第一环。
- 硬件安全模块(HSM/ICUM):提供密钥存储、加解密和签名验证能力,密钥不出安全边界。
- OTP / 安全熔丝:保存启动配置、密钥哈希或安全策略,一旦烧写不可回退。
Boot ROM 本身不可改,但它需要验证下一级镜像。验证所需的公钥或公钥哈希通常固化在 OTP 中,这样即使外部 Flash 被替换,攻击者也无法伪造合法签名。
二、信任链:逐级传递的度量与验证
信任链(Chain of Trust)是把信任根的可信性逐级传递到后续镜像的过程。每一级在把控制权交给下一级之前,先对下一级做度量(Measure)和验证(Verify)。度量是计算镜像的密码学摘要,验证是用公钥检查签名是否匹配。只有验证通过,才允许跳转执行。
典型 RH850 可信启动的信任链如下:
Boot ROM
└─ 度量并验证 → HSM 固件
└─ 度量并验证 → 一级引导(Primary Bootloader)
└─ 度量并验证 → 二级引导(Secondary Bootloader)
└─ 度量并验证 → 应用固件 / AUTOSAR OS
└─ 度量并验证 → 应用任务与标定数据
每一级验证失败时,系统应进入安全状态:停止启动、记录事件、进入恢复模式或触发安全降级。验证通过后,度量值可被记录到安全日志或扩展到 TPM/HSM 的寄存器中,供后续远程证明使用。
三、度量与验证:密码学机制
度量与验证是可信启动的两个关键动作。度量解决“镜像有没有被改”,验证解决“这个镜像是否被授权”。在 RH850 上,常用组合是 SHA-256 摘要加 ECDSA P-256 签名验证。
| 动作 | 输入 | 输出 | 典型算法 | 失败后果 |
|---|---|---|---|---|
| 度量 | 镜像二进制 | 固定长度摘要 | SHA-256 | 摘要不匹配,拒绝启动 |
| 验证 | 摘要 + 签名 + 公钥 | 通过 / 不通过 | ECDSA P-256 | 签名无效,进入安全状态 |
| 扩展 | 当前摘要 + 历史值 | 新的度量寄存器值 | SHA-256 扩展 | 日志不一致,证明失败 |
度量值通常写入 HSM 的单调计数器或安全寄存器,防止回滚攻击。验证公钥的哈希固化在 OTP 中,私钥保存在 HSM 内部,签名在离线环境中完成。
四、安全启动与可信启动的区别
这两个概念经常被混用,但侧重点不同。安全启动(Secure Boot)强调“阻止”:验证不通过就不允许运行,目标是保证系统只运行合法镜像。可信启动(Trusted Boot)强调“记录”:即使镜像被篡改,也要把度量值记录下来,供后续审计和远程证明使用。
- 安全启动:验证失败即阻断,系统不可用,安全优先。
- 可信启动:验证失败可继续运行,但度量日志会暴露异常,适合需要取证和远程证明的场景。
- 实际工程:两者常结合使用,先做安全启动阻断明显攻击,再用可信启动记录完整启动链。
五、启动阶段划分与状态机
RH850 可信启动通常划分为四个阶段:上电复位与自检、Boot ROM 验证、引导加载验证、应用验证。每个阶段都有明确的状态和转移条件,形成启动状态机。
- POR 阶段:复位释放,时钟和 RAM 初始化,读取 OTP 启动配置。
- RoT 阶段:Boot ROM 计算自身摘要,验证 HSM 固件签名。
- Bootloader 阶段:一级引导验证二级引导,二级引导验证应用镜像。
- Application 阶段:OS 启动,验证应用任务和标定数据,进入正常运行。
状态机的关键转移条件包括:签名验证通过、摘要匹配、版本号不低于防回滚阈值、安全策略允许。任一条件不满足,状态机应转移到失败状态,执行停机、记录事件或进入恢复模式。
六、案例与复盘
某车载网关项目在量产前发现:Bootloader 验证通过后直接跳转应用,但应用镜像的签名校验被放在 OS 启动之后。攻击者利用这个时间窗口注入恶意代码,导致安全启动形同虚设。复盘结论是:验证必须发生在跳转之前,且每一级都要独立验证下一级,不能依赖上一级“已经验证过”的假设。
修正方案是在二级引导中增加对应用镜像的完整度量与签名验证,验证通过后才允许跳转;同时把度量值写入 HSM 日志,支持后续远程证明。该方案在 RH850 上通过 HSM 硬件加速,启动时间增加约 80ms,满足整车唤醒时间要求。