写在前面

本文为科普性质的文章,不会关注细节,因此肯定有不严谨的地方,加之本人水平有限,文章内容很可能会有错误

写这篇文章的起因是看了BBC-走进黑暗网络这部纪录片,不免对Tor的原理起了好奇心,查阅了一些资料后便写下了这篇科普性质的文章。

图片加载失败

什么是Tor?

Tor是一个经典的暗网技术,通信双方可以通过Tor技术可以让自己难以被常规手段追踪。

1990年代中期,美国海军研究实验室的研究员保罗‧塞维利亚森(Paul Syverson)、麦可‧里德和大卫‧戈尔德施拉格(David Goldschlag)为了保护美国在线情报系统而开发了洋葱路由。其后国防高等研究计划署接手该项目继续开发,并在1998年获得海军的专利。2002年计算机科学家罗杰‧丁高戴恩(Roger Dingledine)和尼克‧马修森(Nick Mathewson)加入了塞维利亚森的项目,并开始开发Tor;Tor为“洋葱路由项目”(The Onion Routing project)的头字语,该项目后来成为规模最大的洋葱路由实现并广为人知。

图片加载失败

来自:https://baike.baidu.com/item/%E6%B4%8B%E8%91%B1%E8%B7%AF%E7%94%B1/9240017

由此可见,这个技术起初是为了保护美国情报系统开发的,但是这项技术却致使一个叫做Silk Road的黑市购物网站的诞生。

Silk Road,(丝路)是一个利用Tor的隐密服务来运作的黑市购物网站,Tor的服务保证了网站用户的匿名性。你能想到的东西都有可能在里面找到。只要你情我愿,就可以形成一笔买卖。毒品、性奴、儿童色情、私人杀手,这里没有“非法交易”,用比特币结算还使得交易变得无法追踪,从而受到了大量毒贩的青睐。

图片加载失败

来自:https://baike.baidu.com/item/Silk%20Road/4303476

可见难以监督的网络行为很容易造成严重的后果。

常规的通信流程

如果我们要向某人发送信息,常规的流程见下图

图片加载失败

  1. 发送方通过某种方式和接收方协商好加密方式,然后将信息(原文)加密形成密文。
  2. 密文会被添加上发送方信息和接收方信息用于信息的转发。
  3. 经过运营商网络的多次转发后,最终会转发给接收者。
  4. 接收者使用最初协商好的加密方式进行解密,获取信息原文。

在这个流程中网络中的数据包虽然经过了多层转发,但是数据包中的双方的信息始终是没有改变了,那么想直到双方是否互相发送过信息只需要查询数据包的转发日志即可,虽然密文无法解密,但是运营商的转发节点可以知道发送方和接收方。

Tor 通信流程

Tor通信网络中存在一些节点,一些节点被称为目录节点目录节点记录着哪些机器加入的到了Tor网络中,而Tor的匿名通信就是依靠这些加入到Tor网络中的节点,本文称这些节点为转发节点

下面将介绍Tor网路中的大致通信流程:

图片加载失败发送方和三个节点协商加密方式

图片加载失败通信流程

  1. 发送方从目录节点获取随机的三个转发节点,发送方则称入口节点
  2. 发送方通过安全的方式和 A、B、C 三个节点协商出三个不同的加密密钥。
  3. 发送方将信息原文进行处理添加真正的接收方的信息。
  4. 然后将信息用密钥C加密形成密文1
  5. 密文1进行处理添加转发节点C的信息,转发节点读取到这个信息会自动转发给指定节点。
  6. 步骤5中生成的信息用密钥B进行加密,形成密文2
  7. 密文2进行处理添加转发节点B的信息。
  8. 步骤7中生成的信息使用密钥A进行加密,得到密文3
  9. 经过必要的处理后,发送方通过运营商网络将密文3发送给了节点A
  10. 节点A使用密钥A解密得到密文2
  11. 节点A读取转发指导信息得知要转发给节点B
  12. 经过必要的处理后,节点A通过运营商网络将密文2发送给了节点B
  13. 节点B使用密钥B解密后得到密文1
  14. 节点B读取转发指导信息得知要转发给节点C
  15. 经过必要的处理后,节点B通过运营商网络将密文1发送给了节点C
  16. 节点C密钥C进行解密得到原文
  17. 节点C读取转发指导信息得知自己就是最后一个节点,也称出口节点
  18. 经过必要的处理后,节点C通过运营商网络将原文发送给了接收方。完成本次通信。

