我的结论是否正确,即希望与提供所述证书的服务器通信的客户端对证书的验证完全在本地完成?如在,客户端应该有本地可用的所有信息(例如,CA 的公钥,用于签署服务器证书)?
我认为,例外情况是将通过证书提供的 ip 地址/dns 信息与真实世界的服务器地址和域名进行比较。
另一个问题(SSL Certificate Trust Model)的答案实际上明确指出“实际上这就是证书的全部思想:允许离线验证。”。真的吗?
我的结论是否正确,即希望与提供所述证书的服务器通信的客户端对证书的验证完全在本地完成?如在,客户端应该有本地可用的所有信息(例如,CA 的公钥,用于签署服务器证书)?
我认为,例外情况是将通过证书提供的 ip 地址/dns 信息与真实世界的服务器地址和域名进行比较。
另一个问题(SSL Certificate Trust Model)的答案实际上明确指出“实际上这就是证书的全部思想:允许离线验证。”。真的吗?
这几乎是真的。:) 但不完全是。
如果出现妥协,可以撤销证书。发现证书是否在任何给定时间被吊销的唯一方法基本上是联系颁发它的 CA。任何在证书本身中签名的信息(适合离线验证)对于被撤销的证书都是有效的。
有两种用于检查撤销的协议,CRL 和 OCSP。CRL 只是 CA 发布的已撤销证书的列表,而 OCSP 是一种 Web 服务,但想法是一样的,任何进行证书验证的客户端都应该查看并检查证书是否恰好被撤销。
事实上,证书验证实现中一个相当普遍的缺陷是它们不检查吊销。
大多数验证是使用本地可用信息完成的。但在某些情况下,需要访问互联网,如果无法访问,则验证可能会失败或验证将花费很长时间(即获取在线资源的超时):