关于 Tor

Internet 通信基于存储转发模型,可以将其类比为传统邮件:数据以区块形式传输,称为 IP 数据报或数据包。 每个数据包都包含(发送者的)源 IP 地址和(接收者的)目标 IP 地址,类似普通信件,包含发件人和收件人的邮寄地址。 发送者与接收者之间包含多个路由器跃点,其中,每个路由器检查目标 IP 地址,并将数据包转发到靠近目标的下一跃点。 因此,在发送者和接收者之间的每个路由器都知道发送者在和接收者通信。 尤其是本地 ISP,更能够对你的网络活动建立完整的特征分析。 此外,互联网上每台可以看到你任何数据包的服务器,都可以对你的行为进行特征分析。

Tor 的目标在于,通过一系列代理转发你的流量,提高你的隐私。 你的通信经过多层加密,并通过 Tor 网络中多个跃点转发到最终的接收者。 有关该流程的更多细节,请查看可视化展示。 请注意,本地 ISP 只能观察到你正在与 Tor 节点通信。 同样,互联网上的服务器只能看见它们在与 Tor 节点联系。

一般来讲,Tor 的目标是解决三个隐私问题:

首先,Tor 阻止网站和其他服务获得你的位置,它们可用位置构建有关你的习惯和兴趣的数据库。 使用 Tor 时,你的互联网连接自身不会泄露你的信息,因此,现在你可以选择每个连接透露多少信息。

第二,对于本地流量监视者(如你的 ISP,或对你的住处 wifi 或路由器具有访问权限的人),Tor 防止他们监视你从何处获取何种信息。 另外,还能防止他们决定你能够获取和发布什么信息。如果你能访问 Tor 网络的任何部分,你就可以访问互联网上的任何站点。

第三,Tor 通过多个 Tor 中继转发你的连接,因此没有单个中继可以了解你在做什么。 由于这些中继由不同的个人或组织运行,分布式信任比之前的 一跳代理方式具有更高的安全性。

但是,请注意,在某些情况下 Tor 无法完全解决这些隐私问题:详见下方仍存在的攻击

如上所述,如果监听者能够同时监测你和目标网站(或你的 Tor 出口节点),对进出 Tor 网络时的流量进行计时关联是可能的。 Tor 并不能防御这样的威胁模型。

极端情况下,如果审查者或执法机构能够获取部分网络的特定流量,通过观察两端的流量并进行计时关联,既有可能验证你与好友经常联系的猜想。 同样,仅对于怀疑目标正在互相通信的验证,这是有用的。 在大多数国家,这种怀疑比计时关联更容易获得搜查令。

此外,由于 Tor 重复使用多个 TCP 连接的线路,在特定出口节点非匿名和匿名流量有可能产生关联,所以应留意哪些应用程序在同时使用 Tor 网络。 也许最好是每个应用程序使用独立的 Tor 客户端。

“Tor” 这一名称可用于多个不同的组件。

Tor 是一个可在你的电脑上运行的程序,为你在互联网上浏览时提供保护。 世界各地志愿者搭建中继,组成分布式网络,用以转发你的通信,以此为你提供保护:防止互联网连接监视者知道你访问了什么网站,并防止网站获取你的地理位置。 这些由志愿者搭建的中继组成了所谓的Tor 网络。

大多数人通过 Tor 浏览器使用 Tor。它是一个基于 Firefox 浏览器开发的版本,并修复了许多隐私问题。 你可以在我们的关于页面了解更多信息。

Tor 项目是一个非盈利性(慈善)组织,它维护和开发 Tor 软件。

Tor 的全称是洋葱路由网络。 在 2001-2002 年,我们开始设计并部署新的下一代洋葱路由。每当我们提到正在搭建洋葱路由时,他们就会说“不错!哪一个洋葱路由?” 虽然洋葱路由已经成为大家熟悉的名词,Tor 实际上来自美国海军实验室 (Naval Research Lab) 的洋葱路由项目

(在德语和土耳其语,这个字还有特别的含义。)

注意:尽管最初来自缩写,Tor 不可以拼写为“TOR”。 只有首字母是大写的。 实际上,一些人常常将其拼错,据此可以推断,他们并未看过我们的网站,并且他们有关 Tor 的全部知识来自新闻上的报道。

不,Tor 不会移除。 你需要的另一个程序,它理解你的应用和协议,并且知道如何清除或“擦除”它发送的数据。 Tor 浏览器尽力确保应用层数据,如用户代理字符串,对所有用户保持相同。 对于用户在表单中输入的文本,Tor 浏览器无能为力。

