3. 嵌入式安全基础

在嵌入式密钥系统的量产交付中,安全能力并不是单一功能,而是一组由硬件、固件、密钥与运行环境共同构成的信任基础。理解安全启动、安全存储、可信执行环境、硬件安全模块和物理不可克隆函数这几个基本概念,是后续设计密钥注入、产线烧录、设备身份认证和生命周期管理的前提。它们分别解决“启动代码是否可信”“密钥是否安全保存”“敏感计算是否隔离”“密码运算是否受保护”以及“设备身份是否可唯一识别”等问题。

核心原理:从信任根到可信执行

嵌入式安全的核心思想是建立一条从不可变硬件到应用层的信任链。设备上电后,最先运行的代码必须来自不可篡改的区域,通常称为信任根。信任根验证下一级引导程序,引导程序再验证操作系统或应用固件,逐级传递信任,这就是安全启动。安全启动解决的是完整性与真实性:每一级镜像在加载前都要校验数字签名或哈希值,只有验证通过才允许执行。

安全存储则解决密钥和敏感数据的保密性与完整性。密钥不能以明文形式放在普通 Flash 中,而应保存在受保护的密钥区、加密文件系统或安全元件内。常见做法包括使用设备唯一密钥加密数据、使用消息认证码防篡改,以及将密钥与访问策略绑定。可信执行环境(TEE)在处理器内部划分出安全世界与普通世界,敏感操作在安全世界中执行,普通应用无法直接读取其内存和密钥。硬件安全模块(HSM)则是更强的专用密码设备,提供密钥生成、签名、加密、随机数生成和访问控制。物理不可克隆函数(PUF)利用芯片制造过程中不可复制的微观差异生成设备唯一指纹,可用于派生密钥,避免密钥长期静态存储。

嵌入式安全基础:五类核心能力与信任链 信任根 → 安全启动 → 安全运行环境 → 密钥与身份保护 信任根 RoT 不可篡改的启动代码 / 公钥哈希 / 硬件熔丝 设备上电后第一个执行,决定后续所有验证的起点 安全启动 Secure Boot 逐级校验 BootROM → Bootloader → OS → App 的签名与哈希 验证失败则停止启动或进入恢复模式,防止恶意固件运行 安全运行与密钥保护能力 可信执行环境 TEE 安全世界 / 普通世界隔离 敏感计算与密钥不出安全域 硬件安全模块 HSM 密钥生成 / 签名 / 加密 防拆、防侧信道、访问控制 物理不可克隆函数 PUF 芯片微观差异生成唯一指纹 按需派生密钥,减少静态存储 安全存储 Secure Storage 加密密钥区 / 防篡改文件系统 密钥与策略绑定,禁止明文落盘 隔离执行 密码运算 设备身份 密钥持久化

方法流程:量产交付中的安全启动与密钥注入

在量产场景中,安全启动通常与密钥注入配合使用。典型流程如下:

  1. 芯片出厂时烧录信任根公钥哈希或启用安全熔丝,锁定启动模式。
  2. 产线工具通过安全通道将设备密钥、证书和配置写入安全存储区。
  3. 设备首次启动时,BootROM 校验 Bootloader 签名,Bootloader 校验系统镜像。
  4. 系统启动后,TEE 或 HSM 接管密钥运算,应用只能通过受控接口请求签名或解密。
  5. PUF 在需要时派生设备唯一密钥,用于加密本地数据或生成设备身份证书。

下面是一个安全启动校验的伪代码示例,用于说明逐级验证关系:

// 安全启动逐级校验伪代码
bool secure_boot_chain(void) {
    if (!verify_signature(BOOTROM_PUBKEY_HASH, bootloader_img)) {
        return false;  // 引导程序签名无效,停止启动
    }
    if (!verify_signature(bootloader_pubkey, os_image)) {
        return false;  // 系统镜像签名无效
    }
    if (!verify_signature(os_pubkey, app_image)) {
        return false;  // 应用镜像签名无效
    }
    return true;  // 信任链建立成功
}

案例/场景:智能电表的安全启动与密钥保护

以智能电表为例,设备需要定期上报用电数据并接收远程控制指令。若攻击者替换固件,可能篡改计量数据或伪造控制响应。采用安全启动后,电表上电时先由 BootROM 验证 Bootloader,再验证计量应用。密钥存储在安全存储区,并由 HSM 或 TEE 执行签名操作。PUF 用于生成设备唯一身份,使每台电表拥有不可复制的密钥种子。即使攻击者读取外部 Flash,也无法获得明文密钥。产线注入时,每台设备的密钥由 HSM 生成并加密传输,注入完成后立即锁定调试接口。

误区与复盘:常见安全基础认知偏差

误区一:安全启动等于安全存储。安全启动只保证运行代码可信,不保证密钥不被读取。密钥仍需安全存储、TEE 或 HSM 保护。

误区二:PUF 可以替代所有密钥存储。PUF 适合派生设备唯一密钥,但并非所有场景都能稳定输出,需要纠错和模糊提取器配合。

误区三:启用 TEE 后应用自动安全。TEE 只提供隔离环境,安全世界内部的服务接口仍需严格设计和权限控制。

安全能力 解决的问题 典型实现 量产关注点
安全启动 固件完整性与真实性 BootROM、签名校验、信任链 熔丝烧录、镜像签名、回滚策略
安全存储 密钥保密与防篡改 加密密钥区、安全文件系统 密钥注入、访问策略、掉电保护
可信执行环境 敏感计算隔离 安全世界、TrustZone、TEE OS 安全服务接口、调试关闭
硬件安全模块 密码运算与密钥生命周期 HSM、安全芯片、密码协处理器 密钥生成、签名速率、审计日志
物理不可克隆函数 设备唯一身份与密钥派生 SRAM PUF、仲裁器 PUF 稳定性、纠错、环境适应性

在嵌入式密钥系统量产交付中,建议把安全启动、安全存储、TEE、HSM 和 PUF 视为一个整体信任体系:安全启动建立运行信任,安全存储和 HSM 保护密钥,TEE 隔离敏感计算,PUF 提供设备唯一性。只有这些能力协同工作,才能支撑后续密钥注入、设备认证和生命周期管理。