证书颁发机构信任漏洞暴露了 Internet 信任层次结构中的漏洞

2015 年 3 月下旬,发生了涉及未经​​授权的数字证书冒充 Google 的重大安全漏洞。 这一事件对于普通人如何决定在互联网上信任谁具有深远的影响.

在这篇文章中,我们将尝试解释为什么这对像您这样的最终用户很重要。

简而言之,发生了什么

Google 检测到 Google 域的高质量 SSL 证书伪造. 伪造品非常好,可以欺骗大多数浏览器,可能让攻击者冒充谷歌和其他域,甚至可能欺骗用户泄露他们的密码。 值得庆幸的是,这些伪造品只存在于封闭的测试环境中。

由于有严格的流程来验证证书持有者的身份,因此即使在测试环境中发行这种假数字证书也几乎是不可能的。 因此,这种情况发生的事实非常重要,这意味着它可能会再次发生,并且它可能以前在其他组织中发生过,但未被注意到。

谷歌正在通过更新其响应 Google Chrome 浏览器不再信任所涉及的特定证书颁发机构(称为 CNNIC); 它正在从其产品中删除 CNNIC 的根证书。 Mozilla(创建者 Firefox) 将要 不信任所有新的 CNNIC 证书 直到CNNIC成功重新申请加入其根存储。

复习:当您访问具有有效 SSL 证书的站点时,会发生以下情况

当我们使用 https 访问网站并且我们的浏览器向我们显示绿色复选标记或锁定表示该网站是安全的时,这将有助于对发生的情况有一个高层次的了解。

  1. 你输入 https://www.google.com 进入您的网络浏览器。
  2. 您的网络浏览器会访问一个名为 DNS 的公共目录,以查找它应该使用哪个 IP 地址来联系 google.com。
  3. 您的 Web 浏览器使用从 DNS 收到的 IP 地址联系服务器。
  4. 服务器使用 SSL 证书进行响应。
  5. 您的 Web 浏览器使用此 SSL 证书来实现两件非常重要的事情:
    1. 它确认服务器的身份。 在这种情况下,它确认服务器确实由 Google 运行; 和
    2. 它建立了一个加密的通信通道,使浏览器和服务器之间发送的数据被加密。 任何在网络上收听的人都可以看到您正在与 Google 进行通信,但无法查看您的通信内容。

如果 SSL 证书有效,您的浏览器将在地址栏上显示熟悉的绿色复选标记或锁定。

啊,绿锁。

但是,如果攻击者设法欺骗我的浏览器联系假服务器,您的浏览器会注意到 SSL 证书是 无效的,它会向您显示安全警告。

当 SSL 证书是高质量伪造时会发生以下情况(提示:您的浏览器不会注意到)

这就是谷歌的公告如此重要的原因:MCI Holdings 设法为谷歌创建了虚假的 SSL 证书,这些证书非常逼真,以至于它可以欺骗大多数网络浏览器,让他们认为虚假服务器上的网站实际上是谷歌。 理想情况下,这应该永远不会发生。 但是当它发生时,它会是这样的:

  1. 你输入 https://www.google.com 进入您的浏览器。
  2. 攻击者欺骗您的 DNS 服务器为您提供 google.com 的错误 IP 地址。 他们可以通过利用您的家庭路由器、网络中的其他路由器、DNS 服务器本身(通常由您的 ISP 运行)中的错误或各种其他方式来做到这一点。
  3. 您的网络浏览器会联系假服务器。
  4. 假服务器以伪造的 SSL 证书进行响应。 但是,证书是高质量的假冒,您的浏览器认为它是有效的。
  5. 您的浏览器将在地址栏中显示绿色复选标记或锁定。
    1. 当 SSL 证书是高质量的、无法检测到的伪造品时,您和您的浏览器会认为它实际上是 GMail……
  6. 您将您的 Google 用户名和密码输入到 GMail 的高质量克隆中,从而将其发送给攻击者,攻击者现在可以控制您的所有 Google 数据,包括您的电子邮件、文档、照片、联系人以及与您的 Google 帐户相关的任何其他内容.

