浅析匿名通信安全性与Tor

浅析匿名通信安全性与Tor

本文原创作者:VillanCh

概念篇

匿名通信概念

匿名通信(Anonymous  Communication)研究的不是如何保护数据的内容,而是研究如何隐藏通信实体的身份信息,使攻击者无法通过搭线窃听和流量分析数据报头来得到用户的真实身份,或对用户通信进行跟踪。匿名通信系统的研究目的是对网络用户的 IP 地址、通信关系等涉及用户隐私信息的保护,使其不被攻击者检测和发现。 

匿名通信的两种类型

匿名通信的技术大致可以分为两类:第一是转发机制(也可以叫基于重路由技术);第二是通过广播和组播来实现匿名。 

基于转发的匿名基本包括了我们常见的所有科学上网方式(比如ss,tor),其实这种机制的先祖大概是anonymizer系统。这是专门为发送者提供邮件中转的匿名系统。David Chaum 提出的 Mix-Net系统是基于转发机制的典型代表,这个系统使用了的很多实现匿名通信的技术,如:嵌套加密、数据包填充、延时、混合、缓存重排等。 

Indeed,我个人认为比较成功案例的应该给Tor,Tor也因此短时间内成为覆盖整个互联网的匿名通信系统。

另外一类的话是基于广播或者组播的技术,第一类转发机制的匿名是通过很多个中间路由,构成了匿名路径,但是基于广播或组播的技术,一个广播组中隐藏真正的信息接收者,显然我们可以看出在效率上,涉及到广播和组播相对低于转发机制,另外,这类部署限制仍然不太成熟,因为互联网环境本身的复杂性,大多数都还处于研究阶段。 

匿名通信的保护类型

1、匿名发送:保护发送者的身份标示(不能关联到通信发起者)

2、匿名接收:保护接收者的身份表示(接受者可能不确定)

3、匿名发送接收关系:找不到特定消息的发送与接收者,无法推测通信双方

分析篇

下面我们以Tor来举例子。 

Tor的小科普

1996 年,美国海军研究实验室提出洋葱路由(Onion Routing通信算法)。洋葱路由综合了 Mix 技术和代理机制,是一个低时延匿名技术。它的核心思想是:洋葱代理(Onion Proxy,OP)使用源路由方式随机选择洋葱路由器洋葱路由器(Onion Router,简写为 OR)组成匿名传输路径,将后面路径的数据和地址一同加密作为前段路径 IP 包的载荷进行传送,并且每个洋葱路由器只和相邻的洋葱路由器通信并传输数据,这样就能有效隐藏了目的节点。

浅析匿名通信安全性与Tor

(上图为Tor网络示意图) 

原理分析

1.网络结构

当用户有匿名需求,通过 OP 从目录服务器下载 Tor 网络状态信息。然后会根据得到的洋葱路由,构建一条转发路径。每个洋葱路由器担任传输中继,而且这些洋葱路由只和相邻的洋葱路由进行通信并传输数据。Tor 的网络结构图如下图:

浅析匿名通信安全性与Tor

2.Tor数据包结构

Tor数据包长度为512个byte固定长度,分为两种:控制数据包和转发数据包。控制数据包携带传输控制命令,来控制路径的删除和建立,转发数据包实现数据传输。

控制数据包头部:

浅析匿名通信安全性与Tor

转发数据包头部:

浅析匿名通信安全性与Tor

(1)Stream ID:数据流身份标示

(2)Digest:端到端的完整性校验

(3)Len:转发数据长度

(4)CMD:转发命令

整个转发头和转发负载信息都有转发他们的Tor路由器来加密解密,使用128Bit的AES密码算法产生密码流。

转发命令包括:

(1)relay data:转发数据  (2)relay begin:打开一个流  (3)relay end: 关闭一个流  (4)relay extend:延伸  (5)relay teardown:关闭一个错误的数据流  (6)relay connected:通知客户已经开始连接  (7)relay truncate:切断部分虚电路  (8)relay sendme:发生阻塞时不发送数据包到下一个节点  (9)relay Drop:丢弃数据包  (10)relay extended和relay truncated:对relay extend与relay truncate的应答

通信机制:

1、假定Alice是我们的OP(客户端)

2、通过Tor随机选择一个Tor匿名网络中的路由器作为Tor网络的介入点并且与这个路由器进行短期的回话密钥协商,然后逐跳扩展匿名链路,知道到达目标点。

3、建立好路径以后就可以匿名访问了。

浅析匿名通信安全性与Tor

Tor的缺点:

Tor的威胁模型是一个较弱的威胁模型,是一个不够安全的威胁模型。实际上,Tor的匿名性并没有那么的好,但是作为一种低延时匿名系统,Tor的目标是抵御非全局的主动或者被动攻击。

针对Tor的两种攻击:

1、时间攻击:基本思想是寻找入口节点和出口节点之间数据包的时间相关性。作为低时延匿名系统 Tor 不使用数据包填充和随机延迟技术,因此消息间有很强的时间相关性。系统默认的路径长度是3,如果第一个和最后一个节点合谋攻击,通告自己的下一跳和上一跳。通过判断是否相同就是判断是不是一条转发路径。这样攻击者就能轻易的判断匿名路径。攻击者还可以通过分析数据包到达的时间相关性。防范措施是阻止攻击者同时控制 Tor 网络的入口节点和出口节点。

2、通信流攻击,作为低时延匿名系统 Tor 不对数据做复杂的混合、缓存重新排序等技术操作,因此网络中通信数据流的时间特性能够被监测。攻击者发送一个特殊的消息流,监测某一个中间节点的通信延迟。根据这些延迟判断是否通过被监测的节点。

除此之外使用过Tor的人都比较清楚,Tor的速度问题实在是有点硬伤。

Hum,那么Tor作为信息安全工作者隐藏IP绝对的安全麽?

不妨丢出知乎http://www.zhihu.com/question/33216788大家来探讨一下一个问题。

读完本文,有兴趣对匿名通信进行一些研究的读者可以在评论区写下高见,笔者也算是抛砖引玉了吧。

访问www.torproject.org下载最新的Tor。

如果资源有问题,百度云链接:http://pan.baidu.com/s/1mgANz0O

*原创作者:VillanCh,本文属FreeBuf原创奖励计划文章,未经作者本人及FreeBuf许可,切勿私自转载