PCR简介
QingTian Enclave的度量值是由标准可信度量运算得到的一组哈希值(Hashes)组成,这组哈希值保存在QingTian安全模块(QingTian Security Module, QTSM)的平台配置寄存器(Platform configuration registers,PCR)。
QingTian Enclave度量值最多可支持32个PCR。QingTian系统占用index 0~15的PCR,用户的Enclave应用可使用index 16~31的PCR。
使用debug-mode启动Enclave时,不进行镜像校验。QingTian系统的index 0~15的PCR默认全为零避免打印泄漏。用户的Enclave应用可继续使用index 16~31的PCR。
系统PCR
PCR |
度量内容 |
备注 |
---|---|---|
PCR0 |
QingTian Enclave镜像文件 |
QingTian Enclave镜像文件本身,不包括证书与签名信息。 |
PCR3 |
IAM Agency |
分配给父虚拟机实例的IAM Agency的连续度量值。确保父虚拟机具有正确的IAM Agency时,证明流程才能成功。 用户通过页面设置,当前仅在父虚拟机启动时下发一次,重置后需重启虚拟机生效。 |
PCR4 |
父虚拟机Instance UUID |
父虚拟机UUID的连续度量值。确保只有当父虚拟机具有特定的UUID时,证明过程才会成功。 |
PCR8 |
QingTian Enclave镜像文件签名证书 |
QingTian Enclave镜像文件的签名证书。 |
当前QingTian Enclave提供的度量值支持PCR0和PCR8,后续会进行扩展。
- PCR0是对QingTian Enclave镜像文件的度量值,在镜像制作完成时,PCR0的值就是确定的。以下是PCR0实例:
EXTEND_PCR: index: 0 EXTEND_PCR: data: 0d1ae7330f437ee563178df30a7c7b7634125d31cac14f6784933db5e90080008438b38fdbb39c886ffe0586ab099b56 EXTEND_PCR res: data: b8c59692da8a5bcb739a83d15a0ceca670bd78da06cb2250ec70548f72254e674419e9888db9c0364a9b88dd58017a62
- 为了进一步加强QingTian Enclave的安全策略,您可以创建IAM Agency并将其附加到父虚拟机。在KMS密钥策略的条件密钥中使用IAM Agency的SHA384哈希值作为PCR3。这样做可确保只有在具有正确IAM Agency的实例上运行的QingTian Enclave才能针对KMS密钥执行特定的KMS操作。您可以使用任何能够将字符串转换为SHA384哈希的工具生成哈希。以下是PCR3实例:
$IAM_AGENCY="iam: :6c031a4leefc480bb60f20c003891fcd:agency:cddd"; \ python -c"import hashlib, sys; \ h=hashlib.sha384(); h.update(b'\0'*48); \ h.update(\"$IAM_AGENCY\".encode('utf-8')); \ print(h.hexdigest())"
-
PCR4基于父虚拟机UUID的SHA384计算值。因此,您可以在启动父虚拟机后生成PCR。您可以使用任何能够将字符串转换为SHA384哈希的工具生成此哈希。以下是PCR4实例:
$INSTANCE_ID="ecb23eec- 51d4-462f-8dbd-63bfbae7869b"; \ python -c"import hashlib, sys; \ h=hashlib.sha384(); h.update(b'\0'*48); \ h.update(\"$INSTANCE_ID\".encode('utf-8')); \ print(h.hexdigest())"
- PCR8是对QingTian Enclave镜像文件的签名证书的度量值,用户可以选择用自己的证书和私钥对镜像文件进行签名。只有当镜像文件使用了签名证书和私钥进行签名,才会有对应的PCR8。使用PCR8可以确认是镜像是通过特定的签名证书来进行签名的,即使镜像文件改变,只要指定的签名证书不变,PCR8就不会变化。以下是PCR8实例:
EXTEND_PCR: index: 8 EXTEND_PCR: data: c5b3e075e00c261e7fc364f1541067b2a42d4b793225ab10e5cfb8eaca31b3d598af9dd2e491828c2569a9953401abcb EXTEND_PCR res: data: 4f8b066ce5ac24150612ba9a55bbb9211f626152ada40ede160f4d7ecbfa214c2a549181f6611a3d16a12ec88a577a01