为什么我们不要求网站有几个独立的证书?

信息安全 证书 证书颁发机构
2021-08-14 16:17:17

单个受损的 CA 可能造成重大损害通常被认为是主要关注点,因为不再信任依赖此 CA 的所有网站(和其他实体)。

请原谅我的无知,但为什么我们不要求网站通过 3 个独立 CA 证书进行验证?只有当大多数证书都同意网站的有效性时,才会被认为是可以接受的。这似乎在很大程度上解决了上述问题。

  • 如果证书是由单个 CA 在没有适当理由的情况下颁发的,则不会使网站被接受。同时只有两个受感染的 CA 可以做到这一点。
  • 如果某个 CA 不再受信任,那么依赖它的网站仍然可以运行,因为它们已由其他两个 CA 进行验证,除了一个已经失效的 CA。这意味着在不“破坏互联网”的情况下更容易撤销对 CA 的信任。

显然,这样的想法会导致额外的工作。但鉴于所花费的时间和金钱不会线性增加,这是可以接受的。

与传统基础设施并行运行这种模式也很容易,因为网站可以指定一个或三个证书,而新规则(和奖金)仅适用于它们。

3个回答

为什么我们不要求网站通过 3 个独立 CA 证书进行验证?

这里有几个原因:

  1. 成本购买证书已经有些贵了*;将这笔费用增加三倍 - 并迫使购买者更深入地涉足潜在的 CA 池,他们通常从便宜的一端开始 - 不会受到欢迎。

  2. 复杂性目前,如果证书过期,该站点将处于脱机状态或降级,直到 IT 可以快速修复它。鉴于到期日期是已知的并且可以计划,这种情况令人惊讶地经常发生。您的建议将使需要正确安装的证书数量增加三倍,需要在到期前更换,需要正确的证书链......今天只有一个 CA,其中一些东西已经够难了!

  3. 兼容性TLS 协议没有指定必须验证多个证书的操作方法,因此您必须更新或替换正在使用的协议,这需要数年时间。无法向客户端指定此特定服务器需要多证书验证,因此降级攻击是微不足道的 - 再次,您需要创建一个方法,然后等待数年的支持渗透出来。

  4. 证书固定您的想法是“让我们假设 CA 模型被破坏,并且作为解决方案增加我们对 CA 模型的依赖。” 如果一个 CA 可以被攻破,为什么不能有两个(假设您的模型中 2/3 多数胜出)?那时你会开始说,“好吧,显然我们希望信任 Entrust,而不是 Tadpolistan 的统一共和国”——此时你已经达到了Certificate Pinning,这已经是一件事了。

  5. 其他?当您决定某些 CA 比其他 CA 更值得信赖时,您会得出的另一个自然结论是,应该有一种方法来整合信誉。这被称为信任网络,是当今 CA 集中信任的竞争模型。WoT 方法的一个实现是Perspectives Project,这是解决您所描述的同一问题的一种有趣方法(它与现有 CA 模型互补并兼容)。

* 在有人跳起来说“Startcom!”之前 或“让我们加密”,请记住今天企业推动 CA 模型。他们支付了大量的金钱,其中一些人每年购买数千个证书。需要针对所有参与者考虑成本影响。(即使在低端,如果你想要一个免费证书,现在你必须找到 3 个有信誉的免费提供者,而找到一个已经是一个挑战。)

RTLS 既不支持单个会话的多个叶证书,X509 也不支持单个证书的多个颁发者。这意味着协议将需要进行更改。但是,让我们忽略进行此类更改的努力,看看我们通过您的提案获得了多少安全性。让我们看看如何颁发一个糟糕的证书,您的提案在哪些情况下有帮助,以及它与现有提案的比较。

攻击者如何获得证书

如果CA 被攻击者破坏,即存在漏洞、被黑客入侵或 CA 雇用了不值得信任的人,则可能会颁发错误的证书。在这种情况下,您的建议会有所帮助,因为您希望并非所有多个 CA 都同时存在这些问题。当然这不是那么简单,因为您最好确保不同的 CA 实际上由不同的实体控制并运行不同的代码,即单个 hack 实际上并不是多个 CA 的 hack。

但攻击者也可以通过破坏域验证过程来获得证书。这个过程对所有 CA 都类似,如果攻击者可以访问域所有者或服务器的邮件,他可能会设法从多个 CA 获取同一服务器的证书。在这种情况下,您的建议根本没有帮助。但当然,在这种情况下,黑客只能访问安全性较差的域的少数证书,而在 CA 妥协的情况下,即使是具有良好安全性的域,他也可能获得大量证书。

存在哪些替代提案

通过证书或公钥固定( HPKP ),域所有者可以确保证书使用特定的公钥。使用 HPKP 效果,攻击者需要访问现有证书的私钥,即破解服务器。可以保护具有良好安全性的域,防止滥用攻击者通过破坏 CA 创建的证书。HPKP 的好处是它便宜且易于推广,并且已经被主流浏览器支持

证书透明度是一个公共日志,可用于查明 CA 是否颁发了它不应该颁发的证书,以及 CA 是否知道它颁发了特定证书域所有者可以使用它来检查恶意证书。虽然并非所有 CA 都有这样的日志,但这个数字还在增长,因为浏览器供应商将支持作为成为受信任 CA 的要求。目前,Chrome 要求所有 EV 证书(绿色条)都包含在此类日志中,并且还需要一些其他 CA 发布此类日志,因为它们过去曾表现出不安全性。好消息是像 Chrome 这样的支持浏览器知道哪个 CA 应该有这样的日志并且可以检查它。

DANE使域所有者可以在不需要 CA 的情况下在 DNS中发布自己的证书。当然,这必须以某种方式防止 DNS 欺骗,因此它需要 DNSSec。DANE 既可以与自签名证书一起使用,而不是使用公共 CA,也可以与 CA 签名证书一起使用作为额外的保护。虽然目前尚未在浏览器中实现,但它已被多家提供商用于邮件,并且该领域的支持正在增长。

概括

虽然您的提案对于提高安全性很有用,但它需要对现有的 TLS 协议(提供多个叶证书)或 X509 模型(单个证书的多个颁发者)进行重大更改。但至少可选的多个证书可能在 TLS 扩展的帮助下实现,因此我们不需要为此创建新的 TLS 版本。它会增加在完全握手中传输的数据(大量叶证书和链证书),这会减慢握手速度。

替代提案不需要此类协议级别更改,因为它们在 TLS 协议之外工作。此外,对于 HPKP 和 DANE,与您的提议相比,它们为域所有者提供了对证书的更多控制权。

但最终,所有这些想法理论上都可以一起使用以提高安全性。虽然你的提议会提高安全性,但它可能比其他提议更具破坏性,并且会导致更多成本,这就是为什么现在优先考虑其他提议。

您提出的建议确实会提高安全性,但会增加管理成本和技术复杂性。我认为 CA 妥协太罕见了,不足以证明这些成本是合理的。此外,如果将类似的方案付诸实践,它可能会比简单的三分之二投票更详细。例如,只有两个证书,一个是有效的,一个是过期的,应该足以确认身份,同时防止单个 CA 受损。