如何从ESSCertId certHash转换为x509SKI?

时间:2018-08-16 01:20:37

标签: cryptography

在RFC 3161时间戳令牌中,如何将ESSCertID的certHash转换为x509SKI?

例如,在this timestamp token中,certHash被十六进制编码为

5A25B4B5D82C19118C496917A4EA53309A859DDB
转换为base-64的

WiW0tdgsGRGMSWkXpOpTMJqFnds=

但是我从EU Trusted List知道x509SKI应该是

t0SsyqkWH9a3+KEASdguv/5fY8g=

1 个答案:

答案 0 :(得分:1)

ESSCertID结构包含整个证书的SHA-1哈希。

主题密钥标识符是以下任意一项:

  1. 公钥的SHA-1哈希,作为SubjectPublicKeyInfo编码的内容字节。
  2. ski = option_1 [13..20]; ski [0] = 0x40 | (ski [0]和0x0F)
  3. 公钥的SHA-1哈希,作为完全编码的SubjectPublicKeyInfo
  4. CA做出的其他决定。

因此,从一个步骤到另一个步骤实际上并没有可计算的步骤。尤其是因为(4)。

证书透明性日志确实有帮助,因为您可以根据许多条件在它们中搜索证书。 https://crt.sh/?q=5A25B4B5D82C19118C496917A4EA53309A859DDB(从ESSCertID中搜索SHA-1值)找到了证书,其主题密钥标识符为B7:44:AC:CA:A9:16:1F:D6:B7:F8:A1:00:49:D8:2E:BF:FE:5F:63:C8,它是base64字符串的十六进制版本。