TEE 与远程证明

定义

TEE(Trusted Execution Environment,可信执行环境)是处理器提供的一类能力:在其中运行的代码与数据,对普通操作系统、hypervisor 管理员,以及物理上能读内存总线的观察者保持机密或完整。AMD SEV-SNP 是 Box 文档中出现的具体技术方向之一。

远程证明(remote attestation)是与 TEE 配套的协议:平台对启动测量(例如客户机固件、内核、init 与配置的摘要)出具签名报告。远端验证者检查签名链与测量值,再决定是否注入密钥或开始处理敏感数据。RA-TLS 把证明绑定到 TLS 握手,使连接对端与被证明的身份一致。

问题背景

MicroVM 已经把工作负载与宿主内核分开。若威胁模型进一步包含「宿主管理员不可信」或「需要向第三方证明此刻运行的正是某份已知二进制」,仅有虚拟化不够:管理员仍可能改内核命令行、替换 init,或读取未加密的客户机内存。TEE 把信任根放到 CPU;证明把「我声称在跑什么」变成可核查的测量。

机制说明

仅 VM、且必须显式武装

TEE 依赖虚拟机监视器与硬件。Box 因此把它列为仅 VM 功能:Sandbox 路径拒绝相关控制。模拟 KVM 符合性配置文件可以用于开发,但模拟与未执行的硬件作业不是硬件安全证据。硬件门需要单独武装,并固定启动测量。

产品面上的几个动词

命令 含义
attest 取得或展示证明材料
seal / unseal 把数据封到证明身份下,或在身份匹配时解封
inject-secret 在证明通过之后再注入密钥,避免密钥进入未证明的环境

这些操作属于安全控制,不是日常 run 的一部分。未配置机密提供方时,身份附件不会被默默加上。

与「加密磁盘」的区别

对 rootfs 做静态加密,保护的是落盘后的字节。TEE 保护的是运行中的内存与启动链路。二者可以同时使用,但不能互相替代。没有证明的加密磁盘,只说明「读磁盘的人需要密钥」,不说明「此刻运行的内核是否被替换」。

在 Box 中的位置

  • 核心类型:src/core/src/tee.rssrc/core/src/security.rs
  • 运行时:src/runtime/src/tee/
  • CLI:attest.rsseal.rsunseal.rsinject_secret.rs
  • 客户机:src/guest/init/src/attest_server/
  • 密码学依赖(证明链校验、RA-TLS)列于 src/Cargo.toml 的 workspace.dependencies。
  • 平台状态:运行时绑定的 RA-TLS、身份附件、机密 Tasks/Services 的执行前证明,以及可选模拟配置文件已接线;Cloud BX0.3 硬件 TEE 宣称仍开放。

验证命令

a3s-box info

先确认输出中的 TEE / 证明字段。没有硬件资格时,显式 TEE 工作流应在镜像或内存副作用之前失败。不要用模拟配置文件的成功,代替硬件门的证据。

相关与易混