暗网Tor(洋葱路由)的前世今生及其相关原理技术

“洋葱路由”的最初目的并不是保护隐私,或者至少不是保护大部分人认为的那种“隐私”。

洋葱路由催生了暗网的产生

1995年,美国海军研究实验室的科学家开始开发一套匿名系统,可以避免人们在互联网上的行迹被追 踪到。由于在该系统中,数据被层层密码保护,这个技术被称为叫作“洋葱路由”。

该技术最初由美国海军研究办公室和国防部高级研究项目署(DARPA)资助。早期的开发由Paul Syverson、 Michael Reed 和 David Goldschla领导。这三个人都是供职美国军方的数学家和计算机系统的研究人员。

“洋葱路由”的最初目的并不是保护隐私,或者至少不是保护大部分人认为的那种“隐私”,它的目的是让情报人员的网上活动不被敌对国监控。在美国海军研究实验室1997 年的一篇论文中指出,“随着军事级别的通信设备日益依靠公共通讯网络,在使用公共通信基础设施时如何避免流量分析变得非常重要。此外,通信的匿名性也非常必要。”

该项目初期进展缓慢,到 2002 年,来自海军研究机构的Paul Syverson 还留在项目里,两个MIT的毕业生 Roger Dingledine 和 Nick Mathewson 加入了项目。 这两个人不是海军研究实验室的正式雇员。而是作为 DARPA和海军研究实验室的高可靠性计算系统的合同工方式加入的。在后来的几年里,这三个人开发了一个新版的洋葱路由,也就是后来的 Tor(The Onion Router)。

对于 Tor 是如何从军方走向民间的,有两种说法。一是研究人员也意识到,不能仅仅让美国政府自己使 用这个系统,那等于向别人表明身份,必须让其他人也能够使用这个系统,才能够实现真正意义的隐藏。 因此,Tor面向大众推出了普通用户版本,并且允许 每个人使用Tor的节点,把政府情报人员的流量与志愿者的流量混在一起,以达到隐藏的目的。二是由于美国海军研究实验室陷入财政紧缺的状态,主动终止了对 Tor 的资金支持并将其开源,后由一个名为电子前哨基金会(EFF)的组织接管了 Tor 的后续研发和支持。

无论出于何种原因,基于Tor的暗网从此便建立了起来,并日趋庞大。由于Tor匿名的特点,很快得到了大量的青睐,其中不乏异见人士、记者、学生、公司职员等,人们可以在暗网上发表自己的观点而无需担心被报复。也正是因为Tor匿名的特点,暗网很快成为毒品、枪支和非法色情交易的温床。暗网中逐渐出现了很多交易网站,贩卖枪支、毒品、违禁药品、被盗的身份、色情物品,雇佣黑客,甚至雇佣杀手、贩卖人口、在线观看直播杀人等形形色色的非法交易,如 Agora、Silk Road、Evolution 等。有些交易网站采用比特币交易, 因此不受传统金融渠道的控制,并且像我们常用的交易平台一样,买卖双方还能进行评价,甚至提供售后 服务。现在,Tor中继节点已经遍布全球,每年有近5000万人次下载Tor,以至于连Tor的发明者都承认“自己也无力摧毁 Tor”了。

Tor 是如何实现匿名的呢?

Tor 官网上简单介绍了Tor的原理。Tor是一个三重代理,Tor 客户端先与目录服务器通信获得全球活动中继节点信息,然后再随机选择三个节点组成电路 (circuit),用户流量跳跃这三个节点(hop)之后最终到达目标网站服务器, 这样Tor网络中就有两种实体,分别是用户和中继节点。当用户需要匿名访问网络时,首先访问目录服务器,得到全球的 Tor中继节点的信息,包括IP地址、公钥、出口策略、带宽和在线时间等。然后再随机选 择三个节点组成电路(circuit),分别为入口节点、中间节点和出口节点。在构建电路时,用户和每一个中继节点协商共享的会话密钥,之后将层层加密的信息发送到电路中,每个中继节点经过一次解密后,将信息发给下一个节点。这样,中继节点中只有入口节 点知道通信发起者的身份。中间节点知道通道中入口节点和出口节点的身份,但是不知道匿名通信发起者和接收者的身份。出口节点作为网关负责Tor网络和外部Internet网络的应用层连接,并充当加密的Tor网络传输流量和非加密的Internet传输流量之间的中继,知道匿名通信接收者的身份。在这种设计下,电路中没有任何一个节点知道完整的信息,因此实现了匿名通信。

Tor 的工作原理

具体来说,当用户启动 Tor 之后,Tor 客户端会在本机上运行一个 Onion Proxy(OP),之后开始和存有全球中继节点信息的目录服务器取得联系,获取全球的中继节点信息。OP 获取到中继节点信息后,OP会随机选取三个节点,组成电路,并分别协商会话密钥。 在这个过程中,每层会话都是被加密一次的信息,一直到被三重加密,只有出口节点能看到明文。当电路被确认建立后,才开始发送真正的用户访问信息。

