TLS 握手步骤

TLS Handshake Steps

我知道 TLS 握手的基本步骤,但我不了解 TLS 期间证书的详细验证步骤。我的问题在下面;

让我们假设我们的系统支持OCSP/CRLs验证。在这种情况下,第一步是使用 CRL 还是 OCSP Responder 来验证传入的证书?或者首先查找传入证书是否在 TrustStore 中?

感谢四位的帮助

你可能找不到关于它的权威文档,部分原因是人们已经放弃了这两种撤销检查方法(它们在某些浏览器中默认被禁用,或者在启用时不会产生非常有用的结果UI)

现在人们更喜欢 OCSP 装订(出于某些原因请参阅 https://casecurity.org/2013/02/14/certificate-revocation-and-ocsp-stapling/)而不是 CRL 或 OCSP。

但是回到你的问题,因为 CRL 和 OCSP 通常都意味着要远程获取一些东西,这需要网络访问并且会造成延迟。因此,如果您有一个包含所有证书的本地 TrustStore,您应该首先检查它,然后再进行远程调用。

此外,CABForum 基线要求(在 https://cabforum.org/baseline-requirements-certificate-contents/)指定证书中可以存在 CRL 端点,但必须存在 OCSP 端点,除非您正在执行 OCSP 装订。 除此之外,EV 证书还要求 OCSP。

所以,简而言之,按以下顺序做事可能是有意义的:

  1. 签入本地 TrustStore
  2. 执行 OCSP 查询
  3. 下载 CRL

请注意,现在您还有其他选择:

  • DANE,因此检查 DNS TLSA 记录
  • 证书透明度日志
  • 一个CRL/CRL集