Tor网络介绍

Tor网络介绍

1、Tor的全称是“The Onion Router”,“An anonymous Internet communicaton system;通过Tor访问一个地址时,所经过的节点在Tor节点群中随机挑选,动态变化,由于兼顾速度与安全性,节点数目通常为2-5个,由于追踪困难,因此有效保证了安全性。

2、Tor的原理:

  什么是匿名性?

    挂着代理,隐藏了自己的真实IP是否是匿名?不是!绝大部分翻墙党都是挂着一重代理来这的,有一些甚至只是改了hosts文件,完全没有匿名性,一重代理只是一定程度上提升了匿名性而已。

    TOR是一个三重代理;

    代理的模型:PC、交换机、网关、N个路由器、防火墙、代理服务器、N个路由器、google服务器;如果是改hosts文件,就没有代理服务器这一步。

      在代理服务器之前设备是知道你真实IP的。

      代理服务器负责处理数据包,对于用户它是服务器,对于google服务器它是客户端;代理服务器之后的路由器以及最终的google服务器看到的都是代理服务器的IP,用户的IP被隐藏起来。但问题在于代理服务器知道你的真实IP和你干了些什么(HTTP)以及你去了哪里(HTTPS)。

      流量分析只是随着云计算和大数据的发展,变得越来越有效的数据挖掘。

      真正的匿名系统应该做到:1)各个环节除了必要的信息,其他什么都不知道。2)用户通信是跨越适当数量的跳板(hop),最好是不同国家的hop,这样流量分析和逆向分析的难度将大大增加;eg:三个hop p1、p2、p3; 用户首先连到h1,然后h1连接到h2, h2连接到h3,h3最终连接到目标网站服务器上。在这一过程中,h1知道用户的真实IP,h2知道它从h1接收用户数据以及要把数据送到h3,h3知道用户想干什么(HTTP)或者用户要去哪里(HTTPS ),除此之外这些hop 不应该知道其他任何有关用户的信息,这样的话即使三个hop 中有一个是攻击者的蜜罐,用户身份也不会暴露(不过如果三个hop 都是蜜罐,用户的身份还是会暴露的,但当三个hop分别位于三个不同的国家时,这种可能性很小)还有就是" 藏叶于林" 了,如果前面提到的三个hop 是某人专用的,那么一旦某个hop 被攻破(尤其是h1或h3),那么那人被逆向追踪的可能性非常大;但如果有很多人同时使用那三个hop ,那么老大哥想要找出其中某个具体用户就很困难了。同样道理,每次连接建立时都应该随机选择hop ,这样老大哥都不知道该如何进行有效的监视(TOR 的策略是每10分钟就重新随机选择三个hop 「9 」,每次启动TOR 时也是随机选择hop 的) 3)中间人攻击:为了防止老大哥进行中间人攻击破坏用户匿名,TOR 有着自己的一套基于数字证书的身份认证机制「10」,每个hop 都有一个自签发的数字证书,TOR 客户端在连接建立时会进行严格的身份认证。

    TOR的用户越多,TOR的匿名程度就越高。

    相对于TOR 之前的匿名系统,TOR 有三点最为特别:
    1 ,一个TOR 环路可以被很多人同时使用,说的具体一点,hop 与hop 之间的每个TLS 连接都包括了很多不同用户的TCP 数据流;
    2 ,TOR 客户端随机选择了入口节点,入口节点随机选择了中间节点,中间节点又随机选择了出口节点。对,是由精心设计过的算法保证随机选择的,没有规律可循(不过后来发现这算法造成了很搞笑的情景:某一条环路上的三个hop 有很多用户,都塞车了,但另一条环路上的三个hop 用户数少得可怜,所以后来又基于hop 的用户数对算法进行了改进「12」)

    3 ,TOR 拥有独立于操作系统和浏览器的严格的基于数字证书的身份认证机制。这一点很重要,如果TOR 的身份认证机制和特定的操作系统或浏览器有了关联,那就意味着用户将不得不为了使用TOR 而更换浏览器或操作系统。

    TOR 官网「2 」上简单介绍了TOR 的原理:TOR 是一个三重代理,TOR 客户端先与目录服务器通信获得全球活动中继节点信息,然后再随机选择三个节点组成circuit (电路),用户流量跳跃这三个节点(hop)之后最终到达目标网站服务器,每隔10 分钟左右就会再重新选择三个节点以规避流量分析和蜜罐节点。

    「哪个节点都不可信,像洋葱一样」这就是Tor 环路的核心思想所在:和普通的TCP 流不同(Tor 工作在TCP 流之上),Tor 协议把通信数据打包为了一个个特殊的cell:一开始建立Tor 电路时,本机上的onion proxy 向入口节点发送create cell 进行TLS  handshake ,这一过程的身份认证过程是基于数字证书的:Tor 有着自己的一套数字证书系统

    Tor是这么做的:客户端最先发过去的relay cell 1是入口节点与中间节点建立TLS 连接时所需要的参数,接着发过去的relaycell 2是中间节点与出口节点建立TLS 连接时所需要的参数,接下来是只有目标网站和对应端口信息的relay cell 3,在返回表明已成功建立环路的relay cell 4之后才会真正开始发送包含用户信息的relay cell 5.这一过程中relay cell 1被一重加密,到了入口节点之后就被解密,再用来与中间节点完成握手;relay cell 2被两重加密,到了入口节点时第一重加密解除,到了中间节点时第二重加密解除,中间节点可以看到明文,用来与出口节点完成握手; relay cell 3被三重加密,只有出口节点能看到明文,被用来与目标网站建立连接。同样relay cell 5也是三重加密的,只有出口节点能看到明文(HTTP)

    「就像洋葱一样」,对,用户数据就像洋葱一样,被层层包裹着,只有到了终点包裹才会解开。在这一过程中,只有入口节点知道用户的真实IP地址,出口节点知道用户的目的地和传输内容(HTTP),Tor 电路的cell里没有其他任何关于用户真实身份的信息。

    要知道NSA 和FBI 还有GCHQ们看Tor 不爽早就不是一天两天了,下次一起看看英勇的Tor 团队们是怎样对付各种攻击的吧!

    

原文地址:https://www.cnblogs.com/liun1994/p/6435505.html