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

文档签名验证

接下来,我们将介绍证明文档的验证过程。当您从QingTianHypervisor请求证明文档时,您将会收到一个包含已签名证明文档的二进制blob。已签名的证明文档是一个由CBOR编码,COSE签名的对象。整个验证过程包括以下几个步骤:

1. 解码CBOR对象并将其映射到COSE_Sign1结构中

2. 从COSE_Sign1结构中提取证明文档

3. 验证证书文档中CA证书链的有效性

4. 验证证明文档的数字签名的有效性

证明文档由华为云QingTianAttestation PKI签署。华为云QingTian根证书可以从https://qingtian-enclave.obs.myhuaweicloud.com/huawei_qingtian-enclaves_root-G1.zip 下载获取,该压缩文件的SHA256的摘要值为:

99e9203a64cfb0c6495afd815051e97bea8a37895dc083d715674af64adeadfe

QingTianAttestation PKI根证书的有效期为30年,根证书主体(Subject)的格式如下:

CN=huaweicloud.qingtian-enclaves, C=CN, O=Huawei Technologies, OU=Huawei Cloud

COSE与CBOR

COSE_Sign1签名结构通常被使用在为消息进行单一签名的场景,其内容和签名的相关参数都放在受保护的header中。COSE_Sign1数据结构是一个CBOR数组,该数组包括如下字段:

[
    protected header;        // 被保护的header信息 
    unprotected header;  // 不被保护的header信息 
    payload;             // 被签名的数据,attestation doc的CBOR封装数据 
    signature;           // 签名 
]

在证明文档的上下文中,该数组示例为:

18(                     // COSE_Sign1 CBOR标签 
  {1: -35},              // 算法: ECDS 384 
  {},                    // 空 
  attestation doc,       // 证明文档 
  signature,                 // 签名 
)

验证证书

验证证书链是证书有效性验证过程中不可或缺的一部分。证明文档中的CA Bundle包含了根证书和中间证书的证书列表,并按以下顺序提供:

[ ROOT_CERT - INTERM_1 - INTERM_2 ... -INTERM_N ]
     0              1            2                N

为了验证目标证书TARGET_CERT(即证明文档中的Certificate)的有效性,对于某些证书验证工具而言,您可能需要按如下顺序构造证书验证列表:

[ TARGET_CERT - INTERM_N - INTERM_N-1 ... - ROOT_CERT]

相关文档