握手期间服务器共享的证书中的网站名称是否会通过 https 目的终止 DNS?

Will website name in certificate shared by server during handshake kill the DNS over https purpose?

在通过 https 查询 DNS 时,假设用户通过安全连接获取 ip。在握手过程中,网站以明文形式共享其证书,其中包括网站名称和其他信息。除了主动嗅探之外,它会通过 https 目的杀死 DNS 吗?

HTTPS使用的TLS协议实际上有两个clear-text暴露。

  1. 服务器证书 – 由服务器在 ServerHello 中发送
  2. 服务器名称信息 (SNI) – 由客户端在 ClientHello 中发送

TLS最新版本:1.3,开始被浏览器和网络服务器软件采用,为ServerHello提供加密,一年左右应该会被广泛采用,使域名暴露在证书中的可能性要小得多。

SNI 更难以可抵抗主动攻击者的安全加密形式发送(防止被动监视更实用,但不能保护目标客户端)。当多个服务共享同一 IP 地址时,Web 托管服务器使用 SNI 来确定应使用哪个服务的证书。

虽然 clear-text SNI 信息确实削弱了 DNS-over-HTTPS 和备选方案 DNS-over-TLS 的隐私目标,但有充分的理由认为加密和验证 DNS 请求和响应

  • 防止拦截和修改,无论是审查还是恶意域名中毒
  • 阻止对您的一部分互联网通信的被动和主动监控

并非所有互联网流量都是网络,如果您 运行 邮件传输代理,它需要查找您的 e-mail 收件人的域,即使它使用 SMTP TLS SNI 通常也不是涉及。

对于网页浏览,有敏感域的操作者可以使用的机制,例如Domain Fronting that can be used to make the exposure of SNI less revealing, by sending one domain in the SNI request, and another in the HTTP Host: header. There is even an Internet Draft proposal to supply the desired "fronting" SNI via DNS

还有几个不同的保护 SNI 的互联网草案提案:一个 uses both DNS records and TLS extensions and another uses tunneling to protect the SNI information. The author of the latter proposal has a more generally accessible blog post 说明了保护 SNI 免受所有可能攻击的困难。