此外,为了加强安全性,Tor 每隔十分钟就会再重新选择三个节点以规避流量分析和蜜罐节点。

仔细分析这一过程,会发现一个问题,由于出口节点能够获得明文信息,因此这个过程中只保障了用户的访问不能被攻击者完全地获知。也就是说,只保障了用户访问表层网络时的匿名性。而对于想要隐藏自己 IP 的 暗网网站来说,这个方法是不行的,因为出口节点会获知用户的访问请求和服务器的 IP 地址。那么,如果用户匿名访问暗网网站时,情况又是怎样的呢?

与表层网络中可以通过 URL 和域名解析服务器获得目标网站的 IP 地址不同,暗网中的服务器 IP 地址是不能够暴露的。暗网中有一个类似于DNS功能的分布式散列表,其中存储着一些站点的相关信息。在暗网中,想要建立一个网站,首先要随机选择几个介绍点(introduction point),并与之建立电路,方式与前文所述基本一致,因此介绍点并不知道服务器的真实IP。然后服务器组合起一个描述符,里面包括了公钥和各个介绍点的摘要,然后用私钥签名,最后把描述符上传到前面提到的分布式散列表中,网站就建立好 了。网站的域名就是一个从公钥中派生出的 16 位字符,通常采用顶级域名.onion。

当有人需要访问暗网站点时,在设置好 Tor 的浏览器中输入网址,OP 就通过电路与分布式散列表建立连接,开始查询目标网址的描述符。之后会随机选 择一个节点作为汇合点(rendezvous point),并生成一个随机的一次性 cookie。OP 用站点的公钥加密 cookie 和汇合点 IP,再把密文发送给介绍点,介绍点接到数据之后就通过 Tor 电路回传给服务器。服务器用私钥解密信息,获得汇合点 IP 和cookie,之后通过 Tor 电路与汇合点建立连接,并回传 cookie。用户收到 cookie 之后确认已经和站点建立了连接,之后开始正式访问该站点。最终在用户和暗网服务器之前有六个中继节点,分别是用户的入口节点、中间节点、汇合点、服务器的出口节点、中间节点、入口节点,并且其上的通信全都是 TLS 加密的,这样就同时保障了用户的匿 名访问和站点服务器 IP 的隐藏。

Tor 真的安全吗?

Tor 的研究人员很早就意识到,更多的用户将带来更好的匿名能力,因此在 Tor 设计之初,就将易用性和可部署性作为重要目标。他们认为,Tor 不应该需要用户修改任何的应用,不应该需要用户进行复杂的系统配置,不应该要求用户修改操作系统。最终, Tor 也确实成为一个多平台的、配置简单的软件,因此Tor 的使用并不复杂。Tor 网络可以由The Tor Project 提供的 Tor 软件访问,Tor 是软件的核心,Vidalia 是配合 Tor 使用的可视化软件,可以更方便地使用Tor。

但是 Tor 真的绝对安全么?这可能是每一个使用 Tor 的用户关心的问题。首先,Tor 是开源的,任何人都可以去验证 Tor 中是否存在着后门,而至今没有后门被发现的报道,但这只能说明 Tor 并没有“故意的 不安全”。

在 2015 年的 USENIX 安全研讨会上,麻省理工学院和卡塔尔计算研究所的研究人员表示,通过分析志愿人员在独立电脑上的 Tor 网络上进行的加密数据传输,攻击者可以推断出隐藏服务器的位置,或者通过信息源找到指定的 Tor 用户信息。在一个电路的建立过程中,Tor 网络上的计算机们将大量的来回地传递数据。 研究人员发现,通过一个 guard可以很简单地找到在各个方向上传递的数据包流量。利用机器学习算法,就能以 99% 的准确率分辨出这是一个普通的网页环路,introduction-point circuit 还是一个 rendezvous-point。此外,通过使用 Tor 的电脑连接到一系列不同的隐藏服务,类似于流量分析模式可以以 88% 的准确率确定这些服务。 这意味着一个幸运的攻击者进入到了隐藏服务的 guard 的位置时,它将有 88% 的把握,确定它就是该隐藏服务的主机。而如果一个 Tor 回路中使用的是普通的浏览 器,这一精度甚至可以提升到 99% 以上。

该研究结果也印证了 EFF(电子前哨基金)的 观点,在密码学层面上,是无法被破译的,最可能的攻击方式是利用浏览器漏洞单边信道攻击、用户错误配置、流量相关性攻击。同时 EFF 也承认,如果有人能够同时获得通信双方的数据,通过统计的方法,是有办法确认你的流量的。此外,Tor 在设计时的威胁模型是针对单点不可靠情况的,而当某一组织掌握足够多的节点时,Tor 的匿名效果就会大打折扣。因此 2011 年,在一个有关 Tor 的安全性的讨论上,Tor 的开发人员 Mike Perry 承认,Tor 在对付强大的有组织、有能力监控大量互联网流量的攻击者(也就是政府) 方面并不那么有效。

