站点上的 HTTPS 加密是否会阻止 NSA 知道您访问了其域/ URL?

信息安全 tls 隐私 tcp 国家安全局 监视
2021-08-28 19:41:14

我询问 HTTPS 是否保护您的 Internet 活动的元数据免受像 NSA 这样的主干上的窃听实体的原因是以下情况:

假设我正在浏览加密文件https://xsite.com/page.html,它会调用未加密的 javascript 库http://ysite.com/library.js或外部图像http://ysite.com/image.jpg

此跨站点请求的 GET 请求是否将我正在访问的加密页面的 URL 传递到未加密的 ysite.com 的服务器,因此,如果我使用像RequestPolicy这样的浏览器插件阻止跨站点请求,我会阻止 NSA 知道我的 IP 地址访问过https://xsite.com/page.html(甚至整个域 xsite.com)?

或者,这样的隐私问题是否有争议,因为 HTTPS实际上并没有https://xsite.com隐藏(对骨干窃听者)您的 IP 地址访问过(或什至/page.html)?

4个回答

此跨站点请求的 GET 请求是否将我正在访问的加密页面的 URL 传递给未加密的 ysite.com 的服务器

不会。ysite.com 不会知道您正在访问的页面的 URL。xsite.com 不会出现在您向 ysite.com 提出的任何请求中。

如果我使用 RequestPolicy 之类的浏览器插件阻止这样的跨站点请求,我会阻止 NSA 知道我的 IP 地址被访问过https://xsite.com/page.html(甚至整个域 xsite.com)?

每个人都会知道您访问过 xsite.com,因为 HTTPS 不加密主机名。这是因为您需要主机名来建立连接。但是,无法判断您是否访问过page.html,或者page2.html因为路径将被加密。

但是,如果 NSA 知道它http://ysite.com/image.jpg仅嵌入在page.html并且您最近进行了 DNS 查询并连接到xsite.com,他们可以猜测您可能访问过https://xsite.com/page.html

编辑:所有窃听者都可以看到 URL 路径的大致长度。因此,如果xsite.com只有几个页面,攻击者也有可能猜测您正在访问哪个页面。

有关 HTTP 流量分析的其他资源:在 HTTPS 交易期间从单个 IP 访问一个或多个网站的 URL 是否可区分?

是和不是要了解原因,我们需要了解 Internet 的结构方式。

Internet 不是由单一协议组成的,而是由许多相互叠加的协议组成的您可以根据协议在堆栈中的位置对协议进行分类,这样做时出现的主题称为

它的工作原理有两种相互竞争的模型,我将简要讨论 OSI 模型的最低层:这不是 IP 人员使用的模型,但它为我们提供了一些有趣的基础。根据 OSI 人员的说法,最低层是物理层:你用来发送信号的实际东西。您的计算机现在使用的物理层可能是“铜线”或“无线电波”,但还有其他的:过去人们使用过光纤电缆、声波、激光束等. 作为愚人节的玩笑,有人甚至想出了一种用信鸽来做这件事的方法,虽然这不是任何人都想使用的东西,但它确实有效。

TCP/IP 人员使用的最低模型(OSI 模型中的第二低)称为链路层物理层为我们提供了两台机器之间的直接连接,但它没有说明如何通过该连接获取信号:这就是链路层的含义 以太网是当今常见的链路层协议,适用于以下机器通过电缆永久连接,Wi-Fi(源自以太网)对无线电波做同样的事情。PPP 是当今最流行的调制解调器链路层协议。还有其他链路层协议。

但是这个问题真正有趣的是第二层和第三层第二层称为网络层互联网层(注意小I;这与互联网不同)。这是生活的信号试图两台机器之间获得的信号直接相连,使用该机器的链条直接连接。IP,即互联网协议,位于这一层;这是IP地址的来源。

第三层——传输层——是我们停止谈论信号并开始谈论数据的地方:给定信号,我们开始从中产生连贯的东西。如果您听说过 TCP 和 UDP,这就是它们所在的地方:TCP 允许您将数据包链接到会话中,而 UDP 是一种更底层的协议,适用于那些并不真正需要 TCP 基础设施的时候。传输层的工作是让连接两端的主机以连贯的方式进行通信。

