页面加载优化:OCSP装订

介绍

当用户访问您的HTTPS网站时,它必须以正常运行的方式进行响应 公钥,以及将密钥与您作为个人,公司或组织的身份相关联的有效SSL证书。 始终会向证书颁发预定义的到期日期,该日期已包含在已签名的证书本身中,浏览器始终会检查到期日期,并将拒绝任何过期的证书。

但是,在某些情况下,必须将证书标记为无效(并且必须信任这些证书 撤销) before 它过期了。 常见的例子包括服务器拥有者有证据(或只是怀疑)其私钥已被盗用(即,它已丢失,被盗或被破坏),因为持有此私钥的第三方实际上可以绕过所有浏览器网络安全控制。

结果,浏览器供应商需要 公众信任 证书颁发机构 (认证机构)实施至少一种方法来吊销有问题的证书并通知浏览器拒绝这些吊销的证书。

有关证书吊销导致的浏览器错误消息的示例,请参阅 本指南。 您可以在以下位置查看证书的撤销状态 证书.revocationcheck.com.

吊销检查(问题)的简要历史

在SSL的早期,CA使用的方法是在称为的公共可访问文档中发布其证书吊销状态。 证书吊销列表 (CRL)。 CRL只是CA到期前已吊销的所有证书的列表。 CA定期发布其CRL的最新版本,要求浏览器与之联系。 before 每个HTTPS连接。

自然,就像HTTPS(和SSL /TLS)的采用在过去几年中有所增加,已发布的CRL的大小也有所增加。 在每次连接之前必须下载并解析大型CRL的要求带来了不断增加的网络开销。 很快就很明显,CRL方法无法很好地扩展。

为了缓解这些扩展问题,浏览器和CA设计并实施了 在线证书状态协议 (OCSP)。 公众信任的CA,例如 SSL.com,现在维护称为的简单HTTP服务器 OCSP响应者。 浏览器现在可以与响应者联系,以请求CA颁发的单个证书的吊销状态,而不必获取和处理整个CRL。

OCSP响应者使用CA的专用签名密钥对响应进行签名,浏览器可以验证其接收的撤销状态确实是由实际的CA生成的。

不幸的是,尽管起初OCSP似乎是一种有效的解决方案,但新协议已被证明具有一些实用的性能,安全性和隐私问题。

性能问题

与浏览器遇到的每个证书联系响应者,意味着浏览器需要为每个新的HTTPS连接执行附加的HTTP请求。 用户可以感觉到这种网络开销,特别是在包含存储在远程内容分发服务器(每个服务器可能都具有一个或多个证书)的第三方内容的页面中。

响应 是良好的用户界面设计的基本原则。 长时间的延迟可能是导致用户感到沮丧的主要原因,并且可能导致用户认为您的网站无法正常工作或他们的输入手势已被忽略。

而且,很多 研究 过去将快速的页面加载速度和响应能力与改善的SEO和增加的转换率联系在一起。 实际上,亚马逊计算得出,仅延迟一秒钟就会使他们付出大约 $1.6 十亿 每年。

(有关页面加载速度如何影响您的网站和建议的优化的更多详细信息,请查看我们的 刊文 描述从网站中删除混合内容将如何改善其性能。)

安全问题

OCSP还存在一些重要的安全问题。 大多数实际的OCSP实施不够可靠(由于网络滞后,配置或应用程序错误)的事实促使浏览器和其他客户端软件实施OCSP检查。 软失败 模式。

这意味着,如果在响应时无法访问OCSP服务器或服务器超时,浏览器将 认为证书有效 并继续进行HTTPS连接。

其背后的原因是,由于OCSP服务器可以为数百万个网站提供服务,并且OCSP服务器随时可能发生故障,因此在每次OCSP故障时断开连接都会破坏数百万用户的浏览体验。 即使OCSP服务器正在运行,但是回复时间很长,这也会增加延迟和用户的沮丧感。

中间人(MITM) 已知攻击者通过阻止来利用此行为 所有 与OCSP响应者的连接,这实际上意味着它们可以对恶意站点使用被盗的证书和密钥对,而与证书的吊销状态无关。

隐私问题

