Facebook 似乎交替提供两种 SSL 证书,一种来自 DigiCert,另一种来自 VeriSign。我能想到的原因只有两个:
- 他们正在进行证书更改,尚未传播到所有负载平衡服务器。这似乎不太可能,因为它已经持续了一段时间,距离第一个证书到期还有将近一年的时间。
- 我是中间人。也似乎不太可能。
除了让偏执的人更加偏执之外,为什么 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:BC
和63:08:84:E2:79:CB:11:07:F1:FB:8A:6B:11:A6:4D:1B:14:76:3F:8E
。