《安全启动验证方法实操课程》
第4章 信任根(RoT)

4. 信任根(RoT):硬件信任根(TPM、HSM)与软件信任根的概念

信任根(Root of Trust, RoT)是安全启动链中最底层、最不可篡改的信任锚点。整个系统的安全都建立在这个微小但坚固的基石之上。根据实现方式的不同,信任根主要分为硬件信任根和软件信任根两大类。

安全启动信任链架构 🔒 信任根(RoT)— 不可篡改的信任锚点 ✅ 第一级:BootROM / 初始引导代码验证 ✅ 第二级:Bootloader / 操作系统内核验证 硬件不可变 软件可更新 软件可更新

4.1 硬件信任根(Hardware RoT)

硬件信任根是指将信任锚点固化在物理芯片中,通过硬件机制保证其不可篡改性。常见的硬件信任根实现包括TPM(可信平台模块)和HSM(硬件安全模块)。

特性 TPM(可信平台模块) HSM(硬件安全模块)
核心功能 平台完整性度量与报告 密钥管理与加密运算加速
密钥存储 内部非易失性存储器(NV RAM) 专用安全存储区(防物理攻击)
典型应用 PC、服务器、IoT设备 金融系统、PKI基础设施、车联网
安全等级 中高(防软件攻击) 高(防物理与侧信道攻击)
成本 较低(集成在芯片组中) 较高(独立专用芯片)
🔐 TPM 架构 I/O 接口(LPC/SPI/I²C) 加密协处理器 NV RAM(密钥存储) PCR(平台配置寄存器) RNG(随机数生成器) 执行引擎(固件逻辑) 🛡️ HSM 架构 安全通信接口(PCIe/以太网) 硬件加密加速器 防篡改安全存储 密钥生命周期管理 真随机数生成器 安全操作系统 + 审计日志

4.2 软件信任根(Software RoT)

软件信任根是指将信任锚点建立在固件或软件代码中,通常利用芯片内置的不可变存储(如ROM)来存放初始验证代码。虽然称为"软件",但其载体通常是硬件只读存储器。

软件信任根的关键特征:

  • 不可变性:代码固化在ROM中,出厂后无法修改
  • 最小化:仅包含最必要的验证逻辑,减少攻击面
  • 可验证性:通过数字签名链逐级验证后续代码
  • 低成本:无需额外安全芯片,适合资源受限设备
📋 软件信任根验证流程(安全启动链) 步骤 1 ROM 引导代码 (不可修改的信任根) 验证签名 步骤 2 Bootloader (第一级引导程序) 验证签名 步骤 3 操作系统内核 (已验证的代码) 验证签名 步骤 4 应用程序 🔑 验证机制说明: • 每一级代码在加载下一级之前,必须验证其数字签名是否合法 • 签名验证使用公钥,公钥本身存储在ROM或一次性写入的fuse中 • 如果任何一级验证失败,系统将停止启动并进入安全恢复模式 • 整个链条的安全性建立在ROM代码的不可篡改性之上

4.3 硬件信任根 vs 软件信任根对比

对比维度 硬件信任根(TPM/HSM) 软件信任根(ROM Code)
物理隔离 独立芯片,与主处理器隔离 集成在主SoC内部
防物理攻击 强(有防篡改封装) 弱(依赖芯片封装)
密钥存储 专用安全存储区 一次性可编程熔丝(eFuse)
性能开销 中等(通过专用总线通信) 低(直接内存访问)
灵活性 高(可更新固件) 低(ROM不可修改)
典型场景 高安全要求的服务器、金融设备 嵌入式设备、消费电子

4.4 实践建议:如何选择信任根方案

🔹 对于高安全要求的系统

建议采用硬件信任根 + 软件信任根的组合方案。使用TPM/HSM存储核心密钥,同时利用ROM代码进行初始验证,形成纵深防御体系。

🔹 对于成本敏感的设备

可以采用纯软件信任根方案,利用SoC内置的ROM和eFuse实现安全启动。注意要确保ROM代码经过严格的安全审计。

🔹 对于IoT设备

推荐使用集成式硬件信任根,如支持安全启动的MCU(如STM32 TrustZone、NXP i.MX HAB),在单芯片内实现硬件级隔离。

🤔 选择信任根方案 💰 成本敏感 软件信任根 (ROM + eFuse) 适合消费电子、IoT ⚖️ 平衡方案 集成硬件信任根 (安全MCU/SoC) 适合工业控制、汽车 🔒 最高安全 独立硬件信任根 (TPM + HSM) 适合金融、服务器

📌 核心要点回顾

  • 信任根是安全启动链的基石,必须保证其不可篡改性
  • 硬件信任根(TPM/HSM)提供更强的物理安全保护,但成本较高
  • 软件信任根(ROM Code)成本低、性能好,但防物理攻击能力较弱
  • 实际项目中常采用混合方案,在成本和安全之间取得平衡
  • 无论选择哪种方案,密钥管理和代码签名流程都至关重要