13 个版本 (5 个破坏性更新)
0.6.0 | 2024 年 7 月 8 日 |
---|---|
0.5.2 | 2024 年 2 月 23 日 |
0.4.1 | 2023 年 12 月 19 日 |
0.4.0 | 2023 年 11 月 28 日 |
0.1.1 | 2023 年 3 月 29 日 |
#369 in 密码学
每月 2,261 次下载
46KB
910 代码行
az-snp-vtpm
此库为 Azure 上的 SEV-SNP CVM 提供了客户端认证流程。请参阅 此存储库 中的文档,了解认证过程详情。
创建 CVM
默认镜像为 Ubuntu 22.04 cvm
export IMAGE_ID=/subscriptions/.../resourceGroups/.../providers/Microsoft.Compute/galleries/.../images/.../versions/1.0.0
make deploy
构建 & 安装
cargo b --release -p az-snp-vtpm
scp ../target/release/snp-vtpm azureuser@$CONFIDENTIAL_VM:
运行二进制文件
检索 SEV-SNP 报告,验证并打印
sudo ./snp-vtpm -p
示例项目
在 ./example
文件夹中有一个项目,展示了如何将 crate 应用于远程认证流程。 注意:代码仅用于说明,未进行详尽的验证,这在生产环境中是必需的。
cargo b -p snp-example
SEV-SNP 报告 & vTPM
通过 vTPM 认证密钥 (AK) 将 vTPM 与 SEV-SNP 报告链接起来。公开的 AK 是运行时数据结构的一部分,当生成 SNP 报告时,将其作为报告数据提交。为了在认证交换中提供新鲜性保证,我们可以请求带有 nonce 的 vTPM 引用。结果是使用 AK 签名的消息。
┌────────────────────────┐
│ HCL Data │
│ │
│ ┌──────────────────────┴─┐ ─┐
│ │ Runtime Data │ │
│ │ │ │
┌──────────────────────┐ │ │ ┌────────────────────┐ │ ├─┐
┌─┤ vTPM AK ├──┼─┼─┤ vTPM Public AK │ │ │ │
│ └──────────────────────┘ │ │ └────────────────────┘ │ │ │
│ ┌──────────────┐ │ └──────────────────────┬─┘ ─┘ │
│ │ vTPM Quote │ │ ┌────────────────────┐ │ │
│ │ │ │ │ HCL Report │ │ │
signs ┌─ ┌─┴────────────┐ │ │ │ │ │ sha256
│ │ │ Message │ │ │ │ ┌────────────────┐ │ │ │
│ │ │ │ │ │ │ │ SEV-SNP Report │ │ │ │
│ │ │ ┌──────────┐ │ │ │ │ │ │ │ │ │
│ │ │ │ PCR0 │ │ │ │ │ │ ┌──────────────┴─┴─┴─┐ │
│ │ │ └──────────┘ │ │ │ │ │ │ Report Data │ ◄───┘
│ │ │ ... │ │ │ │ │ └──────────────┬─┬─┬─┘
│ │ │ ┌──────────┐ │ │ │ │ └────────────────┘ │ │
└─► │ │ │ PCRn │ │ │ │ └────────────────────┘ │
│ │ └──────────┘ │ │ └────────────────────────┘
│ │ ┌──────────┐ │ │
│ │ │ Nonce │ │ │
│ │ └──────────┘ │ │
└─ └─┬────────────┘ │
└──────────────┘
依赖项
~12–25MB
~420K SLoC