我们(尚未)采用的替代设计方案

每个 Tor 用户成为中继有助于扩展网络以承载所有用户,并且运行 Tor 中继可能有助于你的匿名性。 然而,许多 Tor 用户不能成为良好的中继。例如,一些 Tor 客户端位于限制性防火墙后面,使用调制解调器连接,或无法转发流量。 为这些客户端提供服务,是为每个人提供有效匿名的关键部分,因为许多 Tor 用户受到此类限制,包括扩大匿名集合的客户端。

虽然如此,我们的确想要鼓励 Tor 用户运行中继,因此我们真正要做的是简化设置和维护中继的过程。 在过去的几年里,我们在简易配置方面取得了很大的进展:Tor 可很好地自动检测是否可访问以及可提供多少带宽。

不过,在做到这一点之前,我们需要解决四个问题:

  • 首先,对于允许使用多少带宽,我们需要更好地自动估计。 这种情况下, 切换到 UDP 传输可能是最简单的方案:可惜这个方案并不简单。

  • 第二,我们需要增加可扩展性,包括网络(如何停止要求所有 Tor 中继能够连接到所有其他 Tor 中继)和目录(如何停止要求所有 Tor 用户知道所有其他 Tor 中继)。 这样的改变将对潜在和实际的匿名性产生很大的影响。 详情见挑战一文的第 5 章节。 同样,UDP 传输在这里会有帮助。

  • 第三,我们需要更好地了解相关风险:允许攻击者通过你的中继发送流量,而同时你也在启动自己的匿名流量。 三篇 不同的 研究 论文描述了识别中继的方法,即运行流量通过候选中继,并在线路活动时寻找流量的低谷。 只要中继不是客户端,对 Tor 来说,这些堵塞攻击并不可怕。 但是,如果鼓励更多的客户端开启中继功能(作为网桥中继或正常的中继),那么我们需要更好地了解这种威胁,并学习如何降低它。

  • 第四,我们可能需要某种激励措施,鼓励人们转发他人流量,或成为出口节点。 这里是我们目前对 Tor 激励机制的想法

请为所有这些问题提供帮助!

如果中继运营商在他们的出口政策中说reject www.slashdot.org这样的话,而不是要求他们列出所有可能被该网站覆盖的 IP 地址空间(然后把这些 IP 地址上其他网站也屏蔽),听起来很不错。

然而,这样有两个问题。 首先,用户仍然能够绕过屏蔽。 比如,当从 Tor 网络退出时,他们可以请求 IP 地址而不是主机名。 也就是说,中继运营者仍然需要了解所有目标 IP 地址。

第二个问题是,它将允许远程攻击者屏蔽任意网站。 例如,如果 Tor 运营商封锁 www1.slashdot.org,然后一些攻击者污染 Tor 中继的 DNS 或以其他方式更改该主机名以解析到一个主要新闻网站的 IP 地址,这样突然间这个 Tor 中继就阻止了该新闻网站。

不可以,你不能信任网络选择的路径。 恶意中继可以将你的流量转发到他们串通好的朋友。 这将使对手有能力观察到你所有的端到端流量。

由于以下原因,这将变得非常使用: 这将使 Tor 能够更好地处理 VoIP 等新协议。 它可以解决应用程序 socks 端口化的整体需求。 出口中继也不需要为所有的出口连接分配大量的文件描述符。

我们正朝着这个方向努力,但存在一些困难的问题:

  1. IP 数据包泄露操作系统的特征。 我们仍然需要对 IP 层数据包进行规范化,以阻止类似 TCP 指纹分析攻击的事件。 鉴于 TCP 堆栈的多样性和复杂性,以及设备指纹分析攻击,最好的选择似乎是搭建我们自己的用户空间 TCP 堆栈。

  2. 应用层流仍然需要擦除。 我们仍然需要像 Torbutton 这样的用户端应用程序。 这样将不再是:在 IP 层捕获数据包并对其进行匿名化。

  3. 有些协议仍然泄露信息。 例如,必须重写 DNS 请求,以便将其传递到不可关联的 DNS 服务器,而不是用户 ISP 的 DNS 服务器;因此,我们必须了解所传输的协议。

  4. DTLS (TLS 数据报) 基本上没有人在使用了,而 IPsec 又很大。 一旦我们选择了传输机制,由于开始允许丢包、重发等,就需要设计新的端到端 Tor 协议,以避免标记攻击和其他可能的匿名性和完整性问题。

  5. 任意 IP 数据包的出口政策都意味着建立一个安全的入侵检测系统(IDS)。 节点运营者告诉我们,出口政策是他们愿意运行 Tor 的主要原因之一。 添加 IDS 控制出口政策会增加 Tor 的安全复杂性,而且很可能无论如何都不会成功,整个 IDS 和反 IDS 领域的论文都证明了这一点。 由于 Tor 只传输有效的 TCP 数据流(而不是任意的 IP 数据流,包括不正常的数据包和 IP 洪水),许多潜在的滥用问题都被解决了。 由于我们能够传输 IP 数据包,出口政策变得更加重要。 我们也需要在 Tor 目录中精简地描述出口政策,所以客户端才能够预测哪些节点能允许它们的数据包退出。 客户端在选择出口节点之前,也需要预测它们想要在一个会话中发送的所有数据包!

  6. Tor 内部的空间名称需要重新设计。 当传递地址给 Tor 客户端时,我们进行拦截,从而可以支持洋葱服务“.onion”地址。 在 IP 层这样做,需要在 Tor 和本地 DNS 解析器之间建立更复杂的接口。