为什么 Tor 比代理更安全?

信息安全 隐私 代理人 匿名
2021-08-30 07:37:13

如果我使用 Tor 路由器浏览常规互联网,我的流量必须通过出口节点离开 Tor 网络。显然出口节点可以看到最初发送的数据。

  1. 这是真的?
  2. 如果对手想要对我进行匿名化,他们是否只需要传唤出口节点所有者或破解它?
  3. 这是否意味着代理几乎一样安全,因为上述适用于两者?
4个回答

Tor 中,用户(您)为其数据选择通过多个节点的随机路径。路径中的第一个节点知道您的 IP 地址,但不知道您发送的内容或位置。最后一个节点(“退出节点”)知道目标服务器地址并查看数据(当然,除非使用SSL),但不知道您的 IP 地址。路径中的每个节点只知道路径中前一个和下一个节点的地址。

如果政府打算揭开 Tor 的隐私,那么最好的机会是设置和运行大量节点(当然,不会说“由友好的政府提供”)。如果您的计算机随机选择一条由政府控制的节点开始以另一个政府控制的节点结束的路径,那么两个节点都可以很容易地关联它们的数据并显示您的 IP 和目标服务器(如果没有 SSL,则发送数据)。相关性很简单,因为虽然加密隐藏了数据的内容,但它并没有隐藏长度如果节点 A 看到一个 4138 字节的请求从您的 IP 进入 Tor 网络,而节点 B 在下一秒内看到一个 4138 字节的请求退出 Tor 网络并发往服务器www.example.com,然后节点 A 和节点 B,通过整理他们的数据,将推断您的 IP与与 的通信有关www.example.com

可以很容易地证明,如果敌对方没有窃听或劫持入口和出口节点,那么您的隐私就会得到保护。但如果他们这样做了,那么隐私就会像正午阳光下的晨雾一样蒸发。

  1. 不,出口节点只能解密消息并发出请求,但他不知道原始主机在哪里,唯一知道人在哪里的节点是第二个节点。这是由于 Tor 使用了分层加密。每个节点只知道下一跳和上一跳,而不知道整个路径。
  2. 不,因为 1
  3. 不,因为 1

Tor 的工作原理在该网站上的一篇博客文章中进行了描述:

http://security.blogoverflow.com/2012/04/tor-exploiting-the-weakest-link/

我想在这里向您指出这个答案,它简单地描述了 Tor 的工作原理。

出口节点不知道数据的来源,这就是 Tor 的全部意义所在。Tor 的关键是数据在通过 Tor 网络时经过的多层加密。

另一方面,使用代理涉及您的机器和代理服务器之间的直接连接。破坏代理可以很快揭示谁连接到它。

我知道这已经被回答了,但是很多重要的细节都被遗漏了。

洋葱路由的工作原理

洋葱路由是一种匿名技术,其中路径是通过一组服务器随机选择的,这样每个连接都会走不同的路由。守卫、中间和出口的特定中继由 Tor 客户端随机选择。从守卫到出口的路径称为电路,Tor 客户端会记住这一点。守卫被选择一次并且长时间保持不变(如下所述),而中间和出口定期改变(每十分钟一次,或者当建立新连接时)。不可预测的路径和可供选择的大量中继大大提高了匿名性。

