为什么我们不能使用DNS来分发SSL证书?

大多数低成本SSL证书提供商确实只validation您是否控制域名。 对于这些types的证书,而不是支付第三方来validation我是否控制域的DNSlogging,为什么不在DNS中“签名”证书? 如果我在服务器上生成密钥对,并在主机名的DNS中发布相同的公钥,我会认为这将是一个等效的安全级别。

我看到devise有两个问题,但都很小:

  1. EA证书和validation个人/公司详细信息的高级证书不能这样做。 希望在浏览器中获得绿色栏的组织可以继续这样做。
  2. stream氓DNS服务器的恶意networking可能会将您redirect到其他主机名和不同的可信SSL证书。 也许DNSSEC可以照顾这个拒绝问题?

我没有意识到任何浏览器实现这样的东西,但它似乎是一个很好的方法,至less得到一个可信的,encryption的连接,而不显示可怕的“不受信任的证书”对话框。 除了我上面提到的问题和现有的商业authentication机构对这个想法的反对之外,还有什么其他的原因是不好的?

在DNSlogging中编码X.509证书已经是完全可能的 – 查看RFC 4398的CERTloggingtypes。

不是很愤怒的主要原因是运输机制尚不安全。 随着越来越多的顶级域名(TLD)支持DNSSEC,根域将获得DNSSEC签名,今年晚些时候将发生巨大变化。

DNS查询大小(如其他地方提到的)也是一个问题,但值得注意的是, CERT RR还允许您简单地存储可从中下载真正的X.509证书的URL。 在这一点上有一个鸡和鸡蛋的问题,虽然…

SSL证书应该validation网站的身份,以便最终用户可以确保他们的请求没有被中毒的DNS服务器,假的BGP广播,或其他肮脏的伎俩,也将允许从一个伪造的证书服务DNS看起来有效。

我说“应该”,因为那样一切都被“即时”证书冲淡了,而certificate什么都没有,老实说,我认为浏览器厂商应该显示所有未经审计的证书的“不可信证书”警告,或者继续没有提示的自签名证书。 现状不一致。

自从我几年前提出这个问题以来,在实现这一目标方面取得了一些积极进展。 DNSSEC与DNS中已发布的TLS证书保护您的DNS的组合可以实现此目标。 谷歌浏览器目前已经支持DNSSEC装订的证书 ,现在RFC6698基于DNS的命名实体的身份validation(DANE)试图标准化这种支持。

浏览器支持这个问题还需要几年时间,但我很期待。

缺乏标准化和额外的pipe理开销(在一台机器上丢弃一个密钥/证书要比添加一个密钥要容易得多,而这个密钥很可能会相当长,从而影响UDP数据包的限制)从实际的angular度来看这些事情。 缺乏安全的DNS有一点关系,但是对于低价值的目标来说,安全性并不是真正的降低。 对于内部服务,我们只需要导入我们自己的CA证书,这样你就不会在那里获得任何东西,而任何需要 SSL的公共站点都需要一个“真正的”证书。

如果像这样的东西被严重推送(RFC草案,参考实现等),就像任何寄生虫一样,当他们的摇钱树看起来像它时,他们会非常恼火,我希望看到来自商业证书提供者的大量反弹和FUD可能会被屠杀。

也许最好保持简单 – 即不要让DNS做超出预期的事情。 特别是当涉及到安全问题时,我对添加内容保持警惕。 有时候less就是多。 我的想法背后的主要原因是因为DNS和SSL不在同一个域中,没有类似的function和目的。