2019年7月,网络安全研究人员发现了一种名为Godlua的后门程序。这个恶意软件的独特之处在于:它是首个被观察到利用DNS over HTTPS (DoH)协议来隐藏命令与控制(C2)通信的恶意软件。通过将DNS查询封装在HTTPS流量中,Godlua成功绕过了传统的网络监控工具——安全团队看着大量"正常"的HTTPS流量经过,却完全无法察觉其中隐藏的恶意DNS请求。

这个案例揭示了一个深刻的技术悖论:一个旨在保护用户隐私的协议,正在同时成为攻击者的隐身斗篷。

DNS的四十年明文困境

要理解DoH引发的争议,需要先理解DNS本身的"先天缺陷"。

1983年,Paul Mockapetris设计了Domain Name System,用以替代早期互联网的HOSTS.TXT文件。在那个互联主机数量尚以千计的年代,安全并非首要考量——DNS查询以明文形式在UDP端口53上传输,任何人都能读取、修改或拦截这些数据包。

这种设计延续了近四十年。当你在咖啡馆连接公共Wi-Fi,输入一个网址时,你的DNS查询会以明文形式穿过该网络。网络管理员、ISP、或者任何能够在网络路径上部署嗅探器的攻击者,都能看到你正在访问哪些网站。更危险的是,他们可以实施DNS劫持——将你的查询重定向到恶意服务器,把你引导到钓鱼网站。

Paul Vixie,这位在1989年至1999年间负责BIND(最广泛使用的DNS服务器软件)的先驱,曾经这样描述DNS的安全状况:“DNS是互联网的电话簿,但这个电话簿挂在公共场所的墙上,任何人走过都能看到你在查谁的号码。”

问题的核心在于:即使目标网站使用了HTTPS加密,DNS查询本身仍然是明文的。这就好比你要去银行,虽然银行金库固若金汤,但你在门口大声询问"银行在哪里",任何路人都能听到。

DoH的技术架构

DNS over HTTPS的核心思想非常直接:将DNS查询封装在HTTPS请求中,利用TLS加密保护查询内容。

2018年10月,IETF发布RFC 8484,正式将DoH标准化为提议标准(Proposed Standard)。协议规定:

  • DNS查询使用HTTP/2或更高版本的POST或GET方法发送
  • 查询内容以wire format格式编码,MIME类型为application/dns-message
  • 默认端口为443,与普通HTTPS流量相同
  • 支持HTTP缓存机制

一个典型的DoH请求如下:

GET /dns-query?dns=AAABAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB
Host: dns.example.com
Accept: application/dns-message

响应同样采用application/dns-message格式:

HTTP/2 200 OK
Content-Type: application/dns-message
Content-Length: 61

<DNS响应的wire format数据>

这种设计的巧妙之处在于:DoH流量与普通HTTPS流量完全无法区分。网络管理员看到的只是一堆通往cloudflare-dns.comdns.google的HTTPS连接,无法判断其中是否包含DNS查询,更无法知道查询的内容。

两种部署哲学的碰撞

DoH的实现方式存在两种截然不同的哲学,这种差异直接影响着网络治理格局。

SPAU模式:渐进式升级

Chrome和Windows采用Same Provider Auto-Upgrade (SPAU)模式。其逻辑是:如果系统配置的DNS解析器(如8.8.8.8)在已知的DoH支持列表中,客户端会自动尝试升级到加密连接;如果失败,则回退到明文DNS。

这种模式的优点是不改变用户的DNS配置,企业可以继续使用自己的DNS服务器进行内容过滤和策略执行。缺点是安全性有限——如果本地网络被攻击者控制,他们可以轻易阻止DoH升级,强制用户使用明文DNS。

TRR模式:彻底信任转移

Firefox采用Trusted Recursive Resolver (TRR)模式。浏览器内置一份"可信解析器"列表,默认情况下会绕过系统配置的DNS服务器,直接连接到这些可信解析器(如Cloudflare的1.1.1.1)。

2020年2月25日,Firefox开始为美国用户默认启用DoH,使用Cloudflare作为默认解析器。此举引发了轩然大波——企业网络管理员发现,他们精心配置的DNS策略(如屏蔽恶意域名、内网域名解析、家长控制)突然失效了。

Firefox为此设计了一套启发式规则来缓解冲突:

  • 检测到企业管理的设备时禁用DoH
  • 检测到家长控制相关域名被屏蔽时禁用DoH
  • 解析失败时回退到系统DNS

