远程证明让一方在把数据或工作托付给另一台机器之前,先获得一份由硬件签名的证据,了解这台机器的软件状态[1, 2]。对 AI 工作负载而言,用户设备可能想在加密提示词之前,先知道哪些软件会接收它;模型所有者在交出用于解密权重的密钥之前,也可能需要同样的证据[1, 8]。这些证据来自可信执行环境(TEE)。TEE 是处理器中一种由硬件隔离的执行模式,它会记录自己加载的内容,并就此签署一份报告[2, 3]。一份有效的报告能让这一方知道机器加载了什么、运行在哪种硬件上。但它不能表明,所加载的软件会像运营方所说的那样运行。
RFC 9334 定义的角色
互联网工程任务组(IETF)以 RFC 9334 的形式发布了 Remote ATtestation procedureS(RATS)架构。该架构定义的各个角色不依赖任何特定的处理器或协议[1]。表中第三列是我们给出的示例。
| 角色 | 职能 | AI 服务中的典型参与方 |
|---|---|---|
| 证明方 | 生成证据,即度量值、配置等声明 | 运行模型的机密虚拟机(VM)和图形处理器(GPU) |
| 验证方 | 对照参考值、背书和评估策略来评估证据,再生成证明结果 | 厂商提供的远程证明服务,或客户端中的程序库 |
| 依赖方 | 根据证明结果自行作出决定 | 用户的客户端,或保管模型密钥的密钥服务 |
| 背书方 | 为证明方的能力担保,例如为只保存在硬件中的签名密钥签发证书 | 芯片制造商 |
| 参考值提供方 | 提供与声明比对的预期值 | 软件发布方;固件方面则是硬件制造商 |
自行核查证据的客户端,既是验证方,也是依赖方[1]。
硬件如何度量软件并为证据签名
证据从度量值开始。度量值是代码和数据在加载时记录下来的密码学哈希值。在 RFC 9334 所说的分层远程证明(layered attestation)中,每个阶段都先度量下一个阶段,再启动它。任何阶段都不能改动关于自身加载过程的记录[1]。
机密虚拟机在启动时就采用这种做法。按设计,硬件会把它们的内存与宿主机隔离,也与虚拟机监控器(即管理虚拟机的软件)隔离。在 Intel Trust Domain Extensions(TDX)中,TDX 模块把虚拟机初始内存页的度量值记录在一个度量寄存器中。虚拟机内的软件之后加载代码和数据时,可以把它们的度量值扩展到运行时度量寄存器中[2]。在 AMD Secure Encrypted Virtualization with Secure Nested Paging(SEV-SNP)中,AMD Secure Processor 会度量虚拟机的初始内存页及其放置位置,形成一个启动摘要[3]。
接下来要为度量值签名。Intel 的设计把处理器生成的报告转换为 quote,并用证明密钥签名。这把密钥的证书链可以追溯到 Intel 的一个证书颁发机构,Intel 的目标是公布这条证书链上的证书和吊销列表[2]。AMD 的固件用版本化芯片背书密钥(Versioned Chip Endorsement Key,VCEK)为报告签名。每块芯片都有自己的 VCEK,它由芯片可信组件的版本号派生而来,因此有效的签名也能标明这些版本[3]。两种设计都允许虚拟机内的软件把自己的数据加入报告,例如它将用于通信的公钥,或该公钥的哈希值[2, 3]。
验证方如何评估报告
在发送任何敏感内容之前,验证方要逐项完成以下检查:
- 签名与证书链。报告签名密钥的证书链必须追溯到硬件制造商的根证书,而且链上没有任何已吊销的证书[2, 4]。
- 固件版本。可信计算基(TCB)指为保证安全策略成立而必须正确工作的全部硬件、固件和软件。当每个组件的安全版本号都达到该组件作者公布的阈值时,Intel 就把 TCB 视为最新[2]。Trail of Bits 在 WhatsApp Private Processing 上线前对其做了审计,发现系统信任的是固件自行报告的补丁级别。修复后改为检查由 AMD 签名的证书字段[7]。
- 度量值。验证方把度量值与参考值比对[1]。在 Apple 的 Private Cloud Compute(PCC)中,参考值来自一份公开的透明日志。Apple 称,节点经远程证明的度量值必须与日志中的某个版本相符,用户设备才会为该节点封装(即加密)请求载荷密钥[8]。
- 新鲜性。随机数(nonce)是由验证方选定、无法预测的值,会随证据一起签名,从而表明证据是在随机数生成之后签署的[1]。WhatsApp 审计发现,报告中没有客户端提供的随机值。因此,攻击者只要攻破某个 TEE 一次,就能无限期地重放它的报告和会话密钥。Meta 的修复方案在每份报告中加入客户端的随机值。这个值来自传输层安全(TLS)握手,即建立加密连接时双方交换信息的过程[7]。
- 与连接绑定。报告应当与保护会话的密钥绑定,这样只有经过远程证明的机器才能读取数据。AMD 的设计允许虚拟机把自己公钥的哈希值放进报告[3]。审计人员则建议让远程证明涵盖一个由 TLS 握手派生的值[7]。
GPU 如何纳入信任边界
大模型运行在 GPU 上,推理期间模型和数据都存放在 GPU 中。因此,仅有中央处理器(CPU)的远程证明,对 GPU 什么也说明不了。NVIDIA 为 H100 GPU 提供的机密计算模式,与运行在 AMD SEV-SNP 或 Intel TDX 上的机密虚拟机协同工作[4]。传输的数据、命令缓冲区和 CUDA 内核在经过虚拟机与 GPU 之间的 PCI Express 总线之前都会加密。GPU 封装内的显存不加密。NVIDIA 称,这部分显存被认为能够抵御常见的物理攻击工具[4]。
虚拟机的信任边界圈定了它托付数据的那些组件。在把 GPU 纳入信任边界之前,虚拟机会对照 NVIDIA 的证书颁发机构,核查 GPU 身份密钥的证书,并确认证书未被吊销。这把身份密钥烧录在芯片的熔丝中。GPU 还会就自身的度量值生成一份签名的证明报告[4]。NVIDIA Remote Attestation Service(NRAS)或本地验证工具会把这些度量值与参考完整性清单(RIM)比对。RIM 是 NVIDIA 在构建驱动程序和 GPU 固件的过程中生成并签名的参考值[5, 6]。度量对象包括硬件配置、固件和驱动程序微码[6]。
CPU 的 TEE 和每块 GPU 都提供了证据,这台机器因此成为 RFC 9334 所说的复合设备(composite device)。每个组件生成自己的证据,再由一个主证明方(lead attester)汇总[1]。依赖方需要所有这些证据,而且要确认它们都与同一台机器绑定。
有效报告能确立什么,又留下了哪些缺口
一份通过上述检查的报告表明:固件版本已知的真实硬件在受保护模式下加载了经过度量的软件,证据是新鲜的,而且与连接绑定。但仍有四个缺口。
软件行为和之后加载的输入不在报告范围内。度量值能够识别代码。但它不能表明代码执行了它的策略,也说明不了之后加载的输入。WhatsApp 审计发现,一些含有环境变量的配置文件在度量之后才加载。内部人员本可借此加载恶意代码,而远程证明依然能通过[7]。
度量值相符,只有在有人了解该构建版本的行为时才有用。Apple 承诺公开每一个生产环境的 PCC 镜像,让研究人员能够将其与日志中记录的度量值相对照[8]。Trail of Bits 指出,要让机密虚拟机镜像完全可复现,以便外部人员重新构建并检查,仍有难度[7]。
仍需信任硬件制造商。RFC 9334 把没有任何证据描述的组件称为信任根,因此必须由背书为它们担保[1]。威胁模型说明一项设计要防御什么、信任什么。例如,AMD 的 SEV-SNP 威胁模型就把芯片硬件及其安全处理器视为完全可信[3]。
物理攻击和侧信道往往不在防护范围内。AMD 把虚拟机运行期间针对内存总线的攻击列在防护范围之外。它还表示,硬件没有专门防范架构侧信道[3]。Intel 表示,TDX 并不能防范所有类型的硬件攻击[2]。2026 年 9 月,研究人员披露了 DDRop。这是一种内存总线插入器,即插在处理器与内存之间的设备。它的零件成本不到 200 美元。研究人员报告称,曾在 Intel TDX 上用它伪造证明报告中的度量值。Intel 和 AMD 告诉研究人员,针对主内存的物理攻击不在当前产品的防护范围之内[11]。
AI 工作负载带来的变化:模型权重与更大的 TCB
模型权重需要单独核查。启动度量值描述的是启动时内存中的内容。如果权重在启动后才加载,那么除非软件度量了这些权重,或在使用前验证了权重的签名,否则远程证明无法说明是哪个模型在提供服务。例如,软件可以把权重的度量值记入 TDX 的运行时度量寄存器[2]。Google 的 Confidential Space 会报告工作负载容器的镜像摘要[9]。这个摘要涵盖构建进镜像的权重,但不涵盖之后下载的权重。
远程证明也可以作为发放权重的前提条件。RFC 9334 描述了这样一种情形:模型所有者只把模型或解密模型的密钥交给通过远程证明的设备[1]。在 Anthropic 2025 年的设计构想中,权重保持加密,只有在密钥服务器核查远程证明之后,才会在一个小型可信加载程序中解密[10]。
可信计算基随推理软件栈一同扩大。机密虚拟机内的一切都属于工作负载的 TCB,因为 AMD 的威胁模型把虚拟机本身视为完全可信,并由它负责保护自身的接口[3]。使用 GPU 时,TCB 包括 NVIDIA 驱动程序[4],以及操作系统和推理服务软件。Anthropic 的构想让可信部分保持精简。在其推理服务器中,只有一个小型加载程序能够访问解密后的数据。Anthropic 表示,其余部分可能频繁变动,但不会因此影响系统的安全性[10]。
延伸阅读
RFC 9334 定义了完整的术语体系[1];Trail of Bits 的审计则说明了一个实际部署的检查在哪些地方有所欠缺[7]。
来源
- Remote ATtestation procedureS (RATS) Architecture (RFC 9334)
- Intel Trust Domain Extensions (white paper)
- AMD SEV-SNP: Strengthening VM Isolation with Integrity Protection and More
- Confidential Computing on NVIDIA H100 GPUs for Secure and Trustworthy AI
- Architecture Overview, NVIDIA Attestation Quick Start Guide
- RIM Service introduction, NVIDIA Attestation Cloud Services
- What we learned about TEE security from auditing WhatsApp's Private Inference
- Private Cloud Compute: A new frontier for AI privacy in the cloud
- Confidential Space attestation token claims
- Confidential Inference via Trusted Virtual Machines
- DDRop: Active Memory Interposer Attacks on Confidential VMs by Dropping DDR5 Writes (project site)
核查或更正本页
- 更正
- 提交更正请求 · 在 GitHub 编辑源文件 · 更正政策