无论如何,Web 浏览器如何确定 SSL 证书是否有效?

每个操作系统、智能手机和网络浏览器都预装了几十家公司或政府的列表,这些公司或政府的数字签名会自动信任,除非另有配置(稍后会详细介绍)。 这些受信任的公司称为证书颁发机构或 CA,必须满足详细标准才能成为该列表的一部分。

钥匙串访问系统根您可以通过转到 Spotlight > Keychain Access > System Roots 来访问它。

如果网站提供由这些受信任的证书颁发机构中的任何一个签名的证书,Web 浏览器会将其解释为“我看到了我预先配置为信任的此证书颁发机构的签名。 它已签署此服务器的证书。 这意味着它已经验证了该服务器背后的人,并确认他们确实是他们声称的人。 因此,我也会信任此证书,并向我的用户显示绿色复选标记或锁定。”

将证书颁发机构视为类似于颁发护照等身份证件的中央受信任机构会有所帮助。 申请护照时,您需要携带出生证明、驾驶执照和照片等证明文件,而且您可能必须亲自办理,以便他们确认您是照片中的人。 旅行时,您使用护照作为您的身份证明文件。 政府、酒店和航空公司相信您就是您的护照所确认的那个人。

您可以将证书颁发机构视为类似于护照签发办公室,您可以将数字证书视为网站的一种护照或身份证件。 护照(理想情况下)很难伪造,并且有有效期。 同样,数字证书应该(理想情况下)难以伪造,并且它们也有到期日期。 过期后,护照和数字证书将失效。

我们不能认为我们的浏览器和计算机信任谁是理所当然的

您可能熟悉您的计算机自动预配置为信任的一些证书颁发机构,例如 Symantec 和 GoDaddy。 但是您是否知道您的操作系统或浏览器可能包含香港邮政等广泛组织的根证书 Office,来自荷兰的一个名为 Staat der Nederlanden Root CA 的组织,以及世界各地的政府? (如果你好奇,这里是 受信任的组织名单 Firefox)。

风险在于,当其中一个证书颁发机构因疏忽(CNNIC/MCS Holdings/Google 崩溃似乎发生的情况)或什至可能出于恶意而从冒充者那里签署伪造证书时会发生什么。

是时候重新考虑我们在互联网上信任谁了吗?

对 Internet 的信任是可传递的. 我们信任我们的操作系统和网络浏览器的开发者; 我们信任像谷歌这样在互联网上处理我们数据的公司; 我们相信几个证书颁发机构会仔细验证各种网站的身份,并且只向其合法所有者颁发 SSL 证书。

伪造谷歌证书的案例凸显了审查我们真正需要浏览器信任的证书颁发机构的重要性. 根据您通常访问的网站,您实际依赖的证书颁发机构集可能比您计算机上预先信任的证书颁发机构集小得多。

以下是您可以执行的操作:

  1. 考虑禁用计算机上预配置的一些根证书。 为了 example,如果您通常不浏览荷兰的网站,最好禁用您的浏览器当前可能设置为信任的名为“荷兰政府,PKIoverheid”的权限。 我们还建议禁用 CNNIC 的根证书。
  2. 考虑制作 Chrome 您的默认浏览器,因为 Google 一直保持警惕并迅速响应信任违规行为。
  3. 关注 Google 等项目 证书透明度项目,它正在创建一种技术解决方案,以更快地发现伪造的证书。 在接下来的几个月和几年中,此类项目将创建插件并对浏览器和操作系统进行改进,以解决其中一些问题,但这些解决方案今天还没有完全可用。
  4. 同时,请记住使用 VPN。 它可以保护您免受攻击者尝试在您身上使用伪造 SSL 证书的一些可能方式。 为了 example,VPN 使攻击者更难篡改您的 DNS 结果。

进一步阅读:

什么是证书颁发机构和信任层次结构? | 环球信
Google 的证书透明度项目