代理提供商通常在互联网上搭建服务器,然后将其用于转发你的流量。 这是一种简单且易于维护的架构。 所有用户流量的进出都通过同一台服务器。 提供者可以对代理的使用进行收费,或者通过服务器上的广告来支付其成本。 在最简易的配置下,用户无需安装任何东西。 你只需要将你的浏览器指向他们的代理服务器。 如果不想要对自己的在线隐私和匿名进行保护,并且相信提供商不会做坏事,那么简单的代理算是不错的解决方案。 一些简单的代理,通过 SSL 保护你与代理之间的连接,防止本地窃听,比如在咖啡厅使用免费 wifi 的情况。

简易的代理提供商也可能会造成单点故障。 供应商知道你是谁以及你在网上浏览了什么。 他们可以看到你的流量通过他们的服务器。 在某些情况下,在你访问银行或电商网站时,他们转发你的加密流量时,甚至能够查看其中的内容。 你不得不信任你的供应商,相信他们不会监视你的流量,插入他们的广告并且记录你的个人信息。

Tor 至少通过三台不同服务器传输你的流量,之后将其发送到目的地。 由于三个中继中的每个节点都具有单独的加密层,互联网连接的监视者无法修改或读取你的 Tor 网络流量。 在 Tor 客户端(在你的计算机上)与世界各地的出口节点之间,你的流量是经过加密的。

第一台服务器是否知道我是谁?

大概不能。 在三台服务器中,第一台恶意服务器能够看到来自你计算机的加密 Tor 流量。 它仍然不知道你是谁,以及你正在用 Tor 做什么。 它仅仅能看到“这个 IP 地址正在使用 Tor”。 你仍然受到保护,避免该节点发现你是谁以及去哪个网站。

第三台服务器是否看到我的流量?

大概不能。 第三台恶意服务器能够看到你发送到 Tor 的流量。 它不知道谁发送的这些流量。 如果使用了加密传输(例如 HTTPS 协议),它仅能知道目标地点。 为了理解 Tor 和 HTTPS 如何互动,请查看Tor 和 HTTPS 可视化展示。

可以。

Tor 软件是自由软件。 这意味着,我们授予你对 Tor 进行再分发的权利,无论是否修改或收费。 你无需请求我们授予特定许可。

但是,如果想要分发 Tor 软件,你必须遵守我们的许可证规定。 根本上来说,Tor 软件任何部分的分发,都需包含我们的“许可证”文件。

不过,大多数咨询我们的人不仅想要分发 Tor 软件。 他们想分发 Tor 浏览器。 这包含 Firefox 延长支持版和 NoScript 扩展。 同时,你需要遵守这些程序的许可证规定。 这两个 Firefox 扩展都使用 GNU 通用公共许可证进行分发,而 Firefox 延长支持版分发使用的是 Mozilla 公共许可证。 遵守这些许可证规定的最简单方式:凡是包含这些组件的地方,同时包含相应源代码。

同时,应确保你的读者清楚地理解:什么是 Tor、谁是开发者以及提供(以及不提供)哪些功能。 请查看我们的商标常见问题来获取详细信息。

很多应用程序可以搭配 Tor 使用,但我们尚未对它们在应用层的匿名性进行足够的研究,无法对其安全设置提供建议。 在我们的维基页面上,社区成员创建了洋葱化特定应用程序的说明列表。 请补充这个列表,帮助我们保持它的准确性!

大多数人使用 Tor 浏览器,内含通过 Tor 安全浏览网页所需的全部功能。 不推荐其他浏览器与 Tor 一起使用,这样是危险的

Tor 绝对没有后门。

我们认识一些睿智的律师。他们指出,在美国(我们所在的法律管辖区),不太可能有人让我们添加后门。 如果真的有人要求这么做,我们将进行抗争,而且(律师说)我们很可能会赢。

我们绝对不会在 Tor 中放置后门。 我们认为,对于我们的用户而言,在 Tor 中内置后面将是极不负责任的;对于一般的安全软件而言,也将是一个恶劣的先例。 如果我们故意在我们的安全软件中设置了后门程序,那会使我们的专业名誉受损。 没有人再会信任我们的软件,而且理由充足!

尽管如此,仍然存在许多不易觉察的攻击。 可能有人冒充我们,或入侵我们的计算机,或其他类似的事情。 Tor 是开源项目,并且你应经常检查源代码(或至少查看上次发布的代码差异),以确认没有可疑的迹象。 如果我们(或者 Tor 的提供者)未提供源代码获取方式,其中定有蹊跷。 你还应该检查发布文件的 PGP签名,以确保没有人在软件发布网站上动手脚。

同时,Tor 可能出现意外漏洞并影响匿名。 我们定期查找匿名相关的漏洞并进行修复,请确保你的 Tor 是最新版本。

