◆徐俊杰
匿名通信网络Tor的实现原理及攻击技术研究
◆徐俊杰
(江苏理工学院 江苏 213000)
Tor是目前使用最广泛的匿名通信系统之一,是对洋葱路由技术层层加密和多跳代理的一种增强实现。匿名通信网络可以保护用户的身份信息、地址等隐私不被泄露,但是由于隐私增强技术被广泛应用于人们的日常生活,如网页浏览、即时通信等,也使得针对匿名网络通信系统的攻击技术的研究不断深入。本文以典型的匿名通信网络Tor为例,概述了它的发展历程,解释了其实现的基本原理,介绍了目前针对匿名网络的主流攻击技术,供相关读者参考。
匿名通信网络;Tor;匿名性攻击;水印技术;重放
匿名通信的概念最初由Chaum[1]在1981年提出,他也最早提出了Mix网络技术,在该网络中,Mix节点将接收到的来自发送者的信息通过加密、延迟、填充等方式进行混合处理后再传输给下一个节点,以此来隐藏通信双方的身份信息,实现高匿名性,是一种牺牲了性能的高时延匿名通信技术。1996年,Goldschlag[2]等美国海军研究实验室的员工提出了第一代洋葱路由技术,洋葱路由网络首先在通信双方之间建立一条虚电路,传输路径中的任一路由节点只知道前一个节点和后一个节点的身份信息,为建立连接的双方提供实时的双向匿名服务,因而它是一种低时延的匿名通信技术。2004年,Dingledine[3]等提出了第二代洋葱路由技术,即实现Tor的主要技术,在第一代的基础之上进一步提高了安全性,如将加密算法由公钥加密变为了Diffie-Hellman密钥交换算法。
本文中匿名的定义是基于Pfittzmann等在PET 2000上提出的匿名与隐私研究的术语提案,“匿名”是“一个主体在一组集合(即匿名集合,AnonymitySet)中不可识别的状态”。匿名集合指的是“所有可能的主体构成的集合”。根据匿名集合的大小可以判断匿名系统的匿名性强弱,可以理解为匿名集合越大,匿名集合中的每个对象被攻击者关注的概率越低,则匿名性越强;根据匿名集合的变化可以衡量攻击者对匿名系统的攻击效果[4]。
对通信系统匿名性定性、定量的定义一般都采用基于信息熵的定义[5],具体形式如下:
为匿名集合中对象的数量,P为集合中的对象被攻击的概率。由于该匿名性定义将匿名集合中的对象数量、集合中每一个对象被攻击的概率等因素都考虑到,因此可以使用它来定量的描述和判断一个通信系统的匿名性。
匿名可以分为三种类型:发送者匿名(sender anonymity)、接受者匿名(receiver anonymity)和通信关系匿名(relationship anonymity),这三种类型分别保护了发送者的身份信息不被泄漏、接受者的身份信息不被泄漏、双方是否在进行通信的状态不被泄漏。
Tor网络是由分散在全球的志愿者提供运行的路由节点构成的一个分布式的覆盖网络,其主要由以下5个基本节点构成:
(1)权威目录服务器(Authoritative Directory):Tor网络的核心,负责整个网络中节点信息的维护,并以节点快照和描述符的形式提高给Tor客户端代理。
(2)路由节点:也称为中继节点,是Tor网络的基础,两个路由节点之间采用传输层协议TLS进行加密传输,在通信过程中,一般选择3个节点建立匿名链路。
(3)洋葱代理(Onion Proxy):Tor的客户端,为客户端提供本地的SOCKS代理,负责建立匿名链路。由于其使用SOCKS代理,因此Tor只能通过TCP传输消息。
(4)网桥节点(Bridge):网桥是一类特殊的中继节点,属于未公开的资源,Tor用户只能通过Https或E-mail请求的方式获取Tor网桥。网桥可以作为匿名链路中的第一跳,即入口节点,来对抗节点的枚举攻击。
(5)隐藏服务器:运行隐藏服务的服务器可以在为用户提供网络服务的同时,隐藏自身的IP地址。
(1)用户首先通过Tor客户端代理从目录服务器获得Tor路由节点的快照及描述。Tor代理会周期性地从目录服务器中下载Tor网络中节点的信息,如IP地址等,用于选择建立匿名链路的路由节点。
(2)Tor代理基于Tor匿名链路建立算法选择3个路由节点建立匿名链路,如图1所示,分别是入口(Entry)节点,中间(Middle)节点,出口(Exit)节点。在链路的建立过程中,Tor代理分别与入口、中间、出口节点通过Diffie-Hellman密钥协商生成共享密钥K1,K2,K3,用于在接下来的通信过程中加密转发数据。
图1 Tor匿名网络通信的基本结构
(3)在通信过程中,客户端依次使用第二步中生成的密钥K3,K2,K1对将要传输的消息进行AES加密,当入口节点接收到来自客户端的消息后,使用K1对其解密后转发给中间节点;中间节点使用K2对接收到的消息进行解密后转发给出口节点;出口节点使用K3对收到的消息进行解密,还原出客户端发送的原始消息,最后发送给通信目标。当通信目标接收到来自客户端的消息后,其会向客户端返回相应的数据,通信过程与上述过程相同,不同的是由出口节点处开始,因此,针对每一个来自入口节点的数据,客户端都会依次使用K1,K2,K3对其进行解密,以此来还原出通信目标所返回的数据。
客户端代理除了选择3个路由节点来建立匿名链路之外,也可以选择Tor网桥节点来作为匿名链路的入口节点。由于Tor网桥节点并不是公开的资源,而是由Https,E-mail等方式发布,因此可以避免用户和攻击者通过枚举方式得到所有的网桥节点,增加了网络的匿名性。
根据攻击方法的不同,将匿名性攻击技术分为被动攻击和主动攻击两类。
被动攻击是攻击者通过监视和记录进入和离开匿名网络的流量来进行分析,得出一定的特征后再进行攻击。它的优点是隐蔽性好,只需要监听网络流量目前主流的被动攻击技术即基于网站指纹的匿名性攻击。
2.1.1基于网站指纹的匿名性攻击
指纹攻击技术主要通过监视匿名网络通信的一端,如用户端的流量,再利用观察到的特定网站经匿名网络返回的数据包进行特征分析,得出相应的网站指纹。
Panchenko[6]等提出了一种通过提取Tor客户端用户访问特定网站的流量的大小、时间和方向特征来得出指纹,以此来识别匿名通信的目标服务器,如图2所示。
图2 基于指纹特征的匿名性攻击
首先通过匿名网络访问特定的网站,通过提取网站流量的特征来构造向量机模型,再通过嗅探用户的网络流量,利用训练好的模型进行分类和识别,最终推断出用户访问的网站或者目标服务器。
随着对机器学习研究不断深入,为匿名网络的指纹攻击技术提供了技术支持,目前指纹攻击方法使用的机器学习算法通常包括支持向量机(SVM)、k近邻算法以及深度神经网络等,通过这些算法训练出的模型对指纹的识别会更准确,从而破坏匿名通信网络的匿名性。
被动攻击需要对通信网络的一端进行长时间的监视和记录大量的流量数据,虽然具有很高的隐蔽性,但是攻击效率不高。与被动攻击相比,主动攻击技术具有高效率和较高的实时性。常见的匿名性主动攻击方法有恶意节点攻击、水印攻击、单元计数攻击、重放攻击等。本文主要介绍基于流量确认或者流量分析的匿名性攻击技术:水印攻击、单元计数攻击和重放攻击。
2.2.1水印攻击和单元计数攻击
水印攻击技术属于一种流关联技术,即攻击者在匿名通信链路的一端主动植入水印,在可能的链路另一端进行流量监测,如果能够在链路的另一端检测到水印,则说明两者之间存在通信关系,也就是发送者和接受者的通信关系不再是匿名,如图3所示。水印攻击方式兼具高隐蔽性、高效率和实时性的特点,是网络层最主要的流量攻击方式之一。
图3 基于流量确认的水印攻击
水印载体可分为包载荷、流速率、包时间3种类型,基于这3种类型,流水印攻击技术的研究方向也多种多样,如基于流速率特征的水印攻击、基于流时间时隙分割特征的水印攻击等。
单元计数攻击的原理类似于水印攻击,但与水印攻击通过修改水印载体的特征不同的是,单元计数攻击主要针对通信过程中的传输单元特征,在单元之间插入特殊信号,攻击者在已经被控制的恶意节点处进行检测。
2.2.2重放攻击
重放攻击技术最初是由Pries[7]等提出的一种匿名网络追踪技术,其属于流量确认攻击。由于Tor在通信过程中采用计数模式的AES加密算法(AES-CTR),因此只要改变中途的计数器数量,导致后续的出口节点解密失败,就可以使匿名通信过程受到干扰失败。
Fu[8]等基于Tor的AES计数器加密模式的协议缺陷,提出了一种主动的流量确认攻击方法。首先,假设攻击者已经控制了匿名链路的入口节点,则攻击者就可以在该入口节点处对要发送的数据包进行复制,然后沿着相同的匿名路径发送给出口节点,由于重放的数据包扰乱了AES计数器的结果,在出口节点处无法正确解密重放的数据包,导致此匿名链路通信失败,如图4所示。
图4 重放攻击完整过程
重放攻击是一种效率极高的攻击方式,并且需要的资源也很少,通过控制Tor匿名网络中的小部分节点,即可使大部分的匿名通信链路中断,降低整个网络的匿名性。
本文首先概述了匿名网络Tor的发展历程,从最初的Mix网络技术直到第二代洋葱路由技术,Tor网络是基于第二代洋葱路由技术的匿名网络。匿名性是对于一个匿名通信系统的重要衡量标准,是通信系统安全的核心问题,采用基于信息熵的匿名度定义可以较为准确评价一个系统的匿名性。匿名通信网络可以使得用户在进行网络行为时自身的隐私不被泄露,但是匿名网络的快速发展以及用户的不断增加,导致针对匿名通信的攻击技术也在不断迭代更新。
匿名性攻击分为被动攻击和主动攻击,被动攻击技术以耗费大量时间和资源对流量进行监测和记录分析为主,如基于指纹推断的攻击技术,尽管通过机器学习算法如支持向量机等技术可以帮助攻击者建立更为准确的模型,但是随着网络的发展和网站的不断更新,并且由于用户访问网站的时间是随机的,导致攻击者想要及时更新指纹库和嗅探流量都很困难,因此,在现实生活中,这种攻击方式是不可取的。与被动攻击技术相比,主动攻击技术具有更高的效率和实时性。水印技术通过在发送者要发送的数据包中植入标记特征或者信号,然后在出口节点处进行流量的监测,如果发现标记匹配,则可以确定发送者和接受者的通信关系。重放攻击是一种以较低的资源来获得较高的攻击效果的方式,具有高效率。假设攻击者控制了入口节点,通过在入口节点处复制要传输的数据包,然后沿着相同的路径经过中间节点,发送给出口节点。由于中途计数器受到了重放的干扰,导致出口节点不能够正常的解密数据包,因此通信过程被迫中断,从而降低了系统的匿名性。
随着互联网安全的不断发展,匿名通信已经成为其不可分割的一部分。匿名通信网络最初的目的是保护通信双方的隐私不被泄露,但是如今匿名攻击技术层出不穷,未来希望Tor匿名网络可以在保护用户隐私的同时也能够监测恶意流量并屏蔽恶意行为。
[1]CHAUM D.Untraceableelectronicmail,returnaddre-sses, and digitalpseudonyms[J].CommunicationsoftheAC-M,1981,24(2):84-90.
[2]GOLDSCHLAG R,MATHEWSON N,SYVERSON P F. Hiding routing information[C]//First International Worksh-op on Information Hiding. 1996:137-150.
[3]DINELEGINE R,MATHEWSON N,SYVERSON P. Tor:the second-generation onion router[C]//Proceedings of th-e 13thUSENIX Security Symposium. 2004:303-320.
[4]PFITZMANN A,KHNTOPP M. Anonymity,unobserv-ability,and pseudonymity:a proposal for terminology[C]//Pr-oceedings of Workshop on Design Issues in Anonymity and Unobservability. 2000:10-29.
[5]Díaz C,Seys S,Claessens J,et al. Towards measuri-ng anonymity. Privacy Enhancing Technologies,2482:54-68.
[6]PANCHENKO A,NIESSEN L,ZINNEN A,et al. W-ebsite fingerprinting in onion routing based anonymization n-etworks[C]//Proceedings of the 10thannual ACM workshop on Privacy in the electronic society. 2011:103-114.
[7]Pries R,Yu W,Fu Xinwen,et al. A new replay atta-ck against anonymous communication networks. //Proc of th-e IEEE Int Conf on Communications(ICC). Piscataway,NJ:IEEE, 2008.
[8]FU X,LING Z,LUO J,et al. One cell is enough t-o break Tor’s anonymity[J]. Proc. Black Hat DC,2009.