是和不是。要了解原因,我们需要了解 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 可以保护什么(只要它有效),以及即使它完美运行也不能保护什么。