当攻击者能够监视信道两端时,与目前所有实用的低延迟匿名设计一样,Tor 就失效了。 例如,攻击者控制或监视你的 Tor 入口节点,同时控制或监视你访问的网站。 在这种情况下,学术界尚未找到一种实用的低延迟设计,能够可靠地阻止攻击者对两端的数量和计时信息进行关联。

那么,我们应该如何应对? 假设攻击者控制或监视 C 个中继。 假设共有 N 个中继。 如果你每次使用网络时都选择新的入口和出口中继,攻击者将能够对你的所有流量进行关联,概率大概是 (c/n)2 。 但是,对大多数用户来说,特征分析与全程跟踪一样糟糕:他们想要做的事情常常未引起攻击者的注意,并且攻击者关注一次和多次同样不可接受。 因此,选择太多随机的入口和出口,用户将没有机会避免这种攻击者的特征分析。

解决方法是“入口守卫”:每个 Tor 客户端随机选择几个中继作为入口点,并只使用这些中继作为第一跃点。 如果这些中继没有被控制或监视,攻击者就不可能赢,永远不可能,而用户将是安全的。 如果这些中继被监视或控制,攻击者将看到更多一部分用户流量,但用户特征仍然没有比以前更多。 因此,用户仍然有一些机会(大概 (n-c)/n)避免特征分析,而之前几率为零。

了解更多相关信息,可查看 An Analysis of Degradation of Anonymous ProtocolsDefending Anonymous Communication Against Passive Logging Attacks 以及 Locating Hidden Servers(特别推荐)。

另外,入口节点可能有助于预防有些攻击者:通过运行几个 Tor 节点,轻松列举所有 Tor 用户的 IP 地址。 (虽然无法获悉用户通信的目的地,但他们仍然可能仅凭一份用户名单就能做坏事。) 不过,在采用“目录守卫”之前,这一功能并不能真的发挥作用。

Tor 使用各种不同的密钥,有三个目标。1) 加密,以确保Tor 网络内的数据隐私;2) 身份认证,以便客户端知道他们是在与他们想要连接的中继进行通讯;3) 签名,以确保所有客户知道是同一组中继。

加密:首先,所有 Tor 连接使用 TLS 链接加密,因此观察者无法通过流量检测来查看指定数据包属于哪条线路。 此外,Tor 客户端与线路中的每个中继创建临时加密密钥;这些额外的加密层意味着只有出口中继可以读取来自客户端的数据包。 当线路结束时双方都将丢弃密钥,因此,记录流量并入侵中继获取密钥是无效的。

身份验证:每个 Tor 中继都有相应的解密公钥,称为“洋葱密钥 (onion key)”。 每个中继每四周轮换其洋葱密码。 当 Tor 客户端建立线路,在每一步都要求 Tor 中继证明其洋葱密钥的知识。 通过这种方式,线路的第一个节点不能欺骗线路上的其他节点。 由于 Tor 客户端选择连接线路,它可以确保实现 Tor “分布式信任”属性:线路上没有单个中继,能够同时知道客户端以及客户端的目的地。

协调:客户端如何得知哪些是中继,以及如何得知他们的密钥对于中继是否正确? 每个中继都有长期的签名公钥,称为“身份密钥”。 每个目录管理机构都另有一个“目录签名密钥”。 目录管理机构为所有已知中继提供已签名的列表,列出了每个中继的一组证书(由它们的身份密钥自签名),指定了它们的密钥、位置、退出策略等。 所以,除非对手可以控制大多数目录管理机构(截至 2022 年共有 8 个),否则无法欺骗 Tor 客户端使用其他 Tor 中继。

客户端如何知道谁是目录管理机构?

Tor 软件自带内置位置列表以及每个目录管理机构的公钥。 因此,唯一欺骗用户使用虚假 Tor 网络的方法是提供专门修改过的软件版本。

用户如何知道他们获得了正确的软件?

在分发源代码或者程序包时,我们使用 GNU Privacy Guard 进行数字签名。 请查看如何检查 Tor 浏览器签名的说明

为了确定它的签名真的来自我们,你需要亲自与我们见面,获得我们的 GPG 密钥指纹副本,或者你需要认识这样做过的人。 如果你担心这个级别的攻击,我们建议你参与安全社区并与成员互动。

只要线路工作正常,新的 TCP 流将重复使用同一 Tor 线路 10 分钟。 (如果线路发生故障,Tor 将立即切换到新线路。)

但请注意,单个 TCP 流(例如长时间 IRC 连接)一直使用同一线路。 对于单个流,不对线路进行轮换变动。 否则,随着时间的增加,可监视部分网络的对手将获得更多机会(而不是一次),来关联你与目标网站。