第四层——应用层——是大多数激动人心的动作发生的地方:它建立在传输层的基础设施之上,以完成我们通常认为的网络任务。HTTP 是构建 Web 的协议,位于这一层;FTP 和 BitTorrent 文件传输协议、电子邮件协议的 SMTP/POP/IMAP 三重奏、IRC 聊天协议以及许多其他协议也是如此。

TLS(及其前身 SSL)位于传输层TLS 甚至由此得名:传输层安全性。它为应用层协议(如 HTTP)提供了一个通用的基础设施来相互通信,为此它运行良好。

因为 TLS 对 HTTP 进行加密,所以它(理论上)可以保护 URL 等数据。但是,您仍然通过 IP 发出该请求(包括您连接到的服务器的 IP 地址),并且 TLS 在堆栈中的位置太高而无法对其进行加密因此,如果您从该站点所在的同一主机请求站点,则 NSA(或其他代理)可以通过查看您在 Internet 层发送的内容来确定您正在连接的主机。他们无法获取 URL 的其余部分,因为这是在 HTTP(TLS 加密)内部处理的,但他们可以获得主机。

如果您使用的是 HTTP 隧道,则可以部分绕过这个. 如果你通过另一个 HTTP 连接建立一个 HTTP 连接,那么你就不会直接连接到 xsite.com 或 ysite.com:而是连接到 zsite.com,告诉它你想连接到这些其他地方,它会让对你的要求。因为 HTTP 隧道存在于 HTTP 中,所以 TLS 会保护它:NSA 可以检测到您连接到 zsite.com,但他们无法提供任何其他信息,包括您要求 zsite.com 连接到哪些站点。当然,最终他们会赶上并开始关注 zsite.com 所做的事情,但首先他们必须注意。

这些都不涉及破坏 TLS 的实用性。我只是想概述一下 TLS 可以保护什么(只要它有效),以及即使它完美运行也不能保护什么。

如果您通过 HTTP 访问外部 javascript,那么 NSA 可能会在您对该 javascript 的请求的中间人,并提供一个黑客版本,将您的信息转发给他们,或者更糟。

但是,有可能会发现这样的攻击,因此他们将根据他们希望收集的信息的价值以及目标检测到攻击的可能性来决定是否使用它。

对于高价值目标,他们还可能采用其他技术,例如:

  • 在您的场所或在 xsite.com 上安装监控设备
  • 利用安全漏洞访问您的系统或 xsite.com,可能来自他们的零日漏洞库,或者可能是因为你们中的一个人未能保护您的系统
  • 颁发伪造的 SSL 证书并模拟您与 xsite.com 的连接 - 例如,使用受损的 CA
  • 派内奸渗透 xsite.com,或勒索现有员工为他们服务
  • 已分类且尚未泄露的技术
  • 用一袋门把手殴打你,直到你告诉他们你访问了哪些网站

嗅探您的流量的数据包将不到您使用 HTTPS 请求的主机名。HTTPS 只不过是简单地使用 TLS 加密整个套接字。TLS 握手完成后,不会通过该套接字以纯文本形式发送任何内容(除非出于某种奇怪的原因,TLS 会协商它。)但是,他们将看到请求发送到的 IP 地址和端口号。而且,从那里,确定谁拥有它通常是微不足道的。此外,只有一个域名可以在给定的 IP 地址和端口号组合上使用 HTTPS,因此他们将能够确定您访问的域名,尽管实际上无法从网络上嗅出它。当然,他们也可以在您的浏览器在启动 HTTPS 连接之前发送的未加密 DNS A 查找请求(以及相应的回复)中嗅探到它。总而言之:HTTPS(和一般的 TLS)只是保护通信的机密性、原始完整性和数据完整性。它不会使您的通信匿名。事实上,它的设计目的是,至少可选地,通过使用证书执行服务器和客户端的相互身份验证来做与此完全相反的事情。

如何解决这个问题:使用TorTor 旨在提供机密性和匿名性。