Updated on 2025-01-02 GMT+08:00

PCR

A QingTian Enclave instance's measurements include a series of hashes calculated using standard trusted measurements and are stored in the platform configuration registers (PCRs) of the QingTian Security Module (QTSM).

A QingTian Enclave instance's measurements can support a maximum of 32 PCRs. The QingTian Enclave system occupies the PCRs with indexes 0 to 15 (PCR0-PCR15), and the QingTian Enclave application can use the PCRs with indexes 16 to 31 (PCR16-PCR31).

Image verification is not performed for QingTian Enclave instances that are launched in debug mode. PCR0 to PCR15 used by QingTian Enclave are made up entirely of zeros to prevent data leaks. Your QingTian Enclave application can continue to use PCR16 to PCR31.

System PCRs

PCR

Measurement

Remarks

PCR0

QingTian Enclave image file

A measurement of the contents of the QingTian Enclave image file, excluding the certificate and signature information

PCR3

IAM Agency

A contiguous measurement of the IAM agency assigned to the parent instance. Ensures that the attestation process succeeds only when the parent instance has the correct IAM agency.

It is delivered only once when the parent instance is launched. After it is reset, the instance needs to be restarted to apply the change.

PCR4

Instance UUID of the parent instance

A contiguous measurement of the UUID of the parent instance. Ensures that the attestation process succeeds only when the parent instance has a specific instance UUID.

PCR8

QingTian Enclave image file signing certificate

A measurement of the signing certificate for the QingTian Enclave image file

Currently, QingTian Enclave provides the measurements for PCR0 and PCR8 and it will have more measurements for future use.

  1. PCR0 is the measurement of the QingTian Enclave image file and is a determined value since the QingTian Enclave image file is built. Example PCR0:
    EXTEND_PCR: index: 0
    EXTEND_PCR: data:  
    0d1ae7330f437ee563178df30a7c7b7634125d31cac14f6784933db5e90080008438b38fdbb39c886ffe0586ab099b56
    EXTEND_PCR res: data:  
    b8c59692da8a5bcb739a83d15a0ceca670bd78da06cb2250ec70548f72254e674419e9888db9c0364a9b88dd58017a62
  2. To further enhance the security policy of QingTian Enclave, you can create an IAM agency and attach it to the parent instance. In the condition keys of KMS key policies, you can use the SHA384 hash value of IAM agency as PCR3. This ensures that only QingTian Enclaves running on instances with the correct IAM agency can perform specific KMS actions on KMS keys. You can generate the hash using any tool that can convert a string to an SHA384 hash. Example 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 is based on SHA384 of the parent instance's UUID, so you can generate the PCR after launching the parent instance. You can generate the hash using any tool that can convert a string to an SHA384 hash. Example 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 is a measurement of the signing certificate of the QingTian Enclave image file. You can sign the QingTian Enclave image file using your signing certificate and private key. PCR8 is available only when the QingTian Enclave image file is signed with the signing certificate and private key. PCR8 can be used to verify that the image is signed by using a specific signing certificate. As long as the specified signing certificate is not changed, PCR8 remains unchanged, even if the image file is changed. Details of PCR8 are as follows:
    EXTEND_PCR: index: 8
    EXTEND_PCR: data:
    c5b3e075e00c261e7fc364f1541067b2a42d4b793225ab10e5cfb8eaca31b3d598af9dd2e491828c2569a9953401abcb
    EXTEND_PCR res: data:  
    4f8b066ce5ac24150612ba9a55bbb9211f626152ada40ede160f4d7ecbfa214c2a549181f6611a3d16a12ec88a577a01