如果您有如下代码: OCSP 是否用于“在线”吊销检查?
X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
ch.Build (certificate);
API文档没有明确说明这一点,说:
“使用在线证书吊销列表 (CRL) 进行吊销检查。”
但没有提供有关如何进行检查的任何细节
这些X509Chain.Buld
方法检查属性szOID_AUTHORITY_INFO_ACCESS
是否有值 - 我知道这是存储 OCSP URL 的地方,所以这再次表明正在使用 OCSP
Build 然后调用 BuildChain 并调用 CertGeCertificateChain,传递一个撤销标志 unsigned int。
GetCertificateChain 的文档给出了可以传入的可能标志,包括 CERT_CHAIN_REVOCATION_CHECK_OCSP_CERT:
“此标志在链构建期间内部用于在线证书状态协议 (OCSP) 签名者证书,以防止循环撤销检查。在链构建期间,如果 OCSP 响应由独立的 OCSP 签名者签名,那么,除了原始链构建,为 OCSP 签名者证书本身构建了第二个链。在此第二个链构建期间使用此标志来禁止递归独立 OCSP 签名者证书。如果签名者证书包含 szOID_PKIX_OCSP_NOCHECK 扩展,则跳过叶签名者的吊销检查证书。允许 OCSP 和 CRL 检查。
由于存在一个“禁止”OCSP 检查的标志,我认为它确实会发生 - 但再次明确确认这一点会很好