在通过 https 查询 DNS 时,假设用户通过安全连接获取 ip。在握手过程中,网站以明文形式共享其证书,其中包括网站名称和其他信息。除了主动嗅探之外,它会通过 https 的目的杀死 DNS 吗?
1 回答
HTTPS 使用的 TLS 协议中实际上有两个明文暴露。
- 服务器证书——由服务器在 ServerHello 中发送
- 服务器名称信息 (SNI) – 由客户端在 ClientHello 中发送
最新版本的 TLS:1.3 开始被浏览器和 Web 服务器软件采用,为 ServerHello 提供加密,一年左右应该会被广泛采用,使得证书中域名暴露的可能性大大降低.
SNI 更难以安全的加密形式发送,可以抵抗主动攻击者(防止被动监控更实用,但不能保护目标客户端)。当有多个服务共享同一个 IP 地址时,Web 托管服务器使用 SNI 来确定应该使用哪个服务的证书。
虽然明文 SNI 信息确实削弱了 DNS-over-HTTPS 和替代 DNS-over-TLS 的隐私目标,但有充分的理由证明对 DNS 请求和响应进行加密和身份验证
- 防止拦截和修改,无论是审查还是恶意域中毒
- 阻止对互联网通信的一部分进行被动和主动监控
并非所有互联网流量都是网络流量,如果您运行邮件传输代理,它需要查找您的电子邮件收件人的域,即使它使用 SMTP,通常也不涉及 TLS SNI。
对于 Web 浏览,敏感域的运营商可以使用一些机制,例如Domain Fronting,可用于通过在 SNI 请求中发送一个域并在 HTTP 主机中发送另一个域来减少 SNI 的暴露: 标题。甚至还有一个互联网草案提案通过 DNS 提供所需的“前端”SNI。
保护 SNI 的 Internet 草案也有几种不同的建议:一种同时使用 DNS 记录和 TLS 扩展,另一种使用隧道来保护 SNI 信息。后一个提案的作者有一篇更普遍可访问的博客文章,说明了保护 SNI 免受所有可能攻击的困难。