通过


使用 DNS over HTTPS 进行 DNS 加密

传统 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 over HTTPS 通信流程的图表。

配置 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?

后续步骤