为什么浏览器允许自定义根 CA?

信息安全 网页浏览器 中间人 证书颁发机构
2021-08-18 07:18:18

在我的工作中,所有浏览器都安装了自定义根 CA,然后允许它们窥探所有 https 流量,而用户会产生错误的印象,即他们正在浏览安全的 https 页面。

为什么浏览器允许如此轻松地击败 https,而不是警告用户呢?

编辑:根据答案/评论,我意识到我可能错误地强调了我困惑的错误部分。我知道有一些合法的需要想要更改 CA 列表,但我不明白的是,如果进行了此类更改,您为什么不想警告用户。不是警告用户破坏地址旁边的绿色框的点吗?我是否真的需要多次点击,然后可能进行(妥协)搜索以确定根 CA 是否是我不拥有的任何计算机的真实 CA 和/或我是否让其他人触摸我的电脑?

4个回答

正如评论和答案中所指出的那样,有很多正当理由可以将 CA 添加到浏览器的信任库中,并且执行此操作的机制需要管理员访问机器/浏览器。

您在暗示一种信任模型,您认为您的管理员(或过去的您)不值得信任,并希望浏览器在视觉上区分受公众信任的证书(即由 Mozilla 的受公众信任的 CA 颁发) list) 和一个私有信任的,因为它被显式添加到浏览器的信任存储中。也许通常的绿色带有私人信任的警告符号?

好主意!它还可以解决我需要安装两份 Firefox 的问题:一份用于测试需要我安装证书的产品,另一份用于浏览互联网。您应该查看 Firefox 是否已经对此进行了增强,如果没有,请提出建议 :)

您想要的是让浏览器保护用户免受本地管理员执行的“攻击”。

在这种情况下,防御是不可能的。“恶意”管理员总是可以将您的合法 Firefox 替换为他使用自己的 CA 编译的冒名顶替者,该冒名顶替者将显示绿色挂锁。当您在工作并且使用某人的机器(在这种情况下是公司的机器)时,您将 100% 受机器所有者的摆布。如果公司想偷偷窥探你,他们总是可以安装键盘记录器并在访问安全浏览器之前查看你的密码。

绿色框不表示对本地威胁的安全性,它表示对远程窥探的安全性。在这种情况下,它表示与您的 TSL 检查器的安全连接。它表示您在同一局域网中的同事无法窥探您的密码,因此绿色图标。检查员之后会发生什么是您的网络管理员的责任,并且浏览器无法判断它是否真的使用 HTTPs。

作为用户,您可以做的是查看证书并检查其证书路径。您的浏览器无法确定DigiNotar颁发的证书是否比 EvilCorp(可能恰好是您的雇主)颁发的证书“更好”。证书不断变化,CA 也不断变化。浏览器无法确定一个 CA 是否比另一个 CA 更值得信赖。只有您可以决定谁是发行人以及您是否可以信任他们 - 以及使用什么样的信息。你应该只将机器用于与工作相关的活动,所以从技术上讲,你并没有做任何你不希望 EvilCorp 看到的事情。

  1. 因为官方名单会随着时间而变化。
  2. 因为企业有合法的需要包括“内部”CA。
  3. 因为企业出于安全、合规或 HR 目的而能够进行中间人处理具有合法利益。
  4. 因为开发人员和测试人员对 Man-in-the-Middle 有正当的需求。

您今天愿意相信StartCom吗?这就是你通过非平凡的修改得到的。

浏览器确实没有充分的理由允许这样做,他们应该禁止这样做。让我一一解决有缺陷的理由:

  1. Web开发。您不需要CA 来为您正在为其开发的单个域或少量有限域集签署证书。相反,浏览器可以允许添加仅对特定域有效的 CA 证书,并在使用此类证书时在 URL 栏中警告您,而不是允许添加可以为任意域签名的 CA 证书。

  2. 企业和 AV MITM。这些只是坏主意,您可以在其他地方找到讨论的原因。在端点上实施 AV,而不是通过 MITM。通过 MITM 进行资产控制根本不起作用,除非针对非常天真的用户。如果您的数据非常敏感,以至于您认为需要通过 MITM 进行资产控制,那么您可能需要没有互联网访问权限的气隙系统。

  3. “如果浏览器不允许,想要添加根 CA 的管理员只需修改浏览器即可。” 是的,这在技术上总是可行的,但是浏览器供应商有机会通过简单地将浏览器商标的使用限制在不篡改 CA 信任 UX 的条件下,使其在法律上变得困难或不可能。长期以来,我一直在倡导这一点。如果浏览器这样做了,用户一旦在他们坐下的系统上看到“Firefox”或“Chrome”就会知道,只要他们相信安装的一方,它就不会接受欺诈性证书来让某人 MITM 使用它们。建立制度是守法的. 在工作场所、学校、图书馆等环境中,这是一个相当合理的假设,并且是可测试的,因此如果有人违反规则,很容易将其排除在外,让浏览器供应商发起法律诉讼。