【问题标题】:What is the algorithm used by windows for certificate revokation (OCSP or CRL) and how to configure them?Windows 用于证书吊销(OCSP 或 CRL)的算法是什么以及如何配置它们?
【发布时间】:2019-08-03 08:14:20
【问题描述】:

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

感谢任何帮助。

【问题讨论】:

    标签: c# .net security ocsp


    【解决方案1】:

    默认行为是:

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

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

    【讨论】:

    • 非常感谢@Crypt32。但是有没有办法在代码中配置它们呢?
    • 你到底想配置什么?
    • 我要配置使用的标准;例如说只使用 CRL。
    • 只有在您的应用程序执行证书验证时才能进行吊销检查设置。当您将吊销检查委托给操作系统时,您无法从代码中修改操作系统行为。
    【解决方案2】:

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

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

    【讨论】:

    • 最后一句话是完全错误的。脱机吊销错误处理是严格特定于应用程序的。离线撤销没有默认行为。
    猜你喜欢
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    相关资源
    最近更新 更多