4. 安全启动密钥体系与证书链
Ryzen Embedded 平台的安全启动并不是“一把钥匙开一把锁”,而是一套分层信任的密钥体系。理解这套体系的关键,是分清三个层次:不可更改的硬件信任锚、由 AMD 掌控的根密钥与签名链、以及由 OEM/ODM 掌控的固件签名密钥。三者通过证书链串联,任何一层被破坏或吊销,都会直接影响启动链的信任判定。
一、信任锚:AMD 根密钥(ARK)与硬件熔丝
信任的起点是 AMD 根密钥(AMD Root Key,ARK)。ARK 的公钥哈希被烧录在 SoC 内部的一次性可编程熔丝(eFuse)中,属于硬件信任锚。它不可被软件改写,因此即使攻击者获得了固件写入权限,也无法替换这个根。ARK 通常以自签名根证书形式存在,其私钥由 AMD 在离线高安全环境中保管,用于签发下一级密钥。
在 Ryzen Embedded 上,与安全启动直接相关的熔丝还包括:是否启用安全启动、允许的密钥版本号(Anti-Rollback 计数)、以及调试接口的锁定状态。这些熔丝一旦烧写便不可逆,因此量产前必须确认策略。
二、证书链:从 ARK 到固件签名密钥
AMD 的密钥层级通常为:ARK → ASK(AMD SEV/安全协处理器密钥)→ 固件签名密钥。在嵌入式场景中,更常见的是 ARK 签发 AMD Signing Key(ASK),再由 ASK 签发 OEM 固件签名密钥(FSK)。FSK 的私钥由 OEM 自己保管,用于对 BIOS/UEFI 固件镜像、PSP 目录表(PSP Directory Table)以及各二级引导程序(如 PSP 固件、SMU 固件)进行签名。
验证时,PSP(Platform Security Processor)从熔丝中取出 ARK 公钥哈希,验证 ASK 证书;再用 ASK 公钥验证 FSK 证书;最后用 FSK 公钥验证固件镜像的签名。这条链上任何一环的签名不匹配、证书过期或密钥被吊销,启动都会在 PSP 阶段被拒绝。
三、密钥吊销:Anti-Rollback 与版本号机制
密钥吊销不是“删除密钥”,而是通过版本号提升让旧密钥失效。Ryzen Embedded 的 PSP 在验证证书链时,会检查证书中的密钥版本号是否大于等于 eFuse 中记录的最小允许版本。如果固件使用旧版本密钥签名,即使签名本身有效,也会被拒绝。
实际工程中,吊销通常发生在以下场景:OEM 的 FSK 私钥疑似泄露、某批次固件签名密钥需要作废、或从开发密钥切换到量产密钥。操作上,OEM 需要向 AMD 申请新的 ASK 签发请求,获得新 FSK 证书后,将新固件用新 FSK 签名,并同步提升 eFuse 中的密钥版本号。注意:eFuse 版本号只能单调递增,一旦提升无法回退,因此必须确保新固件已经过完整验证。
四、密钥存储机制:私钥、证书与熔丝的分工
密钥存储需要区分三类对象:私钥、证书和熔丝中的哈希/版本号。它们的存放位置和安全要求完全不同。
| 对象 | 存放位置 | 安全要求 | 是否可更改 |
|---|---|---|---|
| ARK 公钥哈希 | SoC eFuse | 硬件信任锚,只读 | 否 |
| ASK 证书 | 固件镜像内(PSP 目录表) | 随固件分发,可公开 | 可随固件更新 |
| FSK 私钥 | OEM 离线 HSM / 签名服务器 | 最高机密,禁止联网 | 可轮换 |
| FSK 证书 | 固件镜像内 | 可公开,需与 ASK 链匹配 | 可随固件更新 |
| 密钥版本号 | eFuse + 证书扩展字段 | 单调递增,防回滚 | 仅可提升 |
在签名流程中,OEM 通常使用 HSM 或离线签名机完成 FSK 私钥操作。签名对象包括:固件镜像的哈希、PSP 目录表的哈希,以及各二级引导程序的哈希。签名结果与 FSK 证书一起打包进固件镜像的签名区。PSP 启动时先读取 eFuse 中的 ARK 哈希,再逐级验证证书链,最后验证固件签名。
五、工程实践中的关键检查点
在 Ryzen Embedded 安全启动项目中,建议在以下节点做明确检查:
- 熔丝烧写前:确认 ARK 哈希与 AMD 提供的根证书一致,确认密钥版本号与当前固件匹配。
- 签名前:确认 FSK 证书链完整(FSK → ASK → ARK),确认证书未过期、未被吊销。
- 固件发布前:确认签名覆盖了所有需要验证的组件,包括 PSP 固件、SMU 固件和 BIOS 区域。
- 密钥轮换时:先发布使用新密钥签名的固件,再提升 eFuse 版本号,避免设备变砖。
总结来说,Ryzen Embedded 安全启动的密钥体系是一条从硬件熔丝到固件镜像的完整信任链。ARK 提供不可更改的根,ASK 和 FSK 提供可轮换的签名能力,版本号机制提供吊销手段,而私钥、证书和熔丝的分工存储则决定了整个体系的安全边界。理解这四者的关系,是后续进行固件签名、密钥轮换和故障排查的基础。