TAKT 之外
escrow-box
Escrow box 是一个开源原型,将秘密保存在经过度量的虚拟机中,并按双方约定的规则释放。参考实现用于源代码托管。 封存并验证后,虚拟机可以保持关闭,直到需要检查释放事件。
- TPM 2.0
- UKI
- Clevis
- 状态
- 原型已在本地 QEMU 与 swtpm 环境中测试;仓库记录了 Shielded VM 启动实验。生产使用仍需平台资格验证和经验证的控制权移交。钱包签名属于所描述的应用,并未在源代码参考实现中实现。
- 许可证
- Apache 2.0。
- 平台
- Linux x86-64;本地 QEMU/OVMF/swtpm 测试环境,以及已记录的云端实验。
解决什么问题
客户需要确认托管的代码能重建收到的二进制文件,供应商则需要在约定事件发生前保密。该设计将验证与释放分开。
主要功能
- 解密密钥绑定到 TPM 和启动镜像的度量值。
- 验证器重新构建交付物并逐字节比较;只输出哈希和验证结果。
- 参考释放规则使用公司登记状态和签名的存活信号;证据缺失时设有等待期。
- 固定 SSH 命令提供检查、状态查询和释放,不提供交互式终端。
- 封存并验证后,虚拟机可一直关闭,直到需要检查事件。磁盘可备份后从宿主机删除以释放空间,待需要时再恢复。必须保留同一虚拟机及其原有 TPM 状态;TPM 状态仅占几 KB。备份须包含镜像、加密的托管内容、密封的密钥封装及 box 保存的状态。
工作原理
统一内核镜像包含加密的托管内容、验证工具和释放规则。度量启动将密钥绑定到该镜像。内存及 TPM 状态中的秘密保护取决于所选平台。
provision → check → verify → status → unlock
要求
- 配备仓库所列工具的 Linux 构建主机,以及支持 TPM 的虚拟机。
- 实际托管需要接收方无法读取虚拟机内存和 TPM 状态的平台,并约定重启与恢复流程。
- 存入真实秘密前,须约定释放事件、经过认证的证据和验收检查。
- 保留同一虚拟机及其 TPM 状态;保存完整的磁盘备份,并按约定的平台配置恢复到该虚拟机。
本页概述了截至 2026 年 10 月该仓库的 README 和文档内容。以仓库本身为准。