传统 DNS 使用未加密的 UDP 或 TCP 消息并通过端口 53 进行传输,这使得 DNS 流量容易受到攻击者的被动监视、流量分析和主动操控。 DNS 加密可防止在通过网络传输时观察到、修改或篡改 DNS 查询和响应流量。
基于 HTTPS 的 DNS(DoH)是一种基于标准的机制,通过封装 HTTPS 中的 DNS 消息来加密 DNS 流量,并使用传输层安全性(TLS)提供机密性和完整性。 通过加密 DNS 流量,DoH 有助于防止窃听、中间人攻击以及未经授权的 DNS 查询和响应检查。
通过 HTTPS 的 DNS 的工作原理
通过 HTTPS 的 DNS 不会更改基本的 DNS 查询和响应模型。 而是更改了通过网络传输 DNS 消息的方式。 在 DNS 服务器上启用 DoH 时,DoH 将成为额外的加密通信选项,除非显式禁用该功能,否则 DNS 服务器将继续回答传统的 DNS 查询。
启用 DoH 时:
DNS 服务器侦听 HTTPS 流量。
将 支持 DoH 的客户端(例如 Windows 11 客户端) 配置为对 DNS 服务器使用加密查询。
DoH 客户端建立与 DNS 服务器的 TLS 连接。
客户端在 HTTPS 请求内发送 DNS 查询。
DNS 服务器照常处理查询。
DNS 响应在 HTTPS 响应中返回。
DNS 服务器通过 HTTPS 进行 DNS (预览版)
重要
Windows Server 上支持 DoH (DNS over HTTPS) 的 DNS 服务器目前处于预览版。 这些与预发行产品相关的信息在发布前可能进行重大修改。 Microsoft 不对此处提供的信息作任何明示或默示的担保。
从 Windows Server 2025 的 2026-02 安全更新(KB5075899)开始,可以在 DNS 服务器服务上启用基于 HTTPS(DoH)的 DNS,以加密支持 DoH 的客户端和 DNS 服务器之间的 DNS 流量。
DoH 通信流的示例如下图所示。
配置 DNS 服务器的 DNS over HTTPS 时,预览期间请考虑以下事项:
上游 DNS 通信(转发器、条件转发器、权威服务器)未加密。
DNS 区域传输仍未加密。
默认情况下,DNS 动态更新保持未加密状态。
无法创建仅与 DoH 查询匹配的 DNS 查询筛选器。
具有传输协议查询筛选器的策略与 DoH 查询不匹配。 例如,包含传输协议筛选器
EQ, TCP的策略与 DoH 不匹配。
使用 HTTPS 的 DNS 安全优势
通过 HTTPS 的 DNS 提供以下安全和隐私优势:
保密性。 DNS 查询和响应已加密,从而阻止被动监视。
完整性。 TLS 可防止在传输过程中修改 DNS 消息。
身份验证。 DNS 客户端可以使用标准 HTTPS 证书验证来验证 DNS 服务器的标识。
对流量分析的抵制。 DNS 流量与其他 HTTPS 流量混合,降低了遭受特定于 DNS 的筛选或操控的风险。 此方法可提高隐私和拦截的抵抗力。
基于 HTTPS 协议和标准的 DNS
IETF 在 RFC 8484 - 基于 HTTPS 的 DNS 查询(DoH)中通过 HTTPS 定义 DNS。
RFC 8484 指定如何使用 HTTP over TLS 发送和接收 DNS 消息。 DoH 标准同时支持 GET 和 POST 方法,并定义 DNS 消息的媒体类型。 此方法允许 DNS 流量受益于新式 HTTPS 功能,例如加密、身份验证和连接重用。
此外,DoH 标准允许服务器实现自由配置服务器的侦听 URI 和端口,从而在不同的网络环境中实现灵活部署。
DNS 加密和 DNSSEC
DNS 加密(如 DoH 和 DNSSEC)解决了不同的威胁模型,并且是互补技术。 DNS 加密可保护网络上的 DNS 流量,而 DNSSEC 可确保以加密方式验证 DNS 数据的完整性,并且来自权威源。
通过将 DoH 与 DNSSEC 结合使用,可以将加密传输与经过身份验证的 DNS 数据相结合来深入防御。 有关 DNSSEC 的详细信息,请参阅 什么是 DNSSEC?