但这些规则并不完美。正如一位网络工程师在Reddit上抱怨的:“我们花了十年时间构建的企业DNS基础设施,被浏览器厂商一个版本更新就绕过了。”

企业网络的可见性危机

DoH对企业安全运营的影响是深远的。

传统的网络安全架构依赖于DNS层面的可见性。安全团队通过分析DNS查询日志可以:

  • 检测恶意软件与C2服务器的通信
  • 发现数据泄露的早期迹象
  • 执行合规策略(如屏蔽赌博网站)
  • 为内网服务提供域名解析

DoH使这一切变得困难。

SEI(Software Engineering Institute)在2021年发布的研究指出,DoH对企业网络可见性造成了三类核心影响:

  1. 监控盲区:传统DNS监控工具无法检测DoH流量
  2. 策略绕过:用户可以通过DoH绕过企业的内容过滤策略
  3. 恶意软件隐蔽信道:攻击者可以利用DoH隐藏恶意通信

2019年的Godlua事件只是冰山一角。后续研究发现,越来越多的恶意软件开始利用DoH进行C2通信。由于DoH流量与正常HTTPS流量无法区分,传统的网络防御工具对此束手无策。

CDN与地理位置路由的困境

DoH还带来了一个容易被忽视但影响深远的问题:地理位置路由的失效。

现代CDN(内容分发网络)依赖于DNS的EDNS Client Subnet (ECS)扩展来优化内容分发。当用户查询一个CDN托管的域名时,权威DNS服务器需要知道用户的大致位置,才能返回最近的服务器IP。

传统DNS架构中,本地递归解析器通常与用户地理位置接近,权威服务器可以根据解析器的IP推断用户位置。但当用户使用远程DoH服务(如1.1.1.1)时,这个推断就失效了——解析器可能位于地球另一端。

ECS试图解决这个问题:递归解析器在查询中附加用户IP地址的前缀信息(通常是/24),让权威服务器能够更准确地定位用户。但这又引发了新的隐私问题——用户的IP信息被暴露给了更多的权威服务器。

APNIC在2024年的研究发现,约12%的互联网用户在DNS查询中携带ECS信息,其中绝大多数(约90%)来自Google DNS服务。这种机制的复杂性在于:隐私保护与性能优化存在内在张力

DoT与DoH:技术路线之争

在加密DNS领域,DoH并非唯一选择。DNS over TLS (DoT)早在2016年就作为RFC 7858发布,两者采用了不同的技术路线。

quadrantChart
    title DoH vs DoT 特性对比
    x-axis "易于识别/阻止" --> "难以识别/阻止"
    y-axis "企业友好" --> "用户隐私优先"
    quadrant-1 "隐私优先但可管理"
    quadrant-2 "最大隐私保护"
    quadrant-3 "易于管理"
    quadrant-4 "企业优先但隐私受限"
    "传统DNS": [0.1, 0.1]
    "DoT (端口853)": [0.3, 0.6]
    "DoH (端口443)": [0.9, 0.9]

核心差异在于端口选择:

特性 DoT DoH
端口 853(专用端口) 443(与HTTPS共享)
协议 TLS over TCP HTTP/2 over TLS
可识别性 容易(专用端口+ALPN标识) 困难(与普通HTTPS无法区分)
可阻止性 网络层面可阻止 需要深度包检测或IP封锁
部署者偏好 网络运营商、企业IT 浏览器厂商、隐私倡导者

从网络治理角度看,DoT更"友好"——它保留了网络管理员对DNS流量的可见性和控制力。但这也意味着DoT更容易被审查者阻止。

在严格的网络治理环境下,DoH的"伪装性"反而成为用户突破限制的工具。当所有端口853的流量都被封锁时,端口443上的DoH仍然可以使用——除非封锁者愿意切断所有HTTPS流量,这基本上等于切断互联网。

性能考量:加密的代价

加密必然带来性能开销。但具体影响有多大?

2021年发表在ACM IMC上的研究提供了全球范围的测量数据:

  • 首查询延迟:DoH比明文DNS慢约65毫秒(中位数),主要源于TLS握手开销
  • 连接复用后:当HTTP/2连接建立后,后续查询的延迟差异降至10-30毫秒
  • 网络条件影响:在丢包率高的网络中,DoH/DoT可能比UDP DNS表现更好(TCP的重传机制比UDP超时更高效)

