“加密DNS能保护隐私”,这可能是不少用户深信不疑的设定。但一位资深技术编辑在用Wireshark亲自抓包之后,发现情况远比自己想象的复杂——互联网服务提供商能看到的,远不止你访问了哪个网站。

事情的起因很直接。作者在自己的Windows机器上启用了基于HTTPS的DNS,也就是DoH。这种技术将域名查询请求包裹在常规的HTTPS流量中发送,通常被认为是防止ISP窥探你上网记录的有效手段。为了验证效果,他用Wireshark这个网络封包分析工具对本地流量进行实时监控,然后相继打开了电脑上的浏览器和Steam游戏平台,试图观察加密DNS到底藏住了什么。

打开网易新闻 查看精彩图片

结果却令人意外。即便DoH处于工作状态,ISP的视野里依然留下了丰富的可读信息。作者将ISP能看到的东西分成了三层。最底层是基础用户数据:你的公共IP地址、建立连接的时间戳,以及与被访问服务器之间的通信数据量。这些是网络连接建立的基础,无论DNS是否加密都无法隐藏。

往上一层是流量行为的元数据。这里包含的信息变得具体起来:你向哪个目标IP地址发起了请求、目标服务器运行在哪个端口、连接持续了多长时间,以及数据包传输的节奏。作者用Steam举例,因为Steam通信带有非常独特的流量特征,ISP根本不需要知道你解析了什么域名,光看数据流的形状就能判断出你大概率在下载游戏或者正在进行好友聊天。至于浏览器访问网站的动作,ISP也能通过观察你是否访问了58850端口或者谷歌的Web Light缓存服务器地址来间接推断。

真正的重头戏在第三层,也就是作者所说的“连接泄露信息”。尽管DNS查询本身被加密了,但TLS握手过程的初始数据包(ClientHello)在TLS 1.3以下的旧版协议里是明文传输的。这就意味着,ISP可以轻松读取其中的Server Name Indication (SNI)(服务器名称指示)字段,从而精准得知你将要访问的具体域名,比如“www.google.com”。此外,在建立加密连接时,客户端还会发出OCSP(在线证书状态协议)查询,去验证目标网站安全证书是否被吊销,这个查询请求同样可能给ISP留下关于你访问目标的线索。甚至连每台设备在连接网络时协商出的TCP初始序列号,都在不经意间向网络中间人透露着信息。

这份由个人实验得出的清单,实际上揭示了一个常被忽略的现实:加密DNS只是隐私拼图中的一块。作者指出,DoH和DoT(基于TLS的DNS)这类技术确实能防止DNS查询内容被中途篡改或直接偷看,但它无法屏蔽网络层面暴露的元数据。要想让ISP彻底“变瞎”,必须配合使用加密SNI(ESNI),或者干脆将全部流量都导入VPN隧道。目前的Windows系统已经默认开启DoH,macOS和iOS也支持加密DNS配置,但操作系统的原生设置对于后续的SNI加密支持仍然有限。

对于有更高匿名需求的用户,作者也给出了务实的建议。第一,直接使用自带ESNI支持和更严格流量混淆的浏览器,比如通过特殊网络访问的Tor浏览器。第二,选择一家真正执行“零日志”政策、并且不记录任何连接元数据的VPN服务。第三,最彻底的方案是放弃对本地ISP的依赖,转而通过移动网络热点上网,但这显然以牺牲便利和速度为代价。无论如何,这里的关键教训很明确:不要对单一的技术手段抱有完美幻想,你的隐私安全取决于整个网络栈中最薄弱的那一环,而那一环往往就赤裸裸地暴露在ISP面前。