最后,由于证书与密钥和域名相关联,并且浏览器在每个新的HTTPS连接之前请求吊销状态,这意味着浏览器会将其用户的网络历史的很大一部分泄漏给OCSP响应者。

当然,公众信任的CA并不是希望损害用户隐私的恶意组织。 (著名的CA一直在积极尝试 保护 他们的用户的安全和隐私。)但是,如果CA的OCSP响应程序受到威胁,则与该不可信服务器交换的数据可能导致敏感信息和私人信息的泄露。

OCSP抢救

为了缓解这些问题,浏览器和CA提出了一种确定证书状态的新方法,称为 OCSP装订。 OCSP装订允许Web服务器(而不是浏览器)获得对其证书的已签名OCSP响应,该响应最多可缓存7天。

服务器包括(或 钉书针)在SSLS证书本身的HTTPS响应中缓存的OCSP响应。 这样,浏览器可以在建立安全连接之前验证OCSP响应上的CA签名,并确保证书未被吊销,而不必自己对OCSP服务器执行昂贵的附加请求。

OCSP装订是解决上述问题的一种简单但非常有效的解决方案。 服务器可以在自己的时间内检索缓存的OCSP响应,这消除了CRL和OCSP带来的性能开销以及随之而来的隐私问题。

但是,OCSP装订本身不能完全解决OCSP的软故障安全问题。 由于装订是在服务器中实现的,因此浏览器无法知道服务器是否真正支持装订。

结果,具有被盗(但被吊销)证书的MITM攻击者可以通过提供证书而无需OCSP装订来执行降级攻击。 受害者的浏览器无法证实服务器是否真正支持装订,并无法像通常那样继续查询OCSP响应程序。

然后,MITM攻击者可以简单地阻止此OCSP查询,并有效地迫使浏览器接受证书有效。

OCSP必须装订

这种攻击促使CA和浏览器供应商引入SSL证书的扩展,该扩展在 RFC 7633,俗称 OCSP 必须装订 (尽管RFC本身没有提及此名称,这可能会引起一些混淆。)这只是要求对证书进行OCSP装订。 如果浏览器遇到带有此扩展名的证书而未使用OCSP装订,则将被拒绝。 OCSP Must-Staple可以缓解上述降级攻击,还可以减少流向CA的OCSP响应程序的不必要的流量,这也可以帮助提高OCSP的整体性能。

如果您有兴趣在证书中启用OCSP Must-Staple扩展,请通过以下方式联系我们的支持代理之一: support@ssl.com 以获得更多细节。

在服务器中启用OCSP装订

为了节省您查找的麻烦,以下各节包含有关如何在您的计算机中启用OCSP装订的说明 阿帕奇Nginx的 环境:

阿帕奇

在您的计算机中启用OCSP装订 阿帕奇 服务器,请在服务器的配置文件中添加以下行。

#OCSP装订,仅在httpd 2.3.3和更高版本中,在SSLStaplingResponderTimeout上使用SSLUseStapling 5 SSLStaplingReturnResponderErrors SSLStaplingCache shmcb:/ var / run / ocsp(128000)关闭

Nginx的

在您的计算机中启用OCSP装订 Nginx的 服务器,请在服务器的配置文件中添加以下文本。

#OCSP装订---#从ssl_certificate中的URL获取OCSP记录,并在ssl_stapling上缓存它们; ssl_stapling_verify on;

结论

Web是相互依存的组件的复杂网络,所有这些组件(通常)协调工作以提供无缝的浏览体验。 但是,该系统的复杂性不断增加,导致攻击面不断扩大,并允许设计和执行新的网络攻击。

大量的组件自然会增加延迟并导致延迟,这意味着企业需要找到在不影响用户体验的情况下提高安全性的方法。 启用OCSP装订将为您提供提高安全性的难得机会 网站的性能。

与往常一样,我们很乐意回答您有关OCSP装订或其他问题的问题-只需给我们发送电子邮件至 support@ssl.com.

订阅SSL.com的新闻通讯

不要错过SSL.com上的新文章和更新

保持信息灵通和安全

SSL.com 是网络安全领域的全球领导者, PKI 和数字证书。注册以接收最新的行业新闻、提示和产品公告 SSL.com.

我们希望收到您的反馈

参加我们的调查,让我们知道您对最近购买的想法。