为什么不摆脱所有证书颁发机构和所有特殊类型的 SSL 证书(扩展验证等),而只要求任何想要 SSL 的人编写自己的自签名 SSL 证书,然后将它们存储在 DNS 记录中.
信任第三方证书颁发机构和 DNSSEC 不是更容易吗?此外,您可以在使用自签名证书时删除浏览器给出的那些安全警告,我的意思是只要您的 DNS 没有中毒就不会出现问题,在 DNS 方面您也有很多选择当涉及到常见浏览器信任的证书颁发机构时,您没有这些提供商。
为什么不摆脱所有证书颁发机构和所有特殊类型的 SSL 证书(扩展验证等),而只要求任何想要 SSL 的人编写自己的自签名 SSL 证书,然后将它们存储在 DNS 记录中.
信任第三方证书颁发机构和 DNSSEC 不是更容易吗?此外,您可以在使用自签名证书时删除浏览器给出的那些安全警告,我的意思是只要您的 DNS 没有中毒就不会出现问题,在 DNS 方面您也有很多选择当涉及到常见浏览器信任的证书颁发机构时,您没有这些提供商。
为什么不摆脱所有证书颁发机构和所有特殊类型的 SSL 证书(扩展验证等),而只要求任何想要 SSL 的人编写自己的自签名 SSL 证书,然后将它们存储在 DNS 记录中.
甚至有一个标准:DANE。它已经在一些网站上使用,但目前主要用于 SMTPS 而不是 HTTPS。
但是,它需要 DNSSec 来确保 DNS 查找不被欺骗。因为否则中间人攻击者可以简单地在 DNS 查找中发送自己的证书。不幸的是,DNSSec 目前还没有被广泛使用,所以现在我们不得不接受已建立的 PKI 结构。
但是一旦 DNSSec 部署得足够深,DANE 就是一项很有前途的技术,您可以使用它来使用您自己的自签名证书或使用传统的基于 CA 的证书获得额外的信任路径。
对于 CA 存在的许多问题,DNS 的可信度明显低于 SSL CA。当您的 DNS 被篡改时,SSL 是一种可以通过验证远程服务器的身份来保护您的工具。如果您将证书移动到 DNS(没有 DNSSEC 来验证 DNS 响应的可信度),您只是让拥有您的 DNS 的人拥有您的整个连接的能力,而您没有任何方法可以检测到它。您提到了 DNSSEC,但似乎您想在没有它的情况下制作证书,这是一种注定要失败的方法。
DNS 篡改是微不足道的:
归根结底,如果你和我在同一个网络上,我可以被动地看到你的流量,我可以篡改你的 DNS 响应,即使没有执行 MITM。DNS 通常使用 UDP,所以当我看到您的请求时,我可以“竞争”合法服务器以返回响应。如果它需要进行递归查找,或者如果您要上网查找 OpenDNS 或 Google 公共 DNS,我几乎肯定会赢得比赛并注入我的虚假响应。