云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名注册_明朝那些事百度云_代金券

小七 141 0

高可靠性OCSP装订及其重要性

在Cloudflare,我们的重点是使互联网更快、更安全。今天,我们宣布对HTTPS服务的新增强:高可靠性OCSP装订。这个特性是在web上启用一个重要的安全特性的一个步骤:证书撤销检查。在某些情况下,可靠的OCSP装订还可将连接时间提高30%。在这篇文章中,我们将探讨HTTPS中证书吊销检查的重要性、使其可靠所涉及的挑战,以及我们如何构建一个健壮的OCSP装订服务。为什么撤销很难数字证书是网络信任的基石。数字证书就像网站的身份证。它包含身份信息,包括网站的主机名以及加密公钥。在公钥密码术中,每个公钥都有一个关联的私钥。此私钥由站点所有者保密。要使浏览器信任HTTPS站点,站点服务器必须提供对站点主机名有效的证书和证书私钥的控制证明。如果有人可以访问证书的私钥,他们可以模拟站点。私钥泄露是网络信任的严重风险。证书撤销是一种降低密钥泄露风险的方法。网站所有者可以通过通知证书颁发者该证书不再受信任来撤销该证书。例如,早在2014年,Cloudflare在发现心血漏洞可用于窃取私钥后,撤销了所有托管证书。还有其他理由可以撤销,但关键妥协是最常见的。证书吊销有一段不稳定的历史。现在实现的大多数撤销检查机制都不能保护站点所有者不受密钥泄露的影响。如果您知道撤销检查被破坏的原因,可以跳到下面的OCSP装订部分。撤销检查:失败的历史web浏览器可以通过多种方法检查站点的证书是否被吊销。最著名的机制是证书撤销列表(CRL)和在线证书状态协议(OCSP)。CRL是CA吊销的证书序列号的签名列表。OCSP是一种协议,可用于查询CA有关给定证书的吊销状态。OCSP响应包含未吊销证书的签名断言。支持OCSP的证书包含响应程序的URL,支持CRL的证书包含可以获取CRL的URL。当将证书作为HTTPS连接的一部分提供给浏览器时,它可以使用嵌入的URL下载CRL或OCSP响应,并在呈现网页之前检查证书是否已被吊销。问题就变成了:如果请求CRL或OCSP响应失败,浏览器应该怎么做?事实证明,这两个问题的答案都是有问题的。硬失败是行不通的当浏览器遇到网页并且在获取吊销信息时出现问题,安全的选择是阻止该网页并显示安全警告。这就是所谓的硬失败策略。从安全角度来看,这种策略是保守的,但容易出现误报。例如,如果无法获得有效证书的不可撤销证明,硬失败策略将显示安全警告。在不存在安全问题的情况下显示安全警告是危险的,因为它会导致警告疲劳,并教会用户单击安全警告,这是个坏主意。在现实世界中,误报是不可避免的。OCSP和CRL端点可能会出现服务中断和网络错误。还有一些常见的情况,即浏览器完全无法访问这些端点,例如当浏览器位于捕获门户之后时。对于酒店和飞机中使用的一些接入点,未加密的流量(如OCSP端点)被阻止。硬失败策略迫使那些阻止OCSP请求的封闭门户和其他网络的用户点击不必要的安全警告。这一现实令浏览器厂商感到不快。硬失败策略的另一个缺点是,它增加了证书颁发机构保持OCSP和CRL端点可用和在线的负担。损坏的OCSP或CRL服务器成为证书颁发机构颁发的所有证书的中心故障点。如果浏览器遵循硬故障策略,OCSP中断将是Internet中断。证书颁发机构是为提供信任和责任而优化的组织,而不一定是具有弹性的基础设施。在一个硬失败的世界中,网络作为一个整体的可用性将受到CAs保持其OCSP服务始终在线的能力的限制;这是对整个互联网的一个危险的系统性风险。软失败:也好不到哪里去为了避免硬失败策略的缺点,大多数浏览器采用另一种方法来检查证书撤销。看到新证书后,浏览器将尝试从证书中嵌入的CRL或OCSP端点获取吊销信息。如果吊销信息是可用的,它们依赖它,否则它们假定证书没有被吊销,并且显示页面没有任何错误。这被称为"软失败"策略。软故障策略存在严重的安全缺陷。具有网络位置的攻击者可以阻止OCSP请求。如果此攻击者还拥有已吊销证书的私钥,则他们可以截获站点的传出连接,并将吊销的证书呈现给浏览器。由于浏览器不知道证书已被吊销,并且遵循软失败策略,页面将在不通知用户的情况下加载。正如亚当·兰利所描述的:"软故障撤销检查就像是一个安全带,当你撞车的时候会断开。尽管99%的时间都能用,但它毫无价值,因为它只在你不需要的时候才起作用。"软故障策略也会使连接变慢。如果证书的吊销信息尚未缓存,浏览器将阻止页面的呈现,直到检索到吊销信息或超时为止。这一额外的步骤会导致明显的不受欢迎的延迟,安全性也会微乎其微。这种折衷对于痴迷于性能的web来说是一个艰难的销售过程。由于这种有限的好处,一些浏览器已经消除了对至少部分证书子集的实时吊销检查。实时OCSP检查还有一个缺点:它泄露了隐私浏览信息。OCSP请求通过未加密的HTTP发送,并绑定到特定证书。发送OCSP请求将告诉证书颁发机构您正在访问哪些网站。此外,在您的浏览器和OCSP服务器之间的网络路径上的每个人都会知道您正在浏览哪些站点。替代吊销检查有些客户机仍然执行软故障OCSP检查,但由于上述性能和隐私方面的缺点,这种检查变得不那么常见了。为了保护高价值的证书,一些浏览器已经探索了撤销检查的替代机制。一种技术是预打包已吊销证书的列表,并通过浏览器更新分发它们。由于所有已吊销证书的列表非常大,因此只有少数具有高影响力的证书包含在该列表中。这种技术被Firefox称为OneCRL,Chrome称之为CRLSets。这对于一些高调的解禁是有效的,但决不是一个完整的解决方案。这种技术不仅没有覆盖所有证书,而且在证书被吊销和证书列表到达浏览器之间留下了一个漏洞窗口。OCSP装订OCSP装订是一种将吊销信息获取到浏览器的技术,它修复了与实时OCSP获取相关的一些性能和隐私问题。在OCSP装订中,服务器将包含(或"装订")到初始HTTPS连接中的证书的当前OCSP响应。这样就不需要浏览器自己请求OCSP响应。现代浏览器广泛支持OCSP装订。并不是所有的服务器都支持OCSP装订,所以浏览器仍然会采取软故障的方法在OCSP响应未装订时警告用户。一些浏览器(比如现在的Safari、Edge和Firefox)会检查证书的吊销,因此OCSP装订可以提供高达30%的性能提升。对于像Chrome这样不检查所有证书的吊销的浏览器,OCSP装订提供了一个不可撤销的证明,否则它们就不会有。高可靠性OCSP装订Cloudflare于2012年开始提供OCSP装订。Cloudflare最初的实现依赖于nginx的代码,这些代码能够为一些(但不是所有)连接提供OCSP绑定。随着Cloudflare网络的增长,该实现无法扩展,导致OCSP响应固定的连接百分比下降。我们选择的架构对我们很好,但我们绝对可以做得更好。去年,我们重新设计了OCSP装订基础设施,使其更加健壮可靠。我们很高兴地宣布,我们现在为Cloudflare提供可靠的OCSP绑定连接。只要证书颁发机构为证书设置了OCSP,Cloudflare将提供一个有效的OCSP订书响应。现在,所有Cloudflare客户都可以从更加可靠的OCSP绑定中获益。OCSP装订过去在Cloudflare最初的OCSP装订实现中,OCSP响应是随机获取的。给定一个需要证书的连接,Cloudflare将检查是否有对stamp的新OCSP响应。如果有的话,它会包括在连接中。如果没有,则不会向客户端发送OCSP响应,Cloudflare将发送请求以刷新缓存中的OCSP响应,以准备下一个请求。如果没有缓存新的OCSP响应,则连接将不会获得OCSP钉。同一证书的下一个连接将获得OCSP stap