在线证书状态协议 ( OCSP ) 和OCSP 装订之间的确切区别是什么,这似乎是“......在线证书状态协议 (OCSP) 的替代方法”?
常规 OCSP 和 OCSP 装订之间的确切区别是什么?
OCSP 装订比常规 OCSP 更有效,并提供更好的隐私。
OCSP 协议用于确定证书是否仍然有效或已被撤销。假设您想通过 TLS 安全地连接到网站。为了确定证书没有被吊销或过期,您的浏览器可以向相应的证书颁发机构发出 OCSP 请求。在收到证书有效性的签名确认后,您将继续进行 TLS 握手。
这个过程有一些缺点:联系 CA 会花费时间并减慢您的浏览体验。它还可能为 CA 创造高流量,向 CA 披露您正在访问的网站,并且您始终必须依赖 OCSP 响应者的可用性,否则无法确认 - 您必须在接受尽管缺乏确认或中止连接的证书。由于这些原因,Google Chrome已放弃对常规 OCSP 的支持。
OCSP 装订通过让服务器自己定期发出 OCSP 查询来避免这些问题。Web 服务器不会让用户执行有效性检查,而是在 TLS 握手期间向您呈现 OCSP 响应。服务器执行 OCSP 查询本身不是安全问题,因为响应已由 CA 签名并包含时间戳,从而防止篡改。由于服务器缓存了响应,CA 不再被 OCSP 请求淹没,作为用户,您无需联系第三方来验证证书,这有利于您的隐私。
要添加到@Arminius 的答案的一些东西:
- 客户端发起的 OCSP 请求和 OCSP 装订仍然共享一个问题 - 无响应的 OCSP 响应者。无论是客户端,还是被认证的服务器,获取 OCSP 响应,响应者都是一样的。如果响应者宕机,整个安全保障就会崩溃。
没有有效的 OCSP 响应有两种处理方式:
硬失败 - 浏览器可以在页面上显示警告,说明连接可能受到破坏,并要求用户单击警告才能浏览有问题的服务器。
软失败 - 浏览器尝试获取有效的 OCSP 响应(在 OCSP 主食的情况下从响应者或服务器发送的证书),但在失败的情况下继续连接并忽略没有有效的 OCSP 响应。
为了保持可用性,浏览器通常更喜欢第二种方法。
很难说一种方式比另一种方式更安全。OCSP 订书钉确实减少了响应者的负载,从而降低了它被真正请求 DOS-d 的机会。服务器端的缓存响应加快了速度,并减少了浏览器的负载以完成 OCSP 繁重的工作。也就是说,攻击者仍可能对 OCSP 响应者进行 DDOS 攻击,甚至阻止真正的服务器获取有效的 OCSP 主食。
然而,OCSP 装订导致性能大幅提升,Cloudflare 的 Nick Sullivan 在他的博客中发表的这篇简短但精彩的文章对此进行了解释。如果我们可以解决无响应的 OCSP 响应者的问题,并且可以找到一种方法来确保始终呈现 ocsp 响应,则可以使用ocsp-must-staple扩展生成证书。与没有 ocsp 主食相比,这如果到位,将意味着更强大的安全保证。