如果我使用 Tor 路由器浏览常规互联网,我的流量必须通过出口节点离开 Tor 网络。显然出口节点可以看到最初发送的数据。
- 这是真的?
- 如果对手想要对我进行匿名化,他们是否只需要传唤出口节点所有者或破解它?
- 这是否意味着代理几乎一样安全,因为上述适用于两者?
如果我使用 Tor 路由器浏览常规互联网,我的流量必须通过出口节点离开 Tor 网络。显然出口节点可以看到最初发送的数据。
在Tor 中,用户(您)为其数据选择通过多个节点的随机路径。路径中的第一个节点知道您的 IP 地址,但不知道您发送的内容或位置。最后一个节点(“退出节点”)知道目标服务器地址并查看数据(当然,除非使用SSL),但不知道您的 IP 地址。路径中的每个节点只知道路径中前一个和下一个节点的地址。
如果政府打算揭开 Tor 的隐私,那么最好的机会是设置和运行大量节点(当然,不会说“由友好的政府提供”)。如果您的计算机随机选择一条由政府控制的节点开始并以另一个政府控制的节点结束的路径,那么两个节点都可以很容易地关联它们的数据并显示您的 IP 和目标服务器(如果没有 SSL,则发送数据)。相关性很简单,因为虽然加密隐藏了数据的内容,但它并没有隐藏长度。如果节点 A 看到一个 4138 字节的请求从您的 IP 进入 Tor 网络,而节点 B 在下一秒内看到一个 4138 字节的请求退出 Tor 网络并发往服务器www.example.com
,然后节点 A 和节点 B,通过整理他们的数据,将推断您的 IP与与 的通信有关www.example.com
。
可以很容易地证明,如果敌对方没有窃听或劫持入口和出口节点,那么您的隐私就会得到保护。但如果他们这样做了,那么隐私就会像正午阳光下的晨雾一样蒸发。
Tor 的工作原理在该网站上的一篇博客文章中进行了描述:
http://security.blogoverflow.com/2012/04/tor-exploiting-the-weakest-link/
我想在这里向您指出这个答案,它简单地描述了 Tor 的工作原理。
出口节点不知道数据的来源,这就是 Tor 的全部意义所在。Tor 的关键是数据在通过 Tor 网络时经过的多层加密。
另一方面,使用代理涉及您的机器和代理服务器之间的直接连接。破坏代理可以很快揭示谁连接到它。
我知道这已经被回答了,但是很多重要的细节都被遗漏了。
洋葱路由的工作原理
洋葱路由是一种匿名技术,其中路径是通过一组服务器随机选择的,这样每个连接都会走不同的路由。守卫、中间和出口的特定中继由 Tor 客户端随机选择。从守卫到出口的路径称为电路,Tor 客户端会记住这一点。守卫被选择一次并且长时间保持不变(如下所述),而中间和出口定期改变(每十分钟一次,或者当建立新连接时)。不可预测的路径和可供选择的大量中继大大提高了匿名性。
(来源:torproject.org)
当您通过 Tor 发送数据时,数据会使用三个密钥进行加密。每一层都指定要使用的后续中继(由您的客户端随机选择):
现在流量已成功发送到目的地,但必须返回。Tor 中继在内存中保存与它通信的中继,因此当它从该中继获得响应时,它知道将其发送到哪里。这样,中间中继知道守卫要求它向出口发送数据,并且它会记住这一点,因此当同一个出口将数据返回给它时,它可以将其转发给守卫:
这是洋葱路由背后的原始概念。所有这一切都在一两秒钟内发生。
谁能看到什么?
我实际上写了这个答案,因为没有人链接到 Tor 上的强制性 EFF 图。这描述了每个兴趣点以及给定对手可以观察到的内容:
从继电器的角度来看,三件事是真实的:
匿名源于这样一个事实,即没有一个实体可以知道你是谁以及你在做什么。
针对 Tor 的流量分析攻击
为了使用 Tor 去匿名化,假设没有直接针对您的攻击(软件利用、后门硬件、OPSEC 故障),一个知道您是谁的实体和一个知道您在做什么的实体必须勾结。在图中,该对手被标记为 NSA。黑色虚线表示数据共享,这意味着可以使用精确的时序信息来关联您。这称为流量分析攻击,当您的对手监控连接的两端时,就会存在风险。Tor 只有有限的能力来防止这种情况发生,但幸运的是它通常已经足够了,因为有太多的流量需要融合。考虑以下事件时间表:
203.0.113.42
在 t+0 看到发送了 512 个加密字节(253 个未加密)的数据。example.com
收到一个 253 字节的请求。/foo.html
example.com
在 t+5 看到发送了 90146 字节的回复。203.0.113.42
在 t+9 看到收到 90424 加密字节回复(90146 未加密)。ISP1 是您和守卫之间的任何 ISP,而 ISP2 是出口和目的地之间的任何 ISP。如果这一切都可以被监控到,并且 ISP1 和 ISP2 串通一气,那么通过足够的计算,可以得出 IP 地址 203.0.113.42 被访问的结论example.com/foo.html
。Tor 在几个方面使这变得更加困难。首先,持久防护通过向网络添加大量恶意防护来降低对手能够观察到步骤 1 和 4 的机会。其次,Tor 以每个 512 字节的单元发送流量(或者至少以前是。现在是514 字节),因此第一步将涉及发送 512 个字节,但第 2 步仍将显示收到 253 个字节。第三,Tor 经历的跳数增加了延迟的抖动。正因为如此,每个后续时间戳都会有一个很小但随机的时间。这使得很难将在相似时间传输相似数据量的其他连接与您的连接区分开来。
有许多针对 Tor 的学术攻击依赖于流量分析,但它们总是假设一个小世界,其中延迟都是固定的和确定的。尽管在每个网络都充满噪音的世界中,这些攻击并不适用于实际的 Tor 网络,但这些攻击往往会被媒体报道。
针对代理的流量分析攻击
这种攻击很难对付 Tor,因为攻击者可能无法同时访问 ISP1 和 ISP2。即使他们这样做了,其中之一的基础设施可能不足以记录高分辨率时间戳(例如,由于 NetFlow 记录的粒度降低),并且它们的内部时钟可能略有不同。然而,使用代理,这种攻击更容易实施。即使您完全信任代理提供商,这也是一个问题。考虑这个备选的事件时间线,其中 ISP1 代表代理服务本身的 ISP:
203.0.113.42
在 t+0 看到发送 253 字节的数据。example.com
for发送了一个 253 字节的请求。/foo.html
example.com
在 t+2 看到发送一个 90146 字节的回复。203.0.113.42
在 t+3 收到一个 90146 字节的回复。有了这些信息都在 ISP1 手中,很容易得出 203.0.113.42 请求的结论example.com/foo.html
。没有填充,几乎没有抖动(因为延迟只是代理服务在内部转发请求的时间)。正因为如此,这个单一的 ISP 知道您是谁以及您在做什么,它所要做的就是将它们来自同一个人的事实联系起来。简单的。这是代理的主要技术缺点,即使它们通常粗略的性质和不诚实的历史被忽略。