为什么不与多个证书颁发机构签署证书

信息安全 证书 公钥基础设施 证书颁发机构
2021-08-15 05:29:11

今天我在解释证书链的概念时,一个学生问了我一个很好的问题。

正如我所说的“如果 CA 被攻击者攻陷,他可以为 CA 被允许签署的实体(例如所有 *.fr)发出虚假证书”
他问我:“为什么不对每个证书进行多个签名CA,假设是 3 个,因此仅一个 CA 的妥协不足以破坏信任,并且三个 CA 被妥协的可能性远低于仅一个。”

我觉得这个问题很好。即使 x509 标准目前不允许这样做,它仍然是对当前模型的有效批评。
我不明白为什么提议的模型不会更好,但也许我错过了什么?

要使这种方式有效,需要 3 个签名是强制性的,或者特定的 DNS 记录提到该域的证书需要 3 个签名才能有效。

编辑:接近为什么我们不要求网站有几个独立的证书?

1个回答

我不明白为什么提议的模型不会更好,但也许我错过了什么?

需要多个有效信任锚而不是一个的方法在理论上是一种合理的方法,实际上在 OpenPGP 中实际使用。对密钥的信任取决于有多少受信任的背书人签署了密钥,以及一个人本身对这些受信任的背书人有多少信任等——信任网络

不幸的是,虽然这个概念在理论上很有用,但它在多个层面上增加了很多复杂性。正如 OpenPGP 的示例所示,技术实现可能不是问题。在最简单的情况下,CA 的整个过程会像以前一样工作,但是 TLS 服务器会发送多个带有多个链的叶证书,如为什么我们不需要网站有多个独立的证书?. 另请参阅多个 CA 签署单个 Cert/CSR?.

但除了技术问题:在哪种情况下和来自哪个 CA 应该需要多少证书。是否有任何 CA 比其他 CA 更受信任,具体取决于上下文(例如来自中国的 CA 对美国的信任度较低,而来自美国的 CA 在中国的信任度较低)。有多少不那么受信任的 CA 一起可以达到与一个受信任的 CA 相同的信任级别等。人们不能期望大多数最终用户会做出这一决定,因此浏览器制造商和证书颁发机构必须为最终用户做出决定——经过多次讨论,并且可能还涉及到令人讨厌的政治。换句话说:除了技术问题之外,还有很多组织复杂性,这可能是更难解决的问题。

最终用户的实际收益是什么?如果它是关于将风险降低到单个 CA(即妥协) - 还有其他方法。使用 CAA,可以限制允许哪个 CA 为自己的域颁发证书(尽管这仅由 CA 本身检查),证书透明度可确保没有使用“隐藏”证书,但一切都在公开中完成,将显示问题的 CA 或子 CA 包含妥协的影响。这远非完美,但远不如所提议的方法复杂和破坏性强。

总之:方法本身是合理的。实践中的实施受到技术和组织问题的限制。此外,其他方法已经对 PKI 系统进行了额外的强化,因此不太需要实施这种方法。