哪些方有权访问通过 HTTPS 协议访问的网站的*完整*请求 URL?

信息安全 tls 互联网 网站 网络 网络服务商
2021-08-29 06:58:00

哪些方可以访问通过 HTTPS 协议访问的网站完整请求 URL?

以下是我能想到的一些可能性,可能还有更多:

  1. 访问网站的本地设备
  2. 路由器
  3. 调制解调器
  4. 本地网络提供商(有线或无线)
  5. 互联网服务提供商
  6. 沿着互联网到目的地的每一跳
  7. 大哥
  8. 目标 ISP
  9. 目标本地网络提供商(通常是有线的,但可以是无线的)
  10. 目的地调制解调器
  11. 目的路由器
  12. 目的主机

请注意,此问题专门针对完整请求的 URL,其中包括正在访问的特定页面以及通过 URL 传递的所有参数。

此外,是否有任何步骤无法访问整个 HTTPS 请求标头?

1个回答

只有 TLS 端点1可以读取完整的 URL,因为 HTTPS 提供端到端加密。

HTTPS 包装了完整的 HTTP 协议,包括请求行、请求/响应正文和所有标头。请求 URL 只是 HTTP 的一部分,它与所有其他组件一起被加密。如果任何一方能够读取 URL,他们自然也可以访问完整的 HTTP 流量。

需要明确的是,仍有很多方式可能会无意中泄露 URL:

  • 通过单击链接离开站点时,默认情况下,您的浏览器将发送一个Referer包含先前 URL 的标头 - 因此会向您正在浏览的站点披露。

  • 浏览器插件可能会将您访问的 URL 发送到某处进行分析或出售。

  • 执行“合法”HTTPS 拦截(意味着您主动安装并信任其根证书)的安全产品或企业防火墙可以读取您的 HTTP 流量,从而了解 URL。

  • 由于 HTTPS SNI和客户端的 DNS 查询,目标站点的主机(但不是完整的 URL)通常会被泄露给潜在的窃听者。

但是假设一个正确的设置没有任何侧通道泄漏,请求 URL 就像传输的其他所有内容一样通过 TLS 隧道。

1在您的示例中,这些很可能是本地设备 (1.)目标主机 (12.)正如@Bob 指出的那样,TLS 连接也可以在负载均衡器或其他形式的代理处结束。