即便是在理论层面,Tor能够保护的也仅仅是用户匿名的安全,而非用户数据或信息的安全。出口节点就是一个重大的安全隐患。由于用户的数据包需要 通过出口节点传送到网络上,而在 Tor 网络中,出口节点是不能被用户控制的,因此在这些节点上,用户的流量很容易在不知情的情况下被窥探。瑞典的安全研究人员 Chloe 通过蜜罐网站测试了 Tor 出口节点,证实了信息在出口节点确实被窃取了。

所以,并不是在暗网中就可以做到绝对的隐 藏身份,前段时间臭名昭著的“丝绸之路”创始人被抓获就是一个最好的例证。

此外,一方面是技术上的问题使得 Tor 的安 全性受到质疑,而另一方面,Tor来源于军方项目的身份也使得一部分人相信 Tor 的匿名完全是一个假象。

据国外媒体报道,Tor项目被美国军方转让后, 还一直通过各种相关机构的资助和政府合同受到官方的支持,其中五角大楼的资金资助的项目描述里这样描述 Tor的,“这是一个在海军命令、控制、通信、计算机、情报、监控方面的基础和应用研究项目。”

2013年,华盛顿邮报报道了 NSA 掌握了破解匿名Tor网络的若干种办法,其中提到“根据一份名为‘Tor’的研究论文,从2006年,NSA就在研究如何能够在大规模网络上破解匿名流量的不同方法。例如,其中的一种方法可以通过他们的计算机利用 Tor 网络的速度变化来分析辨别用户。从斯诺登解密的 NSA文件来看,NSA 似乎已经掌握了若干方法,‘比较有把握’”。

事实上,美国的执法机构就曾经抓获过多起 利用 Tor 网络的网络犯罪分子。其中最典型的例子要数 2013 年年底哈佛大学学生 Eldo Kim 用 Tor 网络发布炸弹威胁信息被捕的例子。也许是受斯诺登的影响,Kim 高估了 Tor 的“隐身”能力, 通过 Tor 发布了炸弹袭击的假警报,试图以此拖延期末考试的日期,但不幸的是 FBI 的探员很快就找到了 Kim 同学。此外,在 2013 年,美国的执法机构还捣毁了托管在 Tor 网络上的儿童色情站 Free Hosting和网络黑市Silk Road,并在 2014年捣毁了 Silk Road 2.0。这些事件本身也说明 Tor 并不是绝对的安全。一般这世界也不存在绝对安全的系统!

Tor安全防范措施

1、确保正确的配置了 Tor。

正确的配置 Tor 是安全使用暗网的基础。

2、不定期的更新。

Tor 和其它软件一样,会出现一些小的 bug,所以需要定期更新来解决这个问题。

3、使用HTTPS。

增强终端到终端的加密协议,其中最有 用的一般是HTTPS。Tor 网站默认支持 HTTPS 的功能。 在你发送任何敏感信息之前检查一下 HTTPS 按钮是否为绿色。

3、使用匿名服务。

您也可以使用不会记录活动的网站和服 务提高你的安全。例如,使用像Duck DuckGo 浏览器, 它有一个服务功能就是不会保留任何关于你信息。你也可以结合 Cryptocat 加密聊天功能进行私人会话。

4、避免传输个人信息。

避免个人信息泄漏的最安全的方式就是在使用的时候就避免发送信息。

5、避免登录。

和上一条同理,尽量避免使用需要你登录的 网站。

需要注意的问题

1、不要将其用于 BT 下载等 P2P 应用。抛开合法性不谈, Tor 的转发节点都是网络上的志愿者们使用自己的服务 器和网络带宽建立起来的,如果通过 Tor 网络来进行巨 额数据的传输,会影响服务性能。

2、不要利用 Tor 发送垃圾邮件。

Tor 的加密功能可以帮助实现匿名电子邮件的发送,请不要使用这一功能发送垃圾邮件,给别人造成麻烦。

3、不要用 Tor 进行恶意攻击。

由于加密和层层转发的特性, 通过 Tor 进行攻击很难被发现,为了 Tor 可以一直提供服务,请不要将其用于这类违法活动。当然 Tor 在设计时也考虑到这些问题,具备上述特性的网络活动很可 能会在Tor的内部环路中被过滤掉,不会发送到外网去。

4、远离黑暗网络。

参考文献:《网事焦点》,暗网的养成:Tor(洋葱路由)的故事

原创文章,作者:admin,如若转载,请注明出处:https://www.anwangxia.com/234.html

Leave a Reply

Your email address will not be published. Required fields are marked *