2010年1月17日星期日

深入Tor

背景

TOR(The Onion Router) 通过一系列的网络节点让你的建立匿名的安全数据链路。他是免费的,是一个开源项目,任何人都能够使用他。

TOR网络有两大类组成,TOR服务器和TOR用户。任何TOR用户都可以成为TOR服务器,但是没有人可以“拥有”所有的服务。

TOR每条链路由3个节点建立起来,并且每几分钟就改变链路。链路是由一些主要节点管理节点列表随机产生的。TOR建立一个客户端到第一个节点的链接(通常称作入口节点),然后它向第二个节点发送一个打开信号,最后是第三个节点(通常称为出口节点)。

因此,当你在浏览网页的时候,你通过了3个世界上的任意节点。

You -> Node1 -> Node2 -> Node3 -> www.google.com

TOR依赖于层层加密,这就意味着每个节点都只能只能看到他需要看到的内容。而不能里解密所有数据。

一、安全性和隐私性

Node1

节点1的所有者只能知道谁是那个想要匿名上网的人,但不知道他的数据,因为数据是加密的。所以节点1所有者不知道我想干什么,但知道我是谁。

Node2

节点2的所有者,事实上什么也不知道。他不知道谁在请求数据,因为所有数据都被Node1加密了,数据内容当然就更加不知道了。

Node3

节点3的拥有者不知道谁请求了这个内容,但他知道内容,因为节点3能够解密数据。节点3是有有解密的密钥的,因为我们要依赖他去访问我们要访问的网站(网站一般是不加密的)。

进一步讨论

Node1 + Node2

如果我拥有1,2两个节点,这个也没什么好处,因为我还是只能看见这个人是谁,而不知到他想要什么。

Node2 + Node3

同样拥有2,3两个节点也不怎么理想。我还是只知道对方想要访问的数据,而不知道他是谁。

Node1 + Node3

如果拥有1,3节点,对于想了解谁在用TOR的黑客我将更加有帮助。节点1知道用户的身份,节点3能够解密。但要知道所有的数据内容还是有一点困难的。

让我们假设A建立了一下链接

Node1 -> Node2 -> Node3

现在A想要匿名浏览google。那么,节点1就得到了A发出的请求,但是我们并不知道A想要什么。然后,我们知道有个人在节点3请求google主页,链接那个节点,我们就说A就是请求google的那个人那几乎是不可能的,因为同时会有成百上千个用户。攻击者不能确定通过节点1的A就是通过节点3访问某个特定页面的同一个人。

要知道用户身份和请求数据的唯一方法就是计算从节点1到一个不知道的节点,到节点3需要的平均时间。然后假设符合平均时间的就是同一个用户。

Node1+Node2+Node3

毫无疑问,如果拥有所有的三个节点,你就能知道是谁发了这条信息以及信息的内容。但这个基本上是不可能的。因为链路是在节点列表里面任意选择的,而TOR节点列表有着相当客观的机诶但数量(接近1800)。

现在让我们进一步假设,如果有人黑了你的电脑并且用数据包嗅探来监视你离开你电脑的每一个数据包。感谢加密机制,攻击者知道的只有第一个节点的身份而已,没有任何的数据,连出口是谁都没法知道。


二、特别优点

TOR同样解决了一个别的匿名访问程序没有解决的问题,那就是DNS服务器能够得知

任何请求域名解析的用户身份。那就是说如果我想匿名访问google.com,使用任何匿名工具,google查了日志也不会知道我是谁,但他们可以通过查询通过查询DNS服务器知道我的身份,因为每次你在地址栏输入一个域名,后台就会发送一个DNS解析请求(使用我的非匿名身份)。

TOR通过Privoxy这个程序使得DNS请求变为匿名。

你可以看到,想要窃听TOR用户是非常困难的。


三、缺陷

易破坏性问题:

据我所知道的,TOR只有连点比较容易受损:

1. 通过一个特殊的Java applet程序发送ICMP数据包(TOR不支持ICMP的加密),网站就可以推断出用户的真实身份。

2.另一种方法就是攻击者拥有出口节点Node3。然后攻击者可以向将会送回最初节点的访问页注入Javascript代码或者Java applet程序,从而推断用户身份。

速度问题:

不像其他的匿名访问程序,TOR是非常缓慢的,因为他的所有内容都要加密,而且还要满世界的向三个节点传递数据。

一般情况,TOR用户可以获得速度在20-35kbps左右,当然还跟你的地理位置和带宽有关。


P.S.

torproject.org (被墙)提供了一个叫做Vidalia Bundle工具,包括了Tor + Privoxy + Vidalia (Tor的图形化控制) + Torbutton (firefox插件).


原文:http://www.anonwatch.com/?p=3

没有评论:

发表评论