如何使用 Chrome 的 CRL 集(或某些主 CRL 列表)作为 CRL 文件?

tes*_*est 12 google-chrome openssl curl crl

我正在寻找主 CRL 列表。我发现的最接近的是 Chromium 项目的CRLSet。我使用crlset-tools来获取 crlset ( crlset fetch > crl-set) 然后转储序列号 ( crlset dump crl-set) 所以我看到了这样的东西:

f24196ae94078667348f02e8e37458a3a6e6aad1e0b0dc610118cce721427bfc
  03fb3b4d35074e
  03fbf94a0e6c39
  04097214d6c97c
  0442c6b3face55
  ....
Run Code Online (Sandbox Code Playgroud)

我希望能够将包含所有坏序列的主列表的 CRL 文件传递​​给 openssl 或 curl(使用 openssl)。例如,不仅仅是传入 verisign 的 crl,我希望传入所有内容。我认为我可以使用 crlset 来做到这一点,但我认为格式不兼容。我试过了,openssl crl -inform DER -text -in crl-set但它说:

unable to load CRL
5532:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:
1319:
5532:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:ta
sn_dec.c:381:Type=X509_CRL
Run Code Online (Sandbox Code Playgroud)

如果有人对如何做我所说的有任何想法或任何有创意的方法来做到这一点,请告诉我。谢谢

Cas*_*lia 1

这可能是不可能的,至少以您想要的形式是不可能的。

考虑到在 Chrome 的 CRL 集中,(可能)存在来自多个CA 的多个已吊销证书。包含来自多个CA 的证书的单个 CRL 文件称为“间接 CRL”。间接 CRL 的支持很差;请参阅此处此处;OpenSSL 可能无法做到这一点。

此外,正如 @bentek 提到的,CRLsets 格式似乎不兼容。具体来说,CRLsets 格式不包含所有必需的 CRL 字段;请参阅RFC 5280,第 5.1 节。CRLsets 包含(根据其文档)颁发证书的主题公钥信息的 SHA-256 哈希值,以及从该颁发证书撤销的证书的证书序列号。遗憾的是,如果我们愿意的话,没有足够的信息来重建直接的CRL(即每个 CA 一个 CRL 文件)。恕我直言,最大的缺失/遗漏是被撤销证书的颁发者的名称(DN)。CRLsets 为我们提供了一个“指纹”(SHA-256 SPKI 哈希值),但考虑到互联网的范围,将该指纹映射到相关证书的 DN 并不是一件容易的事。