windows 用于证书吊销(OCSP 或 CRL)的算法是什么以及如何配置它们?

What is the algorithm used by windows for certificate revokation (OCSP or CRL) and how to configure them?

我正在使用 c# .Net 框架连接到 HTTPS 服务,想知道 windows 如何检查证书吊销。我用谷歌搜索了几个小时,发现 windows 同时支持 OCSP 和 CRL。但问题是到底用的是哪一个?有什么方法可以在 OS 或代码中全局配置使用的算法(不使用任何第三方库)?

感谢任何帮助。

通常取决于证书颁发者支持的机制。但是,如果您的应用程序信任任何证书,则应检查证书吊销,我建议使用 OCSP 。下面概述了 CRL 的一些缺点

  • CRL 会产生大量开销,因为客户端必须搜索吊销列表。在某些情况下,这可能长达 1000 行。
  • CRL 每 5-14 天定期更新一次。可能会在下一次 CRL 更新之前让攻击面保持打开状态。
  • 一般来说,如果客户端无法下载 CRL,则默认情况下客户端将信任该证书。大多数流行的浏览器应用程序都是如此。

默认行为是:

  • 如果在证书中配置了 OCSP,则使用 OCSP。
  • 如果 OCSP 失败,将尝试 CRL。
  • 如果 CRL 失败,则会引发 RevocationOffline 错误。应用程序决定如何对此错误做出反应。

这是一个非常非常简单的解释。为了更好地理解 Windows 中的撤销检查是如何工作的,我建议阅读这些文章: