CA 被黑的可能性有多大?我应该删除哪些默认的受信任根证书?

信息安全 tls 证书 公钥基础设施 证书颁发机构 相信
2021-08-27 04:08:21

自原始版本以来,此问题已进行了重大修订和澄清。

如果我们查看我的受信任根存储中的每个受信任证书,我应该信任它们多少?

当我评估每个根 CA 是否可能从我的本地存储中删除时,应考虑哪些因素?

更多信息:
如果 CA 向未正确验证的一方颁发证书,那么这会导致所有信任该 CA 的机器容易受到 MITM 攻击。因此,所有 CA 都严格验证给定 SSL 证书请求的请求者,以确保其 CS 链的完整性。

但是,此 CA 验证过程的很大一部分都受到人为干预,并提供了向错误方颁发证书的机会。这可能是由 CA 运营商的错误、政府要求或 CA 运营商的胁迫(贿赂)造成的。

我想了解更多有关哪些默认 CA 更有可能向错误方颁发证书的信息。我打算使用此信息来建议用户从其受信任的证书存储中删除该 CA

示例:
假设控制特定 CA 的政府想要使用 Microsoft.com 的身份,并要求 CA 的验证过程例外。该政府还要求对该例外情况保密。生成的密钥对随后将用于 MITM 攻击。

Windows Azure 默认信任

Windows Azure 支持 275 个 CA,如以下链接所示。根据特定 CA 的使用,其中一些 CA 可能会增加特定攻击的表面积。事实上,这在技术上可能是使某些应用程序正常工作所必需的。

亚马逊默认信任

(不可用)如果您遇到它们,请分享指向 Amazon、Google 和 VMWare 默认 CA 列表的链接。

Mozilla

提供所有证书和审核声明的列表

苹果iOS

此 #WWDC2017中提到的所有iPhone 根证书的列表。视频

4个回答

更新 5 CA 模型的根本问题 (heh) 是,在一般实践中,任何 CA 都可以为任何域颁发证书,因此您很容易受到最薄弱环节的影响。至于你可以信任谁,我怀疑这份名单是否很长,因为风险很高,安全也很困难。我推荐 Christopher Soghoian 关于这个主题的帖子,它阐明了世界各国政府用来获取私人用户数据的各种方法——无论是直接要求运营云服务的公司、通过窃听,还是现在越来越多地通过 CA 强制或 hacks:轻微的偏执狂:导致 DigiNotar hack 的力量

在这里,我提供了一些细节,并以一些潜在修复的链接结束。

2009 年,Etisalat(阿拉伯联合酋长国政府拥有 60% 的股份)推出了一款看似无害的黑莓补丁,该补丁将间谍软件插入 RIM 设备,从而可以监控电子邮件,因此很难被认为是值得信赖的。但它在许多受信任的 CA 列表中: http: //arstechnica.com/business/news/2009/07/mobile-carrier-rolls-out-spyware-as-a-3g-update.ars

更新 1另请参阅据称由伊朗人ComodoHacker对 Comodo发起的成功攻击示例: Rogue SSL 证书(“案例 comodogate”)- F-Secure WeblogF-Secure 指出,Mozilla 包括由中国、以色列、百慕大、南非、爱沙尼亚、罗马尼亚、斯洛伐克、西班牙、挪威、哥伦比亚、法国、台湾、英国、荷兰、土耳其、美国、香港、日本的 CA 颁发的证书、匈牙利、德国和瑞士。

突尼斯是另一个拥有广受信任的 CA 的国家,也有关于其政府侵犯隐私行为的良好文件:Facebook 如何应对突尼斯黑客攻击的内幕故事 - Alexis Madrigal - 技术 - 大西洋

Mozilla 注意到另一个值得关注的可疑做法:允许 RA 合作伙伴直接从根而不是通过中介颁发证书的 CA:Comodo Certificate Issue – Follow Up at Mozilla Security Blog
另请参阅更多详细信息,包括对一名伊朗黑客声称对其负责的猜测Web Browsers 和 Comodo 披露了一次成功的证书颁发机构攻击,可能来自伊朗 | 修补的自由

