在标准的 DNS over HTTPS (DoH) 中,您的 DNS 查询虽已被加密,但解析器仍然能看到您的 IP 地址和您查询的域名。Oblivious DNS over HTTPS (ODoH) 增加了一个隐私保护层,使得没有任何一个实体可以同时看到这两个部分的信息。
ODoH 在您的设备和 DNS 解析器之间引入了两个角色:
- Proxy(代理) — 将您的加密 DNS 查询转发给目标。代理可以看到您的 IP 地址,但由于查询已加密,它无法读取该查询。
- Target(目标) — 接收并解密 DNS 查询,然后将其发送给上游解析器。目标可以读取查询,但它只能看到代理的 IP 地址,看不到您的 IP 地址。
由于查询在到达代理之前就被加密了,且目标永远不会获知您的 IP 地址:
- 代理对 DNS 消息没有任何可见度,无法识别、读取或修改客户端发送的查询或目标返回的答案。
- 目标只能访问加密查询和代理的 IP 地址,而无法看到客户端的 IP 地址。
- 只有预期的目标能够读取查询内容并生成响应,该响应也同样会被加密。
这意味着,只要代理和目标不勾结,就没有任何一个实体能同时访问 DNS 消息和客户端 IP 地址。客户端完全控制着代理和目标的选择,因此您可以选择由不同组织运营的代理和目标,以降低勾结风险。
客户端使用混合公钥加密(HPKE ↗,一种使用接收者的公钥对其加密消息的标准)为目标加密其查询。目标的公钥是通过 DNS 获取的,它被打包到一个 HTTPS 资源记录中,并受到 DNSSEC 的保护。
Cloudflare 1.1.1.1 通过作为目标来支持 ODoH,可通过 odoh.cloudflare-dns.com 访问。
要进行 ODoH 查询,您可以使用开源客户端,例如 dnscrypt-proxy ↗。
iCloud 专用代理 (iCloud Private Relay) ↗ 采用了类似的隐私分离原则,并使用 Cloudflare 作为其合作伙伴之一 ↗。