假设 PKI 层次结构如下所示。
root CA ==> inter-1 CA ==> user-1
\
\======> inter-2 CA ==> user-2
我的问题是:根 CA 是否还需要定期从其子项:inter-1 和 inter-2 下载 CRL?
由于 user-1 和 user-2 可以相互验证,如果 user-2 的证书被 inter-2 撤销,inter-2 应该让 root 知道,然后传播到 inter-1 和 user-1,对吗?
如果是这样,那就显得相当复杂了。是否有任何工具可用于管理撤销逻辑?多谢。
不,证书吊销不会在 CA 树中传播。每个 CA(在您的情况下为根 CA 和中间 CA)负责发布包含以下列表的 CRL:仅此 CA 颁发的已吊销证书.
一个例子:
根CA 为根CA 颁发的证书发布CRL:inter-1 CA 和inter-2 CA。根 CA 不知道 user-1 和 user-2 证书或其吊销状态。
inter-1 CA (resp inter-2 CA) 发布一个 CRL,其中包含由 inter-1 CA (resp inter-2 CA) 颁发的已吊销证书列表,并且仅包含这些证书。
CRL Root CA CRL inter-1 CA
^ ^
| |
root CA ==> inter-1 CA ==> user-1
|
| CRL inter-2 CA
| ^
\ |
\======> inter-2 CA ==> user-2
如果user-1证书被撤销,该证书(实际上是它的序列号)将只出现在inter-1 CA发布的CRL中。
当有人想要检查 user-1 证书的有效性时,过程如下:
- 在证书和可信CA之间构建证书链:user-1 / inter-1 CA / root CA
- 获取列表中第一个证书的 CRL
- 验证 CRL 的签名
- 根据此 CRL 检查列表中第一个证书的状态
- 如果状态未撤销,则将该证书从列表中删除并执行2,否则失败
- 如果列表仅包含受信任的 CA,请检查证书的签名链(证书必须由列表中的以下证书签名)
- 如果所有签名均已检查且有效,则 user-1 证书有效。
请注意,验证 CRL 签名可以触发另一个证书链的验证:即该算法可以是递归的。实际上,X.509 证书验证算法(非常)复杂,我只是在这里总结一下原理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)