Page 71 - Web性能权威指南
P. 71
全、证书颁发机构本身被冒名顶替,或者其他各种正常的原因,像以旧换新或所属
关系更替等。为此,证书本身会包含如何检测其是否过期的指令(图 4-7)。为确保
信任链不被破坏,通信的任何一端都可以根据嵌入的指令和签名检查链条中每个证
书的状态。
图 4-7:igvita.com 证书中的 CRL 和 OCSP 指令(谷歌 Chrome v25)
4.5.1 证书撤销名单(CRL)
CRL(Certificate Revocation List,证书撤销名单)是 RFC 5280 规定的一种检查所
有证书状态的简单机制:每个证书颁发机构维护并定期发布已撤销证书的序列号名
单。这样,任何想验证证书的人都可以下载撤销名单,检查相应证书是否榜上有名。
如果有,说明证书已经被撤销了。
CRL 文件本身可以定期发布、每次更新时发布,或通过 HTTP 或其他文件传输协议
来提供访问。这个名单同样由证书颁发机构签名,通常允许被缓存一定时间。实践
中,这种机制效果很好,但也存在一些问题:
• CRL 名单会随着要撤销的证书增多而变长,每个客户端都必须取得包含所有序列
号的完整名单;
• 没有办法立即更新刚刚被撤销的证书序列号,比如客户端先缓存了 CRL,之后某
证书被撤销,那到缓存过期之前,该证书将一直被视为有效。
传输层安全(TLS) | 53