更新时间:2024-12-19 GMT+08:00
分享

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,后续会进行扩展。

  1. PCR0是对QingTian Enclave镜像文件的度量值,在镜像制作完成时,PCR0的值就是确定的。以下是PCR0实例:
    EXTEND_PCR: index: 0
    EXTEND_PCR: data:  
    0d1ae7330f437ee563178df30a7c7b7634125d31cac14f6784933db5e90080008438b38fdbb39c886ffe0586ab099b56
    EXTEND_PCR res: data:  
    b8c59692da8a5bcb739a83d15a0ceca670bd78da06cb2250ec70548f72254e674419e9888db9c0364a9b88dd58017a62
  2. 为了进一步加强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())"
  3. 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())"
  4. PCR8是对QingTian Enclave镜像文件的签名证书的度量值,用户可以选择用自己的证书和私钥对镜像文件进行签名。只有当镜像文件使用了签名证书和私钥进行签名,才会有对应的PCR8。使用PCR8可以确认是镜像是通过特定的签名证书来进行签名的,即使镜像文件改变,只要指定的签名证书不变,PCR8就不会变化。以下是PCR8实例:
    EXTEND_PCR: index: 8
    EXTEND_PCR: data:
    c5b3e075e00c261e7fc364f1541067b2a42d4b793225ab10e5cfb8eaca31b3d598af9dd2e491828c2569a9953401abcb
    EXTEND_PCR res: data:  
    4f8b066ce5ac24150612ba9a55bbb9211f626152ada40ede160f4d7ecbfa214c2a549181f6611a3d16a12ec88a577a01

相关文档