自动驾驶 1000问 · 十 · 第 30 题:安全启动的「信任链」怎么一环扣一环?
来源:Flomo 原始笔记|查看原笔记|迁移日期:2026-10-31
自动驾驶 1000问 · 十 · 第 30 题:安全启动的「信任链」怎么一环扣一环?
核心思想:安全启动的信任链(Chain of Trust)是「逐级验签、逐级交棒」——从一个不可篡改的信任根出发,每一级在运行下一级前,先用密钥验证下一级的签名,验过才交棒。任何一环被换成恶意代码,都过不了上一环的验签,链条就断。
起点:信任根(Root of Trust)
- 通常由芯片内固化在 ROM 的一小段代码 + eFuse 里烧好的公钥哈希组成。
- 开机就跑,且改不了(远程改不了、烧死在里面),是整条链的种子。
- 所有信任都从这里传出去。
一环扣一环的过程
- 上电,CPU 从 ROM 执行固化代码(BootROM)。
- BootROM 用 eFuse 里的公钥 / 哈希,验证第一级 bootloader 的签名。
- 验过 → 控制权交给第一级 bootloader。
- 第一级 bootloader 用自己信任的公钥,验证第二级 bootloader / OS 镜像。
- 验过 → 交给 OS(Linux / QNX / Adaptive 平台)。
- OS 再逐个验证应用程序(APP)的签名,验过才加载。
公钥从哪来?由上一级的签名保护:上一级验过下一级的 pubkey,就用它去验下下级的镜像——信任像接力棒一样传下去。
断链会怎样
- 任何一级验签失败 → 停止启动 / 进恢复模式 / 报警,不执行可疑代码。
几个关键点
- 信任根必须不可改(ROM + eFuse)——它一旦能被改,整条链就没意义。
- 验签用「哈希 + 非对称签名」,不是简单校验和。
- 和 OTA 的关系:OTA 刷进去的固件,下次启动要能通过安全启动的验签,两者共用同一套签名体系。
- 启动只是第一环,之后还有运行时保护、HSM 等。
一句话:安全启动 = 从不可改的硬件信任根出发,每级先验下一级签名再交棒,信任像接力一样传下去;任何一环被换掉都过不了验签。信任根不可改,是这一切的前提。
📎 导航:https://v.flomoapp.com/mine/?memo_id=MjU2MDMwMzA0