3. 可信启动基本概念
在车载计算平台中,启动过程是攻击面最集中、权限最高、最难事后补救的阶段。理解可信启动,必须先厘清五个高频概念:信任根(Root of Trust, RoT)、信任链(Chain of Trust, CoT)、度量启动(Measured Boot)、安全启动(Secure Boot)与可信启动(Trusted Boot)。它们不是同义词,而是同一安全目标下不同层次、不同职责的机制组合。
一、核心原理:从信任根到信任链
信任根是整个启动信任体系的起点,是"无需验证即可被信任"的最小硬件或固件单元。它通常由不可篡改的硬件实现,例如 SoC 内部的 Boot ROM、一次性可编程熔丝(OTP/eFuse)中固化的公钥哈希、以及独立安全岛(HSM/SE)中的只读引导代码。信任根的核心属性是:不可修改、可被验证、具备最小可信计算基(TCB)。
信任链是把信任根的可信性逐级传递下去的机制。上一级组件在把控制权交给下一级之前,先验证下一级组件的完整性(签名或哈希),验证通过才加载执行。这样信任就像接力棒一样,从 Boot ROM → 一级引导 → 二级引导 → 内核 → 关键应用逐级延伸。信任链的关键在于"验证者必须先于被验证者运行",且验证者自身已被上一级验证过。
二、度量启动、安全启动与可信启动的区别
度量启动的核心动作是"记录":在每一级组件加载前,计算其哈希(如 SHA-256),并将结果按顺序扩展到 TPM/TPM2.0 的 PCR 寄存器中(PCR = Hash(PCR_old || 新度量值))。度量启动不阻止任何组件运行,它只负责留下不可否认的证据,供本地或远程证明(Remote Attestation)使用。它的价值在于"可审计、可证明"。
安全启动的核心动作是"拦截":用公钥验证每一级组件的数字签名,签名不合法或哈希不匹配就拒绝加载并停机或回滚。安全启动阻止未授权代码进入启动流程,是强制性的门禁。它的价值在于"防篡改、防植入"。
可信启动是二者的融合与工程化落地:既做签名验证(安全启动的拦截能力),又把度量结果记录到 TPM(度量启动的证明能力),并在此基础上支持策略决策、失败恢复与远程证明。可以说,可信启动 = 安全启动 + 度量启动 + 可信报告与恢复策略。
三、方法流程:一次可信启动的典型时序
以车载域控制器为例,一次完整的可信启动通常包含以下步骤:
- 上电复位:CPU 从 Boot ROM 固定地址取指,Boot ROM 校验自身完整性(部分芯片支持 ROM 自检)。
- 加载一级引导:Boot ROM 用 OTP 中固化的公钥哈希验证 BL1 签名,同时把 BL1 哈希扩展到 PCR0。
- 加载二级引导:BL1 验证 BL2 签名,扩展 PCR1;BL2 初始化 DDR、时钟等。
- 加载内核与根文件系统:BL2 验证 Kernel 与 dtb 签名,扩展 PCR2~PCR4。
- 加载关键应用:内核验证 dm-verity 根哈希,扩展 PCR5;关键服务做 IMA 度量。
- 本地策略判定:将 PCR 值与基线策略比对,决定是否进入正常模式、恢复模式或受限模式。
- 远程证明:向车云/TSP 提交 TPM Quote,云端校验 PCR 与签名,确认车辆启动状态可信。
# 典型度量与验签日志片段(示意)
[BL1] verify BL2 sig: OK (RSA-3072, key_id=0x01)
[BL1] extend PCR1: 3f2a...c9d1
[BL2] verify kernel sig: OK
[BL2] extend PCR2: 8b7e...41aa
[KERNEL] dm-verity root hash match: OK
[KERNEL] IMA: app=telematics, hash=OK, PCR10 extended
[TPM] Quote PCR[0-7,10] signed by AK: OK
四、案例与场景:OTA 升级后的启动判定
某车型通过 OTA 升级了二级引导程序。升级包在写入 A/B 分区后,重启时 BL1 验证新 BL2 签名失败(升级包被中间人替换)。此时:
- 安全启动会直接拒绝加载新 BL2,回退到旧分区或进入恢复模式,车辆无法进入正常业务。
- 度量启动会把失败前的哈希记录到 PCR,但不会阻止加载,攻击者可能已获得执行机会。
- 可信启动则先验签拦截,再把"验签失败"事件扩展到 PCR,并触发恢复策略:回滚到已知良好分区,同时向云端上报异常证明。
这个场景说明:只有度量没有拦截,等于"事后取证";只有拦截没有度量,等于"无法证明"。可信启动把两者结合,才形成闭环。
五、误区与复盘
| 维度 | 度量启动 | 安全启动 | 可信启动 |
|---|---|---|---|
| 核心动作 | 计算哈希并扩展 PCR | 验签,不通过则拒绝加载 | 验签 + 度量 + 策略决策 |
| 是否拦截 | 否 | 是 | 是 |
| 是否记录 | 是 | 通常否 | 是 |
| 主要价值 | 可审计、可远程证明 | 防篡改、防植入 | 可信证明 + 失败恢复 |
| 依赖组件 | TPM/TPM2.0、哈希引擎 | 公钥基础设施、OTP 哈希 | TPM + PKI + 恢复分区 |
| 典型失败后果 | 攻击可执行,但留痕 | 启动中断,业务不可用 | 回滚或受限模式,可上报 |
总结来看,信任根是起点,信任链是路径,度量启动是"记录仪",安全启动是"门禁",可信启动是"门禁 + 记录仪 + 应急策略"的完整体系。在车载可信启动工程中,只有把五者放在同一架构下协同设计,才能既挡住攻击,又能在出问题时说清楚、恢复得了。