TorWard在Tor出口路由器上集成了入侵检测系统(IDS),用于Tor恶意流量的发现,分类和响应。 TorWard的早期版本可以发现和分类Tor中的恶意流量,而本文介绍的新TorWard也可以阻止和跟踪恶意流量。
Tor
Tor作为一种覆盖网络,通过Internet为TCP连接应用提供匿名通信,帮助用户逃过互联网审查制度(碎碎念:u1s1,实名制至少防止了错误舆论的散播)。
组成
Tor网络由Tor客户端(Tor clients)、洋葱路由器(onion routers)、目录服务器(directory servers)和应用服务器(application servers)四部分组成。
一般来说,
-
Tor客户端安装了onion proxy(OP),是Tor网络与客户端之间的接口。
-
*Onion Router(OR)*构成核心的Tor网络,并在Tor客户端和应用服务器之间中继流量。
-
目录服务器保存所有公用洋葱路由器信息。
-
应用程序服务器承载TCP应用程序服务,例如Web。
-
Tor还提供了hidden service来隐藏服务器的位置,Bridge作为隐藏的洋葱路由器,以进一步抵抗审查。
匿名通信
为了通过Tor与远程服务器进行匿名通信(anonymously communicate),客户端从目录服务器下载洋葱路由器信息,并选择一系列洋葱路由器来建立三跳路径,称为电路(circuit)。这三个洋葱路由器分别称为entry(OR1),middle(OR2)和exit(OR3)。
建立通信链路的过程
-
客户端与目录服务器建立链接,并从目录服务器中选取一个时延最低的服务器作为第一个中继服务器/OR1;
-
客户端向OR1发送一个请求建链请求,OR1验证完客户端的合法性后生成一对密钥(公钥pubkey_OR1_Client、私钥prikey_OR1_Client),然后将公钥pubkey_OR1_Client发回给客户端(至此,客户端成功的建立了其与OR1的通信链路);
-
客户端又从目录服务器中选择一个时延最低的中继服务器OR2,并向OR1发送一个数据包:使用pubkey_OR1_Client加密OR2的地址;
-
OR1收到数据包后使用prikey_OR1_Client解开数据包,发现是一个让其自身与另外一个服务器OR2建立链接的请求,那么OR1重复步骤2与OR2建立链接,并将OR2返回的OR1与OR2链路的公钥pubkey_OR1_OR2返回给客户端;
-
客户端重复步骤3、4,建立OR2与OR3之间的通信链路,并接收到OR2与OR3之间链路的公钥pubkey_OR2_OR3;
-
至此,客户端与3个中继服务器之间的链路/circuit已经成功建立,客户端拥有3把公钥:pubkey_Client_OR1、pubkey_OR1_OR2、pubkey_OR2_OR3。
发送数据包
- 客户端将要发送的数据(data)经过3层加密包裹:*第一层:使用pubkey_OR2_OR3加密data:pubkey_OR2_OR3(data);*第二层:使用pubkey_OR1_OR2加密第一层加密后的数据:pubkey_OR1_OR2(pubkey_OR2_OR3(data));*第三层:使用pubkey_Client_OR1加密第二层机密后的数据:pubkey_Client_OR1(pubkey_OR1_OR2(pubkey_OR2_OR3(data)));
- OR1收到客户端发来的数据后使用其与Client链路的私钥prikey_Client_OR1解开数据包,发现数据包是发往OR2的,那么OR1就将解开后的数据包发送给OR2;
- OR2收到OR1发来的数据包重复OR1的步骤:将接收的数据包解开发往OR3;
- OR3收到数据包后,使用prikey_OR2_OR3解开数据包,这个时候的数据包是客户端要发往目的服务器的真实数据包data。此时,OR3就将data路由给目标服务器。
数据包是层层包裹,每经过一个中继服务器就解开一层,它的结构就跟洋葱相同,你只能看出它的外表,而想要看到核心,就必须把它层层的剥开(这就它叫洋葱/Onion路由的缘由)。Tor匿名的原理也正是基于此:真实数据包在层层包裹之后在链路上发送,Tor链路上的节点不知道数据包的源头,而只知道它要送往的下一个地址,这样就无法追踪到发送者IP地址。
因此,客户端数据在Tor网络内部传输时被加密。 IDS只能在出口(exit)路由器上检查客户端数据的内容,而不能在入口(entry)或中间(middle)路由器上检查。
Tor实现隐私保护的方式
实现方式
用户使用源路由(source routing),选择几个(一般是三个,但是如果是hidden service的话,使用的方法是不同的)Tor路由器(Tor Routers),在这些Tor路由器之间建立匿名路由。用户和他的目的地址之间的流量沿此路由中继。
其中,最后一跳称为出口路由器(exit router),充当直接与目的地址通信的“代理(proxy)”。
造成后果
因此,Tor出口路由器经常成为替罪羊,引起了《数字千年版权法案》(DMCA)的注意以及僵尸网络和垃圾邮件的攻击。某些情况下,它甚至会受到警方的攻击。由于Tor出口路由器主要由志愿者托管,因此这些滥用行为会阻止潜在的志愿者托管出口路由器,并妨碍Tor成为大型隐私增强网络的发展。
坏处
-
盗版肆虐,通过Tor传播盗版书籍、音频等;
-
以「丝绸之路」为代表的黑市通过Tor隐藏服务(hidden service)部署在线商场,贩卖违禁物;
-
因为Tor对于通信隐私的保护,所以攻击者可以运行僵尸网络C&C服务器,使用Tor发送垃圾邮件。