执行撤销检查是为了验证数字证书的有效性。这些检查在连接到安全网站、验证数字签名或启动已签名的可执行文件时进行。如果证书的私钥被泄露,证书可能会被吊销。这种情况可能会导致冒充实体或传播恶意代码。
为了更好地理解数字证书和吊销检查,我们可以将其与餐馆的健康和安全证书进行比较。拥有证书的餐厅意味着该餐厅经过了审查,并被认定为信誉良好。与 TLS 证书一样,健康与安全证书也有有效期。假设健康与安全证书的有效期为一年,那么如果在证书有效期的 6 个月后发生了违规事件怎么办?开始和结束日期仍然意味着餐厅处于良好状态。这就是撤销检查的作用所在。
当你通过浏览器连接到一个网站时,网络服务器将发回其 TLS 证书。在连接完成之前,会进行一系列验证检查,包括撤销检查。执行撤销检查有几种不同的方法,使用哪种方法取决于浏览器、系统和/或服务器设置。这种制衡机制的存在是为了管理用户风险,保护数字交易、通信和资产。
证书吊销列表 (CRLs)
证书吊销列表 (CRLs) 实质上是列出吊销证书序列号的文本文件。如果客户端连接到 www.example.com,且浏览器被配置为检查 CRL,它将从 TLS 证书中的 CRL Distribution Point(证书吊销列表分发点)字段获取证书吊销列表的 URL。这样,浏览器就会下载整个吊销列表,并在其中搜索相关证书的序列号。如果序列号在列表中,证书就会被吊销。每次有新访客连接到网站时,都会执行这一过程。
在餐馆的例子中,这就好比去一家餐馆看墙上的证书,记下证书上的序列号和进行认证的办公室的位置。要想知道这家餐馆是否仍处于良好状态,你一行人中会有人被派往健康与安全委员会办公室,他将提供一份代表评分较差餐馆的序列号清单。如果它在本子上,您就不应该在那里用餐。
不过,这份清单不能共享,每位顾客都必须重复这一过程,检索自己的副本,并亲自进行搜索。唯一可以加快这一过程的是,如果您决定第二天在那里用餐,并且因为前一天刚查过,所以假定他们仍然信誉良好。
实际上,操作系统和浏览器缓存证书吊销的时间平均约为 7 天。当你访问一个引用相同证书废止列表的网站时,它可以在本地进行检查,而不是重新下载整个列表。当你访问使用不同 CRL 的网站或本地副本过期时,就会下载新的副本。
该系统不能很好地扩展,非常大的 CRL 可能会导致性能下降。
在线证书状态协议 (OCSP)
在线证书状态协议 (OCSP) 是作为证书吊销列表的替代品而开发的,尽管这两种协议至今仍在使用。与 CRL 一样,证书中也嵌入了 OCSP 应答器的地址,这次是在 Authority Information Access (AIA) 字段中。网络浏览器和操作系统可使用该地址查询 OCSP 应答器,了解证书的状态。
这解决了 CRL 的可扩展性问题,因为不需要下载整个列表。相反,可以像查询数据库一样查询服务器,以获得快速响应。
回到餐馆的例子,这就好比你去餐馆,记下墙上证书的序列号以及认证办公室的电话号码。你打电话给认证办公室,读出证书的序列号。认证办公室会告诉您该证书是否在名单上。
同样,如果你经常访问这家餐厅,你可能不会每次都检查。与 CRL 一样,浏览器和操作系统也会缓存 OCSP 响应,以便日后快速检索。本地副本的有效期也是 7 天左右。
OCSP Stapling
OCSP Stapling 以 OCSP 为基础,进一步提高了性能。如果设置了 OCSP Stapling,服务器就会定期与 OCSP 应答器联系,以获取一个经过签名并带有时间戳的响应,您可以自行托管该响应。该响应将被 “装订 ”并发送到连接的客户端。通过这种方法,客户无需向第三方服务器发送单独的请求。
以餐馆为例,这就好比餐馆每隔几天就会给认证办公室打电话,要求盖一个公章,以表明他们的信誉仍然良好。公章会注明日期,有效期只有一天左右。 游客一进入餐厅,就会看到墙上挂着证书和带有最近日期的真实印章,表明其仍处于良好状态。
制衡
归根结底,这些程序的存在是为了确保数字 信任社区,并提供证书、证书客户及其签发 CA 的可靠性。如果没有创建安全数字空间的这一关键步骤,作为数字空间“根无处不在 ”的一部分而建立的信任等级制度将毫无意义。该系统的存在是为了在数字通信中建立制衡机制,并为 CA、浏览器和组织之间提供信任基础。