事实证明,证书非常重要。过期的证书可能会给您带来巨大的麻烦——新闻报道就是这么说的。但是,什么是证书?它们为什么会过期?为什么会产生如此大的影响?为了回答这些问题,让我们稍微回顾一下,看看为什么首先需要证书。
假设两个人,Alice 和 Bob,想要交换秘密信息。更进一步,假设 Bob 实际上是 Bobcorp,Alice 的银行,她希望能够以加密形式发送和接收她的银行对账单。有很多成熟的方法可以做到这一点,最简单的方法是他们同意一个共享密钥,他们将使用该密钥来加密和解密彼此的消息。他们如何就这个密钥达成一致?幸运的是,有一些巧妙的方法可以让他们在两人之间进行“握手”,即使他们以前没有交流过,最终两人都拥有密钥的副本,而其他人没有机会获得它。
问题是 Alice 不能确定她实际上是在和 Bobcorp (反之亦然) 交谈。Bobcorp 可能并不介意这一点,因为他可以要求 Alice 提供她的登录凭据,这将允许他验证她的身份。但 Alice 真的*很*在意:她当然不应该把她的登录详细信息交给某人——我们称她为“Eve”——她只是假装是 Bob。
这个问题的解决方案分为两个部分:证书和证书颁发机构 (CA)。CA 是一个众所周知且受信任的第三方,Bobcorp 已经与之建立了关系,通常是通过提供公司详细信息、网站详细信息等。Bobcorp 还创建并向 CA 发送一个特殊的密钥和关于它自身的特定信息(可能包括公司名称、地址和网站信息)。CA 在确定 Bobcorp 的真实性后,会为 Bobcorp 创建一个证书,其中包含所请求的信息;事实上,Bobcorp 发送给 CA 的一些信息通常以“自签名证书”的形式出现,因此 CA 几乎只需要提供自己的签名。
精明的读者会问自己:“这有什么帮助?Alice 仍然需要信任 CA,对吗?” 答案是她确实需要。但是,与 Bobcorp 类型的公司相比,CA 的数量通常会很少,因此 Alice 需要做的就是确保她可以信任少数几个 CA,这样她就可以开始了。在 Web 浏览场景中,Alice 通常会下载一个浏览器,该浏览器已经与主要的 CA 建立了适当的、内置的信任关系。她现在可以与许多公司进行安全的握手,并且只要她(或她的浏览器)检查他们是否提供了由她信任的 CA 签名的证书,她就是相对安全的。
但是有一个曲折。CA 颁发给 Bobcorp(和其他公司)的证书通常都有一个到期日期。这不仅仅是为了给 CA 提供经常性的收入来源——尽管我确信这是一个不错的好处——也是为了防止 Bobcorp 的情况发生变化:例如,如果它破产了,或者改变了它的业务国家?1 因此,经过一段时间(通常是一两年,但也可能更少或更多),Bobcorp 必须重新申请以获得新证书。
如果 Bobcorp 忘记了怎么办?那么,当 Alice 访问 Bobcorp 的网站并且浏览器注意到证书已过期时,它应该希望她不要继续,并且在她续订证书之前,她不应该向他们提供任何信息。这听起来很麻烦,而且确实如此:Bobcorp 及其客户将会受到严重的不便。Bobcorp 内部负责续订证书的人将会遇到麻烦。
在没有实际人员参与的情况下,情况甚至更糟。如果,我们用自动化系统 A 代替 Alice,用自动化系统 B 代替 Bob。A 仍然需要信任它正在与真正的 B 交谈——以防邪恶系统 E 假装是 B——因此仍然需要证书。在这种情况下,如果 B 的证书过期,A 应该完全有理由拒绝连接到它。没有简单的方法可以解决此类问题,或者告知可能一直在尝试与 B 系统通信的许多 A 型系统继续进行。因此,失之毫厘,差之千里。
教训是什么?避免单点故障,考虑后备模式,并准备好迅速采取行动补救意外错误。
1. 还有各种机制可以撤销或取消证书,但它们通常很复杂,在许多情况下实施不力——因此很少使用。
本文最初发表在 Alice, Eve, and Bob 网站上,经作者许可转载。
评论已关闭。