证明文档
证明文档用于证明QingTian Enclave实例的可信度量结果。证明文档由QingTianHypervisor生成,文档内容包括PCR列表、QingTianPKI证书链、密码算法声明以及Enclave应用自定义数据。证明文档由华为云QingTian Attestation PKI (Public Key Infrastructure)签署。
QingTianHypervisor生成的证明文档以简明二进制对象表示(CBOR)进行编码,并用CBOR Object Signing and Encryption (COSE)进行签名。关于CBOR,详情可见 RFC 8949: Concise Binary Object Representation (CBOR)。
关于QingTian Enclave证明文档结构,我们遵循CDDL规范(RFC 8610)描述如下:
AttestationDocument = { module_id: text, ; 安全模块编号 timestamp: uint .size 8, ; 时间戳 digest: digest, ; 摘要算法 pcrs: { + index => pcr }, ; PCR列表 certificate: cert, ; Enclave证明文档的签名证书 cabundle: [* cert], ; QingTianPKI证书链 ? user_data: user_data, ; 可选,应用相关的数据 ? nonce: user_data, ; 可选,不重复使用的数值 ? pubkey: user_data, ; 可选,应用程序相关的公钥 } cert = bytes .size (1..4096) ; DER编码证书 user_data = bytes .size (0..4096) pcr = bytes .size (48) ; PCR内容 index = 0..31 digest = "SHA384"
证明文档中的可选参数(pubkey,user_data和nonce)可以支持QingTian Enclave与外部实体之间运行自定义(或自协商)的应用级安全协议。比如,QingTian Enclave应用可以创建一个非对称密钥对(PriKey, PubKey),并通过QingTian Enclave证明文档来提供对PubKey的可信证明,那么外部实体就可以基于该PubKey证明来运行一些自定义的可信密钥分发、可信密钥协商等应用级安全协议。