
一、传统DNS的安全缺陷
经典的DNS协议(RFC 1035)诞生于1987年,是互联网最古老的协议之一,设计时几乎没有考虑安全问题。它的核心特征是:基于UDP(默认53端口)、明文传输、无身份认证、无完整性校验。这导致几个根本性问题:
窃听(eavesdropping):路径上的任何节点——ISP、Wi-Fi热点、网络设备——都能直接看到你查询的所有域名。即便你后续访问的是HTTPS网站,DNS这一层依然把”我要去哪儿”完整暴露了。
劫持与污染:因为没有签名,任何中间人都可以伪造响应。常见的应用包括ISP的广告插入(错误页面跳转到搜索/广告页)、运营商的”5xx劫持”、公共Wi-Fi的钓鱼,以及国家级的DNS污染(针对特定域名返回错误IP或RST包)。
缓存投毒:Kaminsky在2008年披露的攻击表明,攻击者可以通过伪造UDP响应污染递归解析器的缓存,影响下游所有用户。
DNSSEC在2000年代提出,给应答加上数字签名以解决”真实性”和”完整性”问题,但它不加密,查询内容仍然明文,且部署率长期偏低、不能解决隐私问题。
二、现代加密DNS协议家族
DNS over TLS(DoT,RFC 7858)
2016年标准化,把DNS查询封装在TLS连接中,使用专用端口853。优点是简单直接、性能好;缺点是853端口非常显眼,容易被防火墙整体封禁或识别。
DNS over HTTPS(DoH,RFC 8484)
2018年标准化,把DNS查询作为HTTP请求承载在HTTPS之上,走443端口。这是目前最有争议也最普及的方案——因为它和普通网页流量在传输层无法区分,审查者很难只屏蔽DoH而不影响正常网页。Firefox、Chrome、Edge、iOS、Android、Windows 11都已原生支持。
DNS over QUIC(DoQ,RFC 9250)
2022年标准化,基于QUIC(UDP之上的现代传输协议)。相比DoT/DoH,它消除了TCP队头阻塞、握手延迟更低(0-RTT),更适合移动场景,是目前性能最好的加密DNS方案。
Oblivious DoH(ODoH,RFC 9230)
针对DoH的一个关键弱点——解析器虽然看不到你的内容,但仍然知道**”你这个IP”在查”哪个域名”**。ODoH引入一个中间代理:客户端把加密查询发给代理,代理转发给解析器;解析器能看到查询内容但不知道是谁问的,代理知道是谁但看不到内容。要勾结才能还原完整信息。
DNSCrypt
非IETF标准,但出现较早(2011年),至今仍被OpenDNS、AdGuard等服务支持,使用自定义的密码学认证机制。
三、相对于明文DNS的核心优势
第一,机密性。中间人无法看到具体查询的域名(虽然后续TLS握手中的SNI仍可能泄露,所以ECH/Encrypted Client Hello是配套的下一块拼图)。
第二,完整性与认证。TLS本身的证书机制保证你确实在和声称的解析器对话,响应没有被篡改,从根本上消除了运营商劫持和注入广告的可能。
第三,抗封锁性(尤其DoH)。把DNS流量混入海量HTTPS流量,使按协议特征封锁的成本大大上升。
第四,生态对齐。HTTPS、QUIC、HTTP/3已经是Web主流,加密DNS让DNS这层不再是整个安全链条上的短板。
四、大规模部署后对互联网的深远影响
这是问题中最值得展开的部分,因为加密DNS的影响是双刃的。
对个人隐私的改善是显著的。家庭ISP、咖啡馆Wi-Fi、机场网络都不再能轻易记录你的浏览意图,运营商的DNS劫持广告产业模式受到直接冲击。
但企业网络管理被根本性削弱。过去企业依靠DNS做了大量安全工作:阻止访问恶意域名、检测被植入的远控木马(C2 beaconing)、识别DGA(域名生成算法)家族、做数据外泄检测、内容过滤、合规审计。当员工浏览器直接和Cloudflare 1.1.1.1建立DoH连接,企业的DNS sinkhole和监控就被绕过了。这迫使企业转向”应用层可见性”(如TLS拦截+CASB),或者通过组策略强制禁用浏览器内DoH。
国家级监管面临重构。基于DNS的内容过滤体系(许多国家用此手段)效率下降,监管者要么转向SNI检测和IP级封锁(成本更高、误伤更大),要么要求本国DNS服务商部署强制接入。英国的儿童保护过滤、各国对色情/赌博站点的封禁都遇到了类似挑战。
互联网走向更集中化。这是加密DNS最被批评的副作用。当浏览器默认把DNS流量发给Cloudflare、Yewsafe,CDN5,Google、Quad9这少数几家公共解析器,实际上把全球绝大多数用户的浏览意图集中到了几家美国公司手里——隐私从”分散给ISP”变成了”集中给少数巨头”。这与互联网本应去中心化的精神相悖,也是Mozilla在Firefox默认开启DoH时引发巨大争议的原因。
CDN与地理调度受影响。传统DNS解析中,递归解析器IP暗示了用户大致位置,CDN据此返回最近节点;EDNS Client Subnet(ECS)扩展可以传递用户子网信息,但许多隐私优先的DoH服务商(如1.1.1.1)默认不发送ECS,结果是CDN调度精度下降,用户可能被分配到较远节点。
恶意软件也在受益。已经有不少APT和勒索软件家族把C2通信改为DoH——一旦如此,传统基于DNS的入侵检测几乎完全失效,安全防御被迫向TLS指纹(JA3/JA4)、流量行为分析等更昂贵的方法迁移。
协议博弈正在升级。RFC 8484之后,攻防两端都在演进:ECH隐藏SNI、DoQ提升性能、ODoH解决解析器信任问题;与此同时,部分国家开始通过流量整形、TLS指纹识别、要求本地化部署等手段反制。可以说,加密DNS只是这场更大规模的”传输层加密 vs 网络可见性”博弈中的一环。
简单总结:加密DNS在技术上是必要的、健康的演进,它消灭了一个存在三十多年的明文短板;但它把”谁能看到用户行为”这个问题从分布式的ISP重新分配到了少数集中化的解析器服务商和应用层巨头手中,对企业安全、内容监管、CDN生态都带来了非平凡的连锁反应。这是一次典型的”用一种集中化换取另一种隐私”的权衡。