值得注意的是,不同DoH提供商的性能差异显著。Cloudflare凭借其广泛的anycast部署,在大多数地区表现最佳;而一些部署较稀疏的服务商,查询延迟可能显著增加。

研究还发现一个反直觉的现象:约8.8%的经济体在切换到DoH后,DNS查询延迟反而降低了。原因在于这些地区的本地DNS基础设施质量较差,远程DoH服务商反而提供了更快的响应。

未来的技术演进

DoH的故事并未结束。几个重要的发展方向值得关注:

DNS over QUIC (DoQ)

2022年,IETF发布了RFC 9250,定义了DNS over QUIC。QUIC协议基于UDP,避免了TCP和TLS的握手开销,理论上可以提供更低的延迟。测量研究表明,DoQ在延迟敏感场景下比DoH/DoT表现更好。

Oblivious DoH (ODoH)

Apple已经开始部署Oblivious DoH。其核心思想是通过代理转发DoH请求,使得DNS解析器无法获知用户的真实IP地址。这解决了传统DoH的一个核心隐私问题:用户IP与查询内容在同一处汇集。

Discovery of Designated Resolvers (DDR)

IETF ADD工作组正在开发DDR协议,允许网络向客户端通告其支持的加密DNS服务。这可能为SPAU和TRR模式提供一个折中方案:网络可以告诉客户端"我有一个安全的DNS服务",而不需要客户端盲目升级或绕过。

权衡与选择

DoH的争议本质上是一个价值排序问题。

对于个人用户,特别是在公共Wi-Fi等不受信任的网络环境下,DoH提供了实实在在的隐私保护。阻止ISP监控浏览记录、避免DNS劫持攻击,这些收益是真实的。

对于企业网络管理员,DoH代表着控制力的丧失。几十年构建的DNS层安全架构正在被绕过,而替代方案(如TLS解密)成本高昂且存在隐私争议。

对于网络治理者,DoH是一把双刃剑:它可以保护公民免受监控,也可以被恶意软件用来隐藏通信;它可以突破审查,也可以使合法的内容管控失效。

Paul Vixie曾批评DoH"是浏览器厂商试图接管网络基础设施的政治行为"。而Mozilla的工程师则反驳说:“我们不能因为企业需要监控,就让用户承担隐私泄露的风险。”

两种观点都有其合理性。技术本身不承载价值判断,但技术的部署方式确实反映了设计者的立场。DoH之所以引发如此激烈的争议,正是因为它触及了互联网治理中最敏感的神经:谁有权知道你访问了什么网站?

在这个问题上,没有完美的技术方案,只有基于具体场景的权衡选择。对于普通用户,启用DoH大概率是正确的选择;对于企业,可能需要配置策略来引导DoH使用本地安全解析器;对于安全研究人员,需要开发新的检测技术来应对DoH隐蔽的恶意流量。

DNS诞生于一个信任的环境。四十年后,我们仍在为那个时代遗留的安全债务买单。DoH是修复尝试之一,但它不是终点——下一个十年的挑战,或许是如何在保护隐私的同时,不丧失对恶意行为的可见性。


参考文献

  1. Hoffman, P. & McManus, P. (2018). DNS Queries over HTTPS (DoH). RFC 8484, IETF.
  2. Hu, Z. et al. (2016). Specification for DNS over Transport Layer Security (TLS). RFC 7858, IETF.
  3. Hounsel, A. et al. (2021). Measuring DNS-over-HTTPS performance around the world. ACM IMC 2021.
  4. Bortzmeyer, S. (2016). DNS Privacy Considerations. RFC 7626, IETF.
  5. Chhabra, R. et al. (2022). Measuring DNS-over-HTTPS performance around the world. APNIC Blog.
  6. SEI Carnegie Mellon. (2021). DNS Over HTTPS: 3 Strategies for Enterprise Security Monitoring.
  7. Deccio, C. et al. (2024). Privacy and DNS Client Subnet. APNIC Blog.
  8. Rescorla, E. (2022). DNS Security, Part IV: Transport security for DNS (DoT, DoH, DoQ). educatedguesswork.org.
  9. Qihoo 360 Netlab. (2019). Godlua Backdoor Analysis.
  10. Cloudflare. (2025). DNS over TLS vs. DNS over HTTPS.