为什么 Facebook 提供多个 SSL 证书?

信息安全 tls 网页浏览器 证书颁发机构
2021-09-06 12:29:49

Facebook 似乎交替提供两种 SSL 证书,一种来自 DigiCert,另一种来自 VeriSign。我能想到的原因只有两个:

  1. 他们正在进行证书更改,尚未传播到所有负载平衡服务器。这似乎不太可能,因为它已经持续了一段时间,距离第一个证书到期还有将近一年的时间。
  2. 我是中间人。也似乎不太可能。

除了让偏执的人更加偏执之外,为什么 Facebook 会这样做?我还记得半年前左右 Google 提供了许多不同的 SSL 证书。

编辑澄清我的担忧:Facebook 显然希望其用户接受它提供的任何不同的证书,而不是。如果攻击者要从一个服务器场中提取证书,他们可以使用它来 MITM 那个或任何其他服务器场上的用户,因为预计用户不会关心证书更改。防止这种情况的传统方法是让用户对莫名其妙的证书更改保持警惕。

通常,用户只需要知道当前证书是否即将到期。在这种情况下,她需要维护一份当前使用的证书列表,还需要知道 Facebook 是否刚刚在某个地方建立了一个新的服务器场。用户有什么方法可以验证他们对新证书的担忧吗?我只能看到这会降低网站的安全性。

作为参考,密钥的 SHA1 指纹是D3:81:DE:E3:2C:9C:C9:F7:B6:6F:EE:41:1E:64:27:80:21:76:D0:BC63:08:84:E2:79:CB:11:07:F1:FB:8A:6B:11:A6:4D:1B:14:76:3F:8E

4个回答

选项 3 是他们不想将所有 CA 鸡蛋放在同一个篮子中。我知道各种 Apple.com 证书——显然都是合法的——是由不同的 CA 颁发的,所以这些公司可能不想依赖单一的供应商。

为什么不?想象一下,一个 CA 遭到破坏,或倒闭,或未能通过某些审核,以至于一个或多个浏览器供应商决定停止信任其证书。如果他们是您唯一的 SSL 证书提供者,那么问题就来了:在您找到新的提供者、与他们建立关系、颁发新证书、撤销旧证书并部署新证书之前,您无法提供良好的 SSL 体验那些。如果您有多个 CA,您只需将其他现有证书之一部署到当前正在使用错误证书的位置,撤销错误证书,您就可以开始了。

顺便说一句,您对选项 2 的描述表达了 SSL 的一个关键问题:您看到的几乎所有警告都是误报,因此即使人们怀疑证书(几乎从来没有),他们也倾向于认为问题绝不是真正的攻击。浏览器经常喊狼来了。

也许您最终会进入不同的网络农场。像 facebook 这样大的网站不会有一个卸载 SSL 的点,因此他们可以在所有 SSL 端点中安装相同的证书和私钥,或者使用不同的证书。只要它们在您的浏览器中由 CA 签名,您通常不会注意到差异。

使用不同的证书颁发机构可能是一种冗余形式。在不了解 Facebook 的详细信息的情况下,让不同的集群尽可能相互独立似乎是有意义的。

如果出现泄露私钥或导致创建欺诈证书的安全漏洞,他们可以依赖不使用这些私钥或受影响 CA 的其他集群。

如果您考虑由于粗心甚至内部攻击者从内部引起的安全漏洞,这似乎更有意义。在这种情况下,个人可能造成的损害是有限的。它仍然非常大,但是在修复之前保留一半的服务器总比完全离线要好。

他们现在这样做是为了以后不会破坏。如果他们现在总是使用相同的证书,人们可能会认为未来一定是这样。然后,如果他们需要轮换或更改证书,人们就会被这种更改打乱。通过确保他们的证书现在不是一成不变的,他们清楚地表明,看到他们的证书与您以前不同的证书是正常的,从而保留了他们将来更改证书的能力。