Tor的技术原理

Tor的技术原理

1.Tor的历史

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

2.Tor如何实现匿名访问?

Tor客户端匿名原理:

Tor是一个三重代理,客户端在接入tor网络的时候,Tor客户端会首先连接tor目录服务器通信获得全球活动的中继节点,然后从中选取三个作为节点的相关信息(ip地址,公钥,出口策略,带宽,在线时间)组成电路(cirdcuit),这三个节点分别叫入口节点、中继节点、出口节点。用户的流量在发送到暗网服务器的时候会依次经过这三个节点,只有最后一个节点知道目标服务器,第一个节点知道自身的ip地址

graph LR;
Client-->GuardRelay
GuardRelay-->MiddleRelay
MiddleRelay-->ExitRelay
ExitRelay-->RealServer

暗网服务器匿名原理:

服务器在接受客户端请求的时候,客户端并不是直接访问目标站点服务器,而是选取一个汇合节点进行通信,客户端和目标站点都是通过汇合节点进行数据请求的收发,而且服务器在和汇合节点通信的时候也是通过tor链路进行通信的。

客户端访问暗网网站的过程:

  • 1.客户端通过tor链路和暗网的分布式散列表建立连接,开始查询目标网站的描述符,获得目标服务器的介绍节点
  • 2.客户端随机选取一个节点作为汇合点(客户端和汇合点之间相隔两个节点),并生成一个一次性的cookie,并在汇合节点留下cookie将汇合点的ip地址和cookie加密(使用目标服务器的公钥)发送给介绍节点
  • 3.服务器收到密文数据包后,用自己的私钥解密数据包,获得汇合点的ip地址,
  • 4.服务器通过tor链路连接至汇合节点,并比对cookie,如果比对成功,客户端和目标站点建立通信

至此客户端和目标站点中间隔了6个节点,分别是客户端入口节点、客户端中继节点、汇合点、服务器出口节点、服务器中继节点、服务器入口节点。

graph LR;
Client-->ClientGuardRelay
ClientGuardRelay-->ClientMiddleRelay;
ClientMiddleRelay-->ClientExitRelay;

Server-->ServerGuardRelay
ServerGuardRelay-->ServerMiddleRelay;
ServerMiddleRelay-->ServerExitRelay

Tor数据包加密过程

首先客户端会选取三个作为节点作为通信的中继节点,并开始和这三个节点开始协商密钥对,每次发送数据时依次使用ExitNode的公钥,MiddleNode的公钥,GuardRelay的公钥对数据包进行加密。

3.如何搭建一个暗网网站?

安装tor

1
sudo apt install tor

编辑tor配置文件/etc/tor/torrc

1
2
3
4
5
6
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:10000 #表示对外映射一个虚拟端口80提供服务,并将本地10000端口映射到80端口
Socks5Proxy 127.0.0.0:1080 #使用前置代理,用代理连接至tor网络
HiddenServiceNumInstrductionPoints 10 #最大数量的介绍节点
HiddenServiceVersion 3#使用第三代洋葱地址
SOCKSPolicy accept 0.0.0.0 #控制访问的客户端的ip地址段

启动tor服务

1
systemctl start tor.service

启动后目录/var/lib/tor/hidden_service下会生成两个文件hostname和private_key,分别是暗网的主机名和私钥,公钥就是暗网主机名

参考:

https://2047.one/t/9204


Tor的技术原理
https://dreamaccount.github.io/2022/09/04/Tor的技术原理/
作者
404NotFound
发布于
2022年9月4日
许可协议