2. Silicon Labs硬件安全基础

在进入密钥工程与安全启动的具体实现之前,必须先建立对 Silicon Labs 硬件安全底座的清晰认识。Secure Vault 并不是一个软件库,而是集成在芯片内部的一组硬件安全资源与固件协同机制。它决定了密钥能否被安全生成、存储、使用,以及设备能否在启动阶段就建立可信状态。理解 Secure Vault High 与 Mid 的差异、信任根 RTS 的定位、PUF 与 TRNG 的分工,以及安全启动所依赖的外设与存储区域,是后续所有密钥配置与安全启动设计的前提。

Secure Vault High 与 Mid 的能力边界

Secure Vault 分为 High 和 Mid 两个等级,二者共享同一套安全子系统框架,但在密钥保护强度、抗攻击能力和可用安全资源上存在明确差异。Mid 等级面向成本敏感但仍需基本安全启动与密钥保护的应用,提供安全密钥存储、TRNG、安全启动以及有限的防篡改能力。High 等级在此基础上增加了 PUF 密钥派生、更强的防篡改与抗侧信道设计、更完整的密钥生命周期管理,以及更高的安全认证目标支持。

从工程选型角度看,关键判断点在于:密钥是否需要与芯片物理特征绑定、是否需要抵抗物理侵入与侧信道分析、是否需要支持安全调试与密钥撤销等高级生命周期操作。若产品涉及身份认证、支付、门禁或固件知识产权保护,通常应选择 High;若仅需防止固件被替换、保护少量对称密钥,Mid 往往已足够。需要注意的是,High 与 Mid 在寄存器级和 API 层面并非完全兼容,密钥槽数量、可用的密钥类型和派生路径都可能不同,迁移时需重新评估密钥布局。

信任根 RTS 与安全子系统

信任根(Root of Trust, RTS)是安全启动链条的起点。在 Silicon Labs 的架构中,RTS 由芯片出厂时固化的不可变代码与硬件安全子系统共同构成。它负责在每次上电或复位后,首先验证下一阶段固件(通常是安全启动加载器或一级引导程序)的完整性与真实性,验证通过后才将控制权交出。RTS 本身不可修改,其验证公钥或密钥摘要通常烧录在一次性可编程区域或受保护的密钥存储中。

安全子系统则围绕 RTS 提供运行时支撑,包括密钥管理单元、加密加速器、随机数发生器、安全存储控制器以及访问权限控制逻辑。它通过硬件总线隔离,确保非安全代码无法直接读取密钥或篡改安全状态寄存器。理解这一点很重要:安全启动不是单纯调用一个 API,而是由 RTS 触发、安全子系统执行、最终由应用固件继承可信状态的一条链。

Secure Vault 硬件安全资源与安全启动信任链 信任根 RTS(出厂固化不可变代码 + 硬件安全子系统) 上电/复位 → 验证一级引导 → 建立可信状态 → 移交控制权 Secure Vault High • PUF 密钥派生,密钥与芯片物理特征绑定 • 更强防篡改:电压/温度/光/时钟监测 • 抗侧信道设计,支持更高认证目标 • 完整密钥生命周期:生成/派生/撤销/销毁 • 安全调试与密钥访问权限精细控制 适用:身份认证、支付、门禁、IP 保护 Secure Vault Mid • 安全密钥存储,密钥不暴露于非安全域 • 硬件 TRNG 提供高质量随机源 • 安全启动验证固件完整性与真实性 • 有限防篡改,基础访问权限控制 • 无 PUF,密钥不绑定芯片物理特征 适用:成本敏感、基础固件保护、对称密钥 PUF 物理不可克隆函数 利用芯片制造微观差异 生成唯一、不可复制的设备指纹 用于密钥派生与设备身份绑定 TRNG 真随机数发生器 基于物理噪声源产生熵 为密钥生成、Nonce、IV 提供随机 High/Mid 均具备,High 熵源更丰富 安全存储与外设 安全密钥存储区(受总线隔离保护) OTP 一次性可编程区(存公钥摘要) 加密加速器、安全启动加载器接口 High 在 Mid 基础上叠加 PUF 与更强防篡改;两者共享 RTS 与安全子系统框架

PUF 与 TRNG 的分工

PUF(Physical Unclonable Function,物理不可克隆函数)和 TRNG(True Random Number Generator,真随机数发生器)常被混淆,但它们在密钥工程中的角色完全不同。TRNG 解决的是“随机性从哪来”的问题:它利用芯片内部的物理噪声源(如环形振荡器抖动、热噪声)产生不可预测的比特流,用于生成密钥种子、初始化向量和挑战值。每次上电,TRNG 输出的序列都不同,这是密码学安全的基本要求。

PUF 解决的是“密钥如何与设备绑定”的问题。它利用芯片制造过程中不可避免的微观工艺差异,产生一个唯一且稳定的响应。这个响应不存储在非易失存储器中,而是每次需要时由硬件重新生成。因此,即使攻击者物理读取了 Flash 内容,也无法获得由 PUF 派生的密钥。在 Secure Vault High 中,PUF 通常用于派生设备主密钥或包装密钥,再结合 TRNG 生成的随机数,形成“设备唯一 + 每次随机”的双重保护。

一个典型的密钥派生流程是:TRNG 生成随机种子 → 与 PUF 响应结合 → 通过密钥派生函数(如 HKDF)导出实际使用的密钥。这样,密钥既不离开芯片,也不以明文形式存在于任何存储介质中。需要强调的是,PUF 响应可能存在少量比特翻转,硬件通常会配合纠错码(ECC)和模糊提取器来保证稳定性,这部分由芯片自动处理,应用层无需干预。

安全启动相关外设与存储区域

安全启动依赖几个关键硬件资源协同工作。首先是安全启动加载器(Secure Bootloader),它通常存放在受保护的 Flash 区域,由 RTS 验证后执行。其次是 OTP(One-Time Programmable)区域,用于烧录信任根公钥的哈希或摘要,一旦写入不可更改,是信任链的锚点。第三是安全密钥存储区,密钥以加密或包装形式存放,只有安全子系统能访问,非安全代码读取会触发总线错误或返回零值。

此外,加密加速器(如 AES、SHA、ECC 引擎)在启动阶段用于验证固件签名和计算哈希,其硬件实现比软件实现更快且更难被侧信道攻击。安全启动过程中,加载器会计算固件镜像的哈希,用 OTP 中存储的公钥验证签名,只有验证通过才跳转到应用入口。若验证失败,芯片可配置为进入安全恢复模式或永久锁定,具体行为取决于熔丝位和启动配置。

在实际项目中,建议先确认芯片型号对应的 Secure Vault 等级,再规划密钥槽分配。High 与 Mid 的密钥槽数量和类型不同,若后期从 Mid 升级到 High,密钥布局可能需要重新设计。同时,OTP 区域一旦烧录无法回退,量产前务必在开发板上完整验证信任根公钥和启动配置。

从硬件资源到安全启动的映射关系

将上述资源串联起来,可以形成一条清晰的映射:RTS 是信任起点,OTP 存储信任锚,安全启动加载器是执行者,加密加速器是验证工具,PUF 和 TRNG 是密钥材料来源,安全存储区是密钥的最终归宿。Secure Vault High 与 Mid 的差异,本质上是在这条链上增加了 PUF 派生能力和更强的物理防护,而 RTS、TRNG、安全存储和加密加速器是两者共有的基础。