为什么难以追踪?

  1. 从通信流程中可以看出来除了入/出口节点以外的转发节点接收到信息后并不知道自己的信息来源。
  2. 来源可能是可能是发送方,也可能是上一个转发节点
  3. 同时也不会知道信息将最终会发送到哪里去。
  4. 因为转发指导信息中只会标明下一个转发节点,而对于该节点是否为出口节点只字未提。
  5. 和发送方通信的只有节点A,而信息的去向已经难以查证。
  6. 和接收方通信的只有节点C,而节点C的信息来源也已经难以查证。
  7. 此时通过查询数据包转发日志的方式也无法确定接收方和发送方。
  8. 因为数据包本身经过了加密,运营商无法得到数据包内的转发指导信息
  9. 同时因为无法解密所以也无法还原语义,也就无法确定这是一次正常的通信还是通过Tor网络的通信。
  10. 此时运营商也就无法判断每一条信息最终将发送到哪里以及是谁发送的。
  11. 同时所谓的原文实际上也是可以经过加密后的密文,进一步增加了追踪的难度。
  12. 也就是说难以确定真正的发送方和真正的接收方。

举一个例子:

  1. 我怀疑小明每天都背着我和小红聊天。
  2. 我黑掉了小明的电脑,监控电脑上的一举一动。
  3. 但是我发现小明输入的信息都是无法理解的密文。
  4. 小明敲下回车把消息发送给了一个陌生人 A。
  5. 陌生人 A 将信息发给了陌生人 B,陌生人 B 又发给了陌生人 C。但是我对这一过程并不知情。
  6. 我转而黑掉了小红的电脑。
  7. 我发现小红的电脑收到了一段信息,也是难以理解的密文,消息来自一个陌生人C。
  8. 而且就算小明发送的密文和小红接受的密文是一样的,我也不能确定这就是小明发的。
  9. 这时我就无法确定小红收到的信息是不是小明发来的。

这就是使用了 Tor 技术后的情况,如果没有 Tor 技术我只需要查看聊天窗口中对方的名字是不是小红即可。

追踪方法

  1. 可以利用 Tor 工具的漏洞进行追踪,已经有现实例子了,有兴趣可以查阅资料。
  2. 控制 Tor 网络中的大多数节点,就像上面举的例子,如果我能黑掉陌生人 A、陌生人 B 以及陌生人 C 的电脑,我自然就可以直到是不是小明发送给小红的信息。
  3. 时序分析:虽然 Tor 网络中信息传输路径被隐藏,但是各个节点之间的通信记录仍然会被保留,可以使用流量分析搜索那些由潜在发起通信记录,并尝试将时间和数据传输与潜在接收者的通信记录进行匹配。
  4. 其它。

总结

Tor 技术通过随机选择转发节点的方式来隐藏信息的去向以及来源,确实给追踪带来了不小的麻烦,但这并不是不可追踪的。

暗网早已不是一个新鲜的东西了,针对其的追踪手段也在不断进步.世界上也已经有了多起因使用暗网进行非法交易被逮捕的案件,所以说互联网不是法外之地,不要用它去做坏事。

引用内容版本

鉴于百度百科的内容可能发生变动,可能会导致与本文引用的内容不同,故在此上传文章发布时的百科内容版本信息。

图片加载失败

图片加载失败