2、硬件信任根(Root of Trust):AMD片上ROM、BootROM原理、硬件信任链建立过程
2.1 信任根是什么?说白了就是“第一把锁”
做安全启动,最核心的问题就是:谁第一个来证明自己是可信的?
你想想看,整个系统从加电到操作系统启动,中间要经过无数个环节。如果第一个环节就不安全,后面再怎么加固也是白搭。这个“第一个环节”,就是硬件信任根(Root of Trust,简称RoT)。
在AMD平台上,信任根是固化在芯片内部的。它不可篡改,不可绕过。我个人习惯把信任根比作“芯片的出生证明”——从你按下电源键的那一刻起,它就决定了后续所有代码是否值得信任。
2.2 AMD片上ROM:焊死在芯片里的“铁律”
AMD的片上ROM,是一段只读存储器。它位于CPU内部,出厂时就已经写好了。你没法改,也没法删。嗯,这里要注意——它不像BIOS那样可以升级,它是真正的“一次写入,终身不变”。
我在项目中遇到过一件事:有客户想通过修改BootROM来绕过安全启动检查。我跟他说,这个想法趁早放弃。片上ROM是物理只读的,你连读都只能通过特定的接口,更别说写了。
片上ROM里主要存放的是:
- BootROM代码:加电后CPU执行的第一段指令
- 公钥哈希值:用于验证后续固件签名的根公钥的摘要
- 芯片唯一标识:每个芯片出厂时烧录的不可变ID
说白了,片上ROM就是AMD给你的一张“底牌”。它不参与日常运算,但关键时刻,它说了算。
2.3 BootROM原理:CPU醒来后做的第一件事
CPU加电后,程序计数器(PC)会指向一个固定的地址。在AMD平台上,这个地址就是片上ROM的入口。BootROM开始执行,整个信任链就此拉开序幕。
BootROM的工作流程,我总结为三步:
- 自检与初始化:检查CPU核心状态,初始化缓存作为临时RAM(CAR,Cache-as-RAM)。这一步很快,毫秒级完成。
- 验证外部引导介质:从SPI闪存(存放BIOS/UEFI固件)中读取第一段代码——通常是PSP(Platform Security Processor)的固件。
- 签名校验:用片上ROM里固化的公钥哈希,去验证PSP固件的数字签名。校验通过,才把控制权交给PSP。
2.4 硬件信任链建立过程:一环扣一环
信任链的建立,本质上是一个“逐级验证”的过程。每一级都验证下一级的完整性和真实性。一旦有一环断裂,整个启动过程就终止。
AMD平台的信任链大致如下:
| 层级 | 验证者 | 被验证者 | 验证方式 |
|---|---|---|---|
| 第1级 | 片上ROM(BootROM) | PSP固件 | RSA签名验证(公钥哈希固化在ROM中) |
| 第2级 | PSP固件 | UEFI/BIOS固件 | RSA签名验证(公钥由PSP固件提供) |
| 第3级 | UEFI/BIOS固件 | 操作系统引导加载程序(如GRUB) | UEFI Secure Boot验证 |
| 第4级 | 操作系统引导加载程序 | 操作系统内核 | 内核模块签名验证 |
你发现没有?每一级的公钥都是由上一级“担保”的。最顶级的信任根,就是片上ROM里那个不可变的公钥哈希。这就是硬件信任链的根基。
我个人觉得,理解这个链条的关键在于:信任不是凭空产生的,它是传递的。 就像你信任一个陌生人,是因为你信任的朋友介绍了他。在AMD平台上,片上ROM就是那个“你绝对信任的朋友”。
2.5 一个实际的例子:PSP固件加载过程
光讲理论有点干,我拿PSP固件加载举个例子,你就明白了。
PSP(Platform Security Processor)是AMD芯片里的一个独立安全核心。它有自己的小内核,专门负责安全启动和可信执行环境的管理。
BootROM加载PSP固件时,会做以下几件事:
- 从SPI闪存的特定偏移地址读取PSP固件头部
- 解析固件头部,获取签名信息和固件大小
- 用片上ROM里的公钥哈希,验证固件签名
- 如果签名有效,将PSP固件加载到SRAM中执行
- 如果签名无效,直接死循环——这就是所谓的“硬砖”
2.6 信任链的延伸:从芯片到云端
信任链建立起来之后,它不会在操作系统启动后就结束。实际上,AMD的信任链可以延伸到应用层和云端。
举个例子,AMD的SEV(Secure Encrypted Virtualization)技术,就是基于硬件信任链的。虚拟机启动时,它的内存加密密钥由PSP生成,并且只有PSP知道。宿主机操作系统看不到,云服务提供商也看不到。
这意味着什么?意味着即使云平台的管理员有root权限,他也无法读取你的虚拟机内存。信任从芯片开始,一直延伸到你的应用数据。
嗯,这里要强调一点:信任链的长度决定了安全边界。 链条越长,攻击面越大。所以AMD在设计时,尽量缩短信任链,让硬件承担更多的安全责任。
2.7 小结:记住这三句话
关于硬件信任根和信任链,你只需要记住三句话:
- 信任根是物理不可变的——AMD片上ROM就是那个“铁律”
- 信任链是逐级验证的——每一级都验证下一级,环环相扣
- 信任是传递的——从芯片到固件到操作系统,信任一路传递下去
下一章,我会讲PSP(Platform Security Processor)的详细工作原理。到时候你会看到,这个小小的安全核心,是如何撑起整个AMD安全体系的。