DNS 安全:DoH 与 DoT
了解 DNS 为何会造成隐私漏洞,以及 DNS-over-HTTPS 和 DNS-over-TLS 如何保护查询
DNS 安全:DoH 与 DoT 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
DNS 查询以明文传输
域名系统将人类可读的域名转换为 IP 地址。标准 DNS 查询使用 UDP 的 53 端口,并且完全未加密。您的设备查询的每个域名都会对路由器、ISP 以及任何能够监测网络路径的人可见。这意味着,即使您访问的每个网站都使用 HTTPS,您的浏览活动仍然会暴露。
ISP 会记录所有 DNS 查询
互联网服务提供商(ISP)通常会记录所有客户的 DNS 查询,用于网络监测,也用于遵守许多司法管辖区的数据保留法律。这些记录构成了每个访问过的网站、每次访问时间以及访问频率的详细档案。ISP 曾将这些数据出售给广告商,也曾仅凭 DNS 记录响应政府对用户浏览历史的请求。
DNS 劫持攻击
能够截获或重定向 DNS 流量的攻击者可以篡改响应,将用户引向恶意服务器。DNS 劫持可能发生在路由器层面(路由器遭到入侵时),也可能通过提供攻击者控制的 DNS 解析器地址的恶意 DHCP 服务器发生,或由 ISP 层面的重定向引起。用户输入合法域名后,可能会在毫无察觉的情况下被引导至钓鱼网站。
恶意 DHCP DNS 注入
设备加入网络时,会通过 DHCP 请求配置;DHCP 会提供 IP 地址、网关和 DNS 服务器。位于本地网络中的攻击者如果运行恶意 DHCP 服务器,就可以比合法服务器更快地响应,并提供自己的 DNS 服务器地址。受害者后续发出的所有 DNS 查询都会发送到攻击者的解析器,使攻击者能够在整个会话期间监视查询并篡改响应。
DNS 缓存投毒:Kaminsky 攻击
2008 年,研究人员 Dan Kaminsky 披露了 DNS 中的一个严重漏洞。攻击者可以发送数千个带有随机事务标识符的伪造 DNS 响应,在解析器收到合法响应之前,利用统计概率破坏其缓存。这被称为生日攻击式缓存投毒。缓存遭到破坏后,该解析器的所有用户都会被重定向到攻击者控制的 IP 地址。
DNSSEC:基于密码学的 DNS 身份验证
DNSSEC(DNS 安全扩展)通过为 DNS 记录添加密码学签名,解决缓存投毒和响应伪造问题。每个 DNS 区域都会使用私钥为其记录签名;解析器则使用发布在 DNSKEY 记录中的对应公钥验证签名。伪造或修改过的响应会无法通过签名验证,并被拒绝。DNSSEC 建立了从 DNS 根区域一直延伸到单个域名记录的信任链。
基于 TLS 的 DNS:加密查询
基于 TLS 的 DNS(DoT)会在 853 端口上,将 DNS 查询封装在标准 TLS 连接中。解析器和客户端会先完成 TLS 握手,然后才发送 DNS 查询,从而加密查询(包括域名)和响应。DoT 可以防止 ISP 和网络观察者进行被动监视。由于使用专用端口 853,防火墙可以识别 DoT;某些网络会利用这一点阻止 DoT。
基于 HTTPS 的 DNS:与网页流量混合
基于 HTTPS 的 DNS(DoH)会将 DNS 查询编码为 443 端口上的 HTTPS 请求,该端口也用于所有网页流量。由于 DoH 流量与普通 HTTPS 流量无法区分,防火墙很难在不同时阻止所有 HTTPS 流量的情况下阻止它。Firefox、Chrome 和 Windows 11 原生支持 DoH,Cloudflare(1.1.1.1)和 Google(8.8.8.8)等提供商也提供 DoH 端点。
加密 DNS 的隐私收益
使用 DoH 或 DoT 时,您的 DNS 查询会在设备与 DNS 解析器之间传输的过程中进行加密。ISP 无法读取或记录您查询的具体域名。恶意 DHCP 攻击无法注入会读取您流量的解析器,因为合法解析器的地址已被硬编码。网络攻击者也无法通过被动截获来实施 DNS 劫持。不过,DNS 解析器自身仍然可以看到您的所有查询。
ISP 对 DoH 的抵制与标准化争议
ISP 曾游说反对强制部署 DoH,因为这会将 DNS 可见性从 ISP 转移到少数大型科技公司的解析器。UK 的 ISP 向议会投诉,称 DoH 会妨碍家长控制过滤。网络管理员认为,集中式 DoH 会破坏企业 DNS 策略和分视图 DNS 配置。IETF 已在 RFC 8484 中将 DoH 标准化,但部署政策仍存在争议。
DNSSEC 部署的挑战
DNSSEC 要求域名所有者为其区域签名,并要求解析器执行验证。密钥轮换(在不中断服务的情况下更换签名密钥)十分复杂,并且已经导致主要顶级域发生服务中断。.com 和 .net 顶级域支持 DNSSEC,但只有少数单独域名完成了签名。DNSSEC 不会加密查询;只有 DoH 和 DoT 能够提供查询隐私。
基于 HTTPS 的 DNS
在限制性防火墙会阻止非标准端口的环境中,为什么 DoH 比 DoT 更受青睐?
DNS 安全:关键要点
UDP 53 端口上的标准 DNS 未加密,并且会被 ISP 记录。DNS 劫持和 Kaminsky 缓存投毒攻击利用了这一弱点。DNSSEC 添加密码学签名以防止响应伪造,但不会加密查询。853 端口上的 DoT 和 443 端口上的 DoH 会加密传输中的 DNS 查询。DoH 比 DoT 更难被阻止。加密 DNS 会将信任从 ISP 转移到解析器运营者,但并不会消除信任要求。
用 AI 导师学习 Cryptology Academy — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 67
- 课程
- 261
常见问题解答
「DNS 安全:DoH 与 DoT」课时是免费的吗?
是的 — 「DNS 安全:DoH 与 DoT」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「DNS 安全:DoH 与 DoT」这节课中我会学到什么?
了解 DNS 为何会造成隐私漏洞,以及 DNS-over-HTTPS 和 DNS-over-TLS 如何保护查询 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「DNS 安全:DoH 与 DoT」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 明文协议:攻击者能看到什么
- 数据包捕获的工作原理
- 加密流量分析
- DNS 安全:DoH 与 DoT