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 |
|
编辑tor配置文件/etc/tor/torrc
1 |
|
启动tor服务
1 |
|
启动后目录/var/lib/tor/hidden_service下会生成两个文件hostname和private_key,分别是暗网的主机名和私钥,公钥就是暗网主机名
参考:
Tor的技术原理
https://dreamaccount.github.io/2022/09/04/Tor的技术原理/