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,与您的提议相比,它们为域所有者提供了对证书的更多控制权。
但最终,所有这些想法理论上都可以一起使用以提高安全性。虽然你的提议会提高安全性,但它可能比其他提议更具破坏性,并且会导致更多成本,这就是为什么现在优先考虑其他提议。