为什么浏览器默认不需要 OCSP?

信息安全 密码学 证书 网页浏览器 公钥基础设施 证书吊销
2021-08-24 07:22:25

根据以下截图,从 firefox-3.6.17-1.fc14.i686 截取,Firefox 在无法连接到 OCSP 服务器时有一个失败关闭的选项。

http://i.stack.imgur.com/Ekkge.png

有人可以解释为什么默认情况下不启用此功能吗?

4个回答

OCSP 有几个问题。他们中有一些:

  1. 它给 OCSP 响应者带来了太大的压力(小问题)
  2. 它会使您的浏览器响应速度变慢,因为它必须在访问该站点之前询问 CA。
  3. 隐私原因:CA 获取您要求的所有证书的序列号请求,因此它可以查明您访问的站点。谁说它不会出售这些数据,你相信吗?当然,您应该信任您的 CA,但是...
  4. 有一些针对它的中间人攻击(论文
  5. 此外,当前的实现有些薄弱。如果 OCSP 验证尝试失败(例如,因为服务器没有响应),浏览器有两种选择:仍然继续或严重失败并停止与站点的连接。这两种选择都是不好的:如果浏览器忽略失败,如果攻击者有权访问可能无效的证书,则可能的攻击者可以攻击服务器。如果浏览器停止连接,那么网络中的攻击者可以进行简单但有效的拒绝服务攻击,只需以某种方式阻止所有 OCSP 请求。

一些 CA 不提供 OCSP 服务器,而是依赖 CRL(值得注意的是,支持客户端 nonce 的完整 OCSP 对 CA 来说相当昂贵)。在那些实施 OCSP 的人中,许多人把工作搞砸了,导致 OCSP 响应本身是不可验证的(例如,OCSP 响应是使用无法获得撤销状态的专用 OCSP 响应者证书签名的)。因此,强制 OCSP 检查意味着,现在,拒绝与不可忽略的现有 SSL 网站进行对话。世界只是“没有准备好”广泛接受 OCSP。

最大的 - IMO - 是速度。我已经使用了几个不同的插件和配置来在浏览器中启用 OCSP,即使在 OCSP 服务器没有负担并且在高带宽环境中一跳的实验室环境中,OCSP 检查也可能会严重延迟会话建立。我什至收到了很多用户投诉,即使用户是其他工程师,他们完全了解正在发生的事情。

在像 Firefox 这样的公共浏览器中,他们不希望您的开箱即用设置让您的浏览器在您进行在线购物时看起来非常缓慢。

此外 - OCSP 检查中有一定数量的配置 - 您是否有本地 OCSP 服务器优先于证书中的配置?证书究竟是如何配置的 - 没有一种完美的方法可以为 OCSP 检查设置 URL。您的浏览器是否需要签署 OCSP 请求?它需要一个随机数吗?对于一个安全的系统,它不是 1 个 OCSP 检查,而是对链中除自签名根以外的每个证书的检查。

浏览器会重试多少次没有响应的请求?它将等待多长时间来决定它没有得到回应?

这些不是普通用户可以回答的问题,浏览器绝对是为最低公分母而构建的。

我不同意某些立场,因为这对 CA 来说负担过重。通常 OCSP 服务器与 CA 是分开的。CA 签署 CRL 并将此 CRL 传递给 OCSP 响应者。可以暂存一套负载平衡的 OCSP 响应程序来处理流量。OCSP 本身并不是一个沉重的负担。这是一个非常小的交易,其中包含相当简单的数据。性能通常与 CRL 的大小和任何连接建立/拆除影响有关。如果有推动力,这种服务是绝对可行的。更大的问题是服务本身仍然足够复杂,不容易配置或通用。这并不是普通最终用户对延迟 SSL 会话感到满意的事情。

因为 OCSP 给 CA 带来了太大的压力。假设您是受信任的 CA。现在想象一下您必须建立的基础设施,以每秒处理数百万对您的服务器的 OCSP 请求。好工作?