DNS-over-HTTPS(DoH)如何通过 HTTP 代理工作

DNS-over-HTTPS(DoH)如何通过 HTTP 代理工作

多篇文章像这个声称 DoH 绕过了企业政策。

然而,在 HTTP 代理的情况下,任何 Web 请求都将通过 HTTP CONNECT 方法发送到代理。DNS 解析由代理服务器完成,而不是由在 CONNECT 方法中发送完整 URI 的个人计算机完成。

那么,DoH 对企业来说有何影响?

答案1

一般来说,当设置代理时,浏览器和其他互联网设备都会设置为先进入代理,然后再出去。

例如,假设您有一个 LAN,其 IP 地址192.168.1.0/24以及代理位于其中192.168.1.2

您的代理设置为流量必须先在代理上协商,然后才能到达网关。在非 DoH 环境中,您的通信可能如下所示:

  1. 您的浏览器询问:“的 IP 地址是多少stackoverflow.com?”
  2. 您的网络上的 DNS 服务器显示“这是192.168.1.2
  3. 然后你的浏览器将请求发送给代理
  4. 然后代理会询问 ISP“的 IP 地址是多少stackoverflow.com?”。
  5. 一旦它有了真实的 IP 地址,它就会协商您和 stackoverflow 之间的流量,执行代理所做的事情。

使用 DoH 时,情况会有所不同。启用 DoH 并使用 Cloudflare 作为 DoH 提供商后:

  1. 您的浏览器询问“的 IP 地址是多少cloudflare.com?”。
  2. 您的 DNS 服务器将会响应192.168.1.2,然后协商您和 cloudflare 之间的流量。
  3. 您的浏览器询问“的 IP 地址是多少stackoverflow.com?”。
  4. 当 Cloudflare 响应 IP 地址时,您的浏览器将执行以下两项操作之一:A) 它将尝试直接连接 Cloudflare 的 IP 地址,该地址可能无法从您的内部网络路由。B) 完全绕过代理,该代理的安装是为了保护内部网络免受恶意网站的攻击。

企业可能确实有理由不让设备通过代理,内容管理只是其中之一。请记住,企业可能会在其网络边缘启用 DoH,以便加密这些查询。但他们仍然希望从其网络内部控制流量,这就是为什么在设备/用户级别启用 DoH 并不理想。

答案2

DoH 肯定无法通过代理工作,因为 HTTP(S) 代理协议不是为客户端的名称解析而设计的。

“代理”是 HTTP 的消息转发代理(RFC 7230)。它只是在用户代理和服务器之间转发请求和响应 HTTP 消息。

相关内容