Tor 的工作原理
(来源:torproject.org

当您通过 Tor 发送数据时,数据会使用三个密钥进行加密。每一层都指定要使用的后续中继(由您的客户端随机选择):

  • Tor 浏览器等应用程序通过 Tor 请求网页,并将其告知客户端。此请求使用 SOCKS5 协议在您的本地网络上完成。
  • Tor 客户端使用三个密钥加密数据,并与一个不同的随机中继共享每个密钥。每层加密的也是下一个中继的地址。然后将其发送给警卫。
  • Guard 接收数据并使用其密钥剥离第三层。它将数据转发到第三层中指定的中继,即中间中继。
  • 中间中继接收数据并使用其密钥剥离第二层。它将数据转发到第二层中指定的中继,即出口。
  • 出口接收数据并使用其密钥剥离最终(第一)层。它检查目标站点并将现在完全解密的数据转发给它。
  • 目标站点接收数据并向原始 IP(出口)发送响应。

现在流量已成功发送到目的地,但必须返回。Tor 中继在内存中保存与它通信的中继,因此当它从该中继获得响应时,它知道将其发送到哪里。这样,中间中继知道守卫要求它向出口发送数据,并且它会记住这一点,因此当同一个出口将数据返回给它时,它可以将其转发给守卫:

  • 出口收到响应,添加前一个中继(中间)的目的地,用它的密钥对其进行加密,然后将其发送到中间中继。
  • 中间中继接收此信息,添加前一个中继(守卫)的目的地,并使用其密钥添加另一层加密,然后将其发送给守卫。
  • 守卫收到此信息并使用其密钥添加第三层加密,然后将数据提供给您,即 Tor 客户端。
  • Tor 客户端收到此信息并剥离所有加密层。然后它会响应任何请求它的应用程序(例如 Tor 浏览器)。

这是洋葱路由背后的原始概念所有这一切都在一两秒钟内发生。

洋葱路由图

谁能看到什么?

我实际上写了这个答案,因为没有人链接到 Tor 上的强制性 EFF 图。这描述了每个兴趣点以及给定对手可以观察到的内容:

Tor 和 HTTPS

从继电器的角度来看,三件事是真实的:

  • 守卫知道你是谁(你的 IP),但不知道你在做什么(你的目的地)。
  • 出口知道你在做什么,但不知道你是谁。
  • 中间节点对你一无所知。

匿名源于这样一个事实,即没有一个实体可以知道你是谁以及你在做什么。

针对 Tor 的流量分析攻击

为了使用 Tor 去匿名化,假设没有直接针对您的攻击(软件利用、后门硬件、OPSEC 故障),一个知道您是谁的实体和一个知道您在做什么的实体必须勾结。在图中,该对手被标记为 NSA。黑色虚线表示数据共享,这意味着可以使用精确的时序信息来关联您。这称为流量分析攻击,当您的对手监控连接的两端时,就会存在风险。Tor 只有有限的能力来防止这种情况发生,但幸运的是它通常已经足够了,因为有太多的流量需要融合。考虑以下事件时间表:

  • ISP1203.0.113.42在 t+0 看到发送了 512 个加密字节(253 个未加密)的数据。
  • ISP2在 t+4example.com收到一个 253 字节的请求。/foo.html
  • ISP2example.com在 t+5 看到发送了 90146 字节的回复。
  • ISP1203.0.113.42在 t+9 看到收到 90424 加密字节回复(90146 未加密)。

ISP1 是您和守卫之间的任何 ISP,而 ISP2 是出口和目的地之间的任何 ISP。如果这一切都可以被监控到,并且 ISP1 和 ISP2 串通一气,那么通过足够的计算,可以得出 IP 地址 203.0.113.42 被访问的结论example.com/foo.htmlTor 在几个方面使这变得更加困难。首先,持久防护通过向网络添加大量恶意防护来降低对手能够观察到步骤 1 和 4 的机会。其次,Tor 以每个 512 字节的单元发送流量(或者至少以前是。现在是514 字节),因此第一步将涉及发送 512 个字节,但第 2 步仍将显示收到 253 个字节。第三,Tor 经历的跳数增加了延迟的抖动。正因为如此,每个后续时间戳都会有一个很小但随机的时间。这使得很难将在相似时间传输相似数据量的其他连接与您的连接区分开来。

有许多针对 Tor 的学术攻击依赖于流量分析,但它们总是假设一个小世界,其中延迟都是固定的和确定的。尽管在每个网络都充满噪音的世界中,这些攻击并不适用于实际的 Tor 网络,但这些攻击往往会被媒体报道。

针对代理的流量分析攻击

这种攻击很难对付 Tor,因为攻击者可能无法同时访问 ISP1 和 ISP2。即使他们这样做了,其中之一的基础设施可能不足以记录高分辨率时间戳(例如,由于 NetFlow 记录的粒度降低),并且它们的内部时钟可能略有不同。然而,使用代理,这种攻击更容易实施。即使您完全信任代理提供商,这也是一个问题。考虑这个备选的事件时间线,其中 ISP1 代表代理服务本身的 ISP:

  • ISP1203.0.113.42在 t+0 看到发送 253 字节的数据。
  • ISP1在 t+1看到代理服务器向example.comfor发送了一个 253 字节的请求。/foo.html
  • ISP1example.com在 t+2 看到发送一个 90146 字节的回复。
  • ISP1203.0.113.42在 t+3 收到一个 90146 字节的回复。

有了这些信息都在 ISP1 手中,很容易得出 203.0.113.42 请求的结论example.com/foo.html没有填充,几乎没有抖动(因为延迟只是代理服务在内部转发请求的时间)。正因为如此,这个单一的 ISP 知道您谁以及您在做什么,它所要做的就是将它们来自同一个人的事实联系起来。简单的。这是代理的主要技术缺点,即使它们通常粗略的性质和不诚实的历史被忽略。