Skip to content

前言 | DNS加密

什么是DNS?

域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

DNS over UDP/TCP/53 (Do53)

从 1983 年起源到最近,DNS 主要回答 UDP 端口 53 上的查询。此类查询包括从客户端以单个 UDP 数据包发送的明文请求,响应为 从服务器以单个 UDP 数据包发送的明文回复。 当应答的长度超过 512 字节并且客户端和服务器都支持 DNS 扩展机制 (EDNS) 时,可能会使用更大的 UDP 数据包。 DNS-over-UDP 的使用受到限制,其中包括缺乏传输层加密、身份验证、可靠传递和消息长度。 1989 年,RFC 1123 为 DNS 查询、回复,特别是区域传输指定了可选的 TCP 传输。 通过长响应的分段,TCP 允许更长的响应、可靠的传递和重用客户端和服务器之间的长期连接。

DNS over TLS (DoT)

加密 DNS 的 IETF 标准于 2016 年出现,利用传输层安全(TLS)来保护整个连接,而不仅仅是 DNS 有效负载。DoT 服务器侦听 TCP 端口 853。RFC 7858 指定可以支持机会加密和认证加密,但没有强制服务器或客户端认证。

DNS over HTTPS (DoH)

2018 年引入了 DNS 查询传输的竞争标准,通过 HTTPS 隧道传输 DNS 查询数据(进而通过 TLS 传输 HTTP)。DoH 被推广为对网络更友好的 DNS 替代方案,因为与 DNSCrypt 一样,它在 TCP 端口 443 上传输,因此看起来类似于网络流量,尽管它们在实践中很容易区分。 DoH 因相对于 DoT 降低用户匿名性而受到广泛批评。