更新 3:ComodoHacker 的另一次成功攻击似乎也是针对DigiNotar CA。他们的网站从 2009 年开始遭到入侵,但直到 2011 年伊朗人也使用 DigiNotar 为 Google、Yahoo!、Mozilla、WordPress 和 Tor Project 的网站签署虚假证书之后,才注意到这一点。DigiNotar 一个多月没有透露其对网站入侵的了解。在 DigiNotar Hack 中查看更多信息突出了我们 SSL Web 安全模型的严重故障 | 修补匠的自由

我猜想各种 CA 的漏洞范围差异很大,它们的效用也是如此。所以我建议重新调整你的策略。当您可以将其缩小到您尝试保护的特定资产时,只需删除所有 CA,使用这些资产所需的 CA 除外。否则,请考虑消除您认为最容易受到关心您资产的人或最不受欢迎的 CA,以减少攻击面。但请接受这样一个事实,即即使针对最流行和最谨慎的 CA,您仍然容易受到复杂的攻击。

更新 2:Freedom to Tinker 上有一篇关于修复我们危险的 CA 基础设施的好帖子:构建更好的 CA 基础设施

它谈到了这些创新:

更新 4我们在 2011 年 8 月发布的一篇 IT 安全博客文章也涵盖了迁移到 DNSSEC 的案例: 基于风险的解决证书颁发机构问题的观点 « Stack Exchange 安全博客

更新 6多个证书颁发机构被发现违反规则。其中包括法国网络防御机构 (ANSSI) 和 Trustwave,它们都与数字证书的欺骗有关

更新 7另一组“错误颁发的证书”,2014 年通过印度认证机构 (India CCA):Google 在线安全博客:维护数字证书安全

另请参阅关于证书透明度的问题,这似乎是一种有助于更早发现不良证书和违反政策的方法。

正如 Matt Blaze 曾经写过的,CA 保护您免受任何他们不愿意从他们那里拿钱的人的伤害。这应该可以告诉您 CA 的激励措施在哪里,以及安排中的一些潜在风险。

恐怕这个问题的简短回答是,据我所知,不可能知道。在大多数常见浏览器中安装了大量默认 CA,很难评估它们在向政府或其他组织颁发证书方面“值得信赖”的可能性。

如果某个 CA 被认为是不可信的,那么它们很可能会从浏览器的默认安装列表中删除(根据下面的 @xce,Diginotar 是一个很好的例子,也是 Digicert)

除了自愿提供证书的组织之外,还存在他们可能在未对请求者进行适当安全检查的情况下提供证书的风险。几年前,在 Defcon 上,有几次关于无需授权即可获得证书的主题的演讲。

如果这是一个重大问题,那么我能想到的唯一方法是创建一个您已经审查并且对所提供的安全性感到满意的 CA 白名单。显然,这不适用于访问一般 Internet,因为您最终可能会删除对您想使用的站点有问题的 CA。

2 个例子深入你需要知道的核心,但不是你明确要求的:

  • 几年前(2006 年,或者可能是 2005 年年底),有一个广为人知的 SSL 网络钓鱼事件——一个虚假的银行网站收到了一个合法的 SSL 证书(我相信来自 GeoTrust),因为该网站拼写错误。(更新:找到这个历史链接——地址是银行的全名而不是缩写词)。从那时起,出现了其他 SSL 网络钓鱼案例......关键是可以在不诉诸“强制”的情况下获得证书。
  • 最近的Stuxnet中篇小说依靠窃取的证书等策略。这些是从第三方驱动程序制造商“借来的”,并且由于它们是“受信任的”,因此能够被滥用以植入恶意软件。

当然,还有一些软件场景甚至没有调用 CA ——例如调用 Web 服务的胖客户端,不需要验证服务器的证书......

我的观点是,如果您担心基于 SSL 的 MITM,通常情况下,您应该担心的不是政府强制。通常有更容易和更容易获得的方法。
我什至反对“受信任的证书”被称为“受信任的”……仅仅因为我知道你是谁,并不意味着我应该信任你……这并不意味着我应该相信你知道别人是谁

更不用说,如果您从受信任的商店中删除标准根证书,互联网上的许多站点将无法按预期工作。

另一方面,如果您正在处理不需要一般浏览功能但正在与特定服务器(或一组服务器)通信的服务器/设备,请务必删除所有根证书,除了您的白名单需要。
如果您使用自己的内部 CA,那就更好了......