如何信任根 CA

信息安全 tls 网页浏览器 证书颁发机构 正直
2021-08-16 14:06:00

当我下载 Mozilla 之类的浏览器时,它捆绑了几个根证书。

我如何相信这些证书是合法的?我怎么知道我的下载不包含一些伪造的根证书?

我知道软件本身将在下载过程中通过完整性检查(排除任何篡改),但是完整性检查本身依赖于我现有的浏览器信任用于通过 HTTPS 下载 Mozilla 的浏览器。基本上,Mozilla 下载本身依赖于下载过程中某处所需的其他一些根证书。这似乎是一个递归问题。

所以我的问题是如何信任浏览器内置的根证书?

2个回答

首先,你是对的,这是一个递归问题。SSL 有点像纸牌屋,因为您总是必须信任某些东西,包括那些告诉您该信任谁的人。多位专家预测 SSL 的崩溃:

HTTPS 市场的安全崩溃

SSL/TLS 加密和空地骗局:太大而不能失败

SSL是如何被彻底破坏的?让我们数一数方式

SSL 和真实性的未来

话虽如此,这就是我们现在所拥有的一切,所以恐慌无济于事。

如果你担心你刚下载的程序也安装了一些恶意根证书,有扫描仪可以检查它们,比如这个这个(注意:我不能推荐这些,因为我没有试过了,所以做你的研究)。

或者,如果您希望手动扫描它们, Microsoft 的Trusted Root Certificates Program 维护了一个非常好的列表

每个操作系统安装程序包都经过签名。例如,在 Windows 中,当您下载 Firefox Installer Stub 时,您可以通过右键单击 exe 文件并转到“签名”选项卡来检查它的属性:

Windows Exe 文件属性

然后,单击“详细信息”以查看更多信息,您将看到“签名者信息”以及使用 Windows 内置证书检查的任何“确定”。

Windows Exe 签名详细信息

最后通过谷歌搜索根证书指纹来检查整个链的根证书:

挖掘根证书的指纹

总而言之:

  1. 检查签名者的姓名是否为“Mozilla Corporation”
  2. 检查数字签名是否“OK”
  3. 检查根证书是否正常

似乎链中的 Firefox 二进制根证书是这样的: https ://assured-id-root.digicert.com/info/index.html - 有匹配的指纹“05:63:B8:63:0D:62:D7: 5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43"。

同样,如果您有疑问,可以检查每个根证书。