DoH 和 DoT 是什么?它们和传统 DNS 有什么区别?
简化版
DoT 是 DNS over TLS,通常跑在 853 端口;DoH 是 DNS over HTTPS,使用 HTTPS 承载 DNS 查询,通常走 443。它们都加密客户端到递归解析器之间的 DNS 查询,提升隐私和防篡改能力,但不等于 DNSSEC。
详细版
传统 DNS 多用 UDP 53,查询内容明文,容易被旁路观察或篡改。DoT/DoH 把 DNS 查询放进加密通道。
区别:
- DoT:专用 TLS 通道,端口通常是 853,网络侧容易识别和管控。
- DoH:走 HTTPS 443,和普通 Web 流量混在一起,更难被网络设备区分。
- 二者加密的是客户端到递归解析器这一段,不保证递归解析器到权威 DNS 全程加密。
- 它们解决隐私和链路篡改问题,不负责验证 DNS 记录真实性。
- DNSSEC 负责记录签名验证,DoH/DoT 负责传输加密。
面试要能说出:DoH/DoT 是加密传输,DNSSEC 是数据签名,二者互补。
完整版教学
一、传统 DNS 的隐私短板
传统 DNS 查询通常明文走 UDP 53。你访问 HTTPS 网站时,HTTP 内容被 TLS 加密,但 DNS 查询的域名仍可能被本地网络、运营商、公共 WiFi 观察到。
访问 https://example.com
DNS 查询 example.com -> 明文
HTTPS 请求内容 -> 加密
DoH/DoT 的目标是把 DNS 查询也放进加密通道,降低旁路窃听和篡改风险。
记忆钩子:HTTPS 保护网页内容,DoH/DoT 保护“你问了哪个域名”这件事的一段链路。
二、DoT:DNS over TLS
DoT 给 DNS 使用专门的 TLS 连接,标准端口通常是 853。它语义清晰:这就是加密 DNS。
Client -- TLS:853 --> Recursive Resolver
DNS query inside TLS
优点是容易独立管理、策略清晰;缺点是网络设备也容易识别 853 端口并阻断。企业网络如果要统一审计 DNS,DoT 流量相对容易纳入策略。
三、DoH:DNS over HTTPS
DoH 把 DNS 查询封装在 HTTPS 请求中,通常走 443。对网络中间设备来说,它看起来更像普通 HTTPS 流量。
POST /dns-query HTTP/2
Content-Type: application/dns-message
[DNS wire format body]
DoH 的优势是穿透性和隐私更好;争议是它可能绕开企业或家庭网络配置的 DNS 策略,集中到浏览器或应用指定的解析器。
四、DoH/DoT 和 DNSSEC 的关系
DoH/DoT 加密的是传输通道,DNSSEC 验证的是 DNS 数据本身。两者解决的问题不同。
| 能力 | DoH/DoT | DNSSEC |
|---|---|---|
| 查询内容加密 | 是 | 否 |
| 防链路篡改 | 加密通道内可防 | 通过签名发现篡改 |
| 验证记录来自权威区 | 否 | 是 |
| 隐藏递归解析器可见内容 | 否 | 否 |
使用 DoH 到不可信解析器,解析器仍能看到你查的域名;使用 DNSSEC 但走明文 DNS,旁路仍能看到查询内容。
五、它们不是端到端全链路加密
DoH/DoT 通常保护客户端到递归解析器这一段。递归解析器再去问根、TLD、权威 DNS 时,可能仍用传统 DNS,除非解析器和上游也采用加密方案。
Client --DoH/DoT--> Resolver --DNS/UDP--> Authoritative DNS
所以它不是“全互联网 DNS 都加密了”,而是把最靠近用户、最容易被本地网络观察的那段加密。
六、工程选型怎么考虑
个人隐私场景常偏向 DoH,因为 443 更容易通过网络。企业内网可能偏向集中 DNS 策略,担心应用各自使用 DoH 绕过审计。移动 App 也可能内置 DoH 解析器,但要处理降级、超时和本地解析策略。
| 场景 | 关注点 | 取舍 |
|---|---|---|
| 浏览器隐私 | 防本地网络窥探 | DoH 常见 |
| 企业网络 | 审计和安全策略 | 可能限制外部 DoH |
| 系统级 DNS | 统一配置 | DoT/DoH 都可 |
| App 内置解析 | 可控性 | 注意故障降级 |
七、常见误区与追问
- 误区:DoH/DoT 等于 DNSSEC。 前者加密传输,后者签名验证记录真实性。
- 误区:DoH 后 DNS 服务商看不到查询。 DoH 解析器仍能看到查询域名,只是本地链路旁观者更难看。
- 误区:DoH 一定比 DoT 更安全。 安全目标相近,主要差异在承载方式、可识别性和管控性。
- 追问:DoT 为什么常用 853? 它是专门的 DNS over TLS 端口,便于识别和策略管理。
- 追问:DoH 为什么争议更大? 它走 443,可能绕开网络管理员配置的 DNS 策略。
- 追问:DoH/DoT 能防 DNS 污染吗? 能降低本地链路篡改,但解析器本身仍需可信,最好配合 DNSSEC。
八、加强记忆
DoT 是“DNS 走专用 TLS”,DoH 是“DNS 伪装成 HTTPS 请求”。它们保护客户端到解析器的查询隐私;DNSSEC 保护记录真实性。面试回答一定把“加密传输”和“签名验证”分开。