匿名通信研究
摘要:本文主要介绍了匿名通信相关内容,首先对匿名通信系统做了简要概述,其中阐述了基本分类及其与暗网的联系。其次介绍了4种典型的匿名通信系统,Tor,I2P,freenet和ZeroNet随后介绍了匿名通信的关键技术,最后就Tor和I2P做了多方面比较。
关键词:匿名通信 Tor 洋葱路由
1 匿名通信系统概述
匿名通信,指采取一定的措施隐蔽通信流中的通信关系,使窃听者难以获取或推知通信双方的关系及内容。匿名通信的目的就是隐蔽通信双方的身份或通信关系,保护网络用户的个人通信隐私。匿名通信系统是提供匿名通信服务的一套完整网络,主要由提供加密服务的节点组成。暗网是匿名通信系统的其中一种表现形式,利用隐藏服务机制,使监管者无法有效监控暗网中的非法活动。
1.1 基本分类
目前,针对匿名通信的学术研究主要包括三个方向:基于Mix算法的匿名通信技术研究、基于OnionRouting算法的匿名通信技术研究和基于泛洪算法的匿名通信技术研究。
基于Mix算法的匿名通信技术通过选择网络中节点确定整个传输过程的路由顺序,容易被攻击,且传输时延较高,不适合实时通信。
基于OnionRouting算法的匿名通信技术从洋葱网络中随机选择节点组成通信链路,且通信链路随时可变。与基于Mix算法的匿名通信技术来看,基于OnionRouting算法的匿名通信技术更注重数据通信的安全性、有效性和实时性,以Tor为实例典型。I2P技术借鉴并改进了OnionRouting算法,某程度上说也属于OniomRouting算法的匿名通信技术。
基于泛洪算法的匿名通信技术是匿名通信传输领域最新提出的研究方向,该技术主要基于epidemic、flooding等类洪泛算法实现匿名通信。目前该技术仍处于实验室方案研究阶段,没有形成完整的通信系统。
基于OnionRouting算法的匿名通信系统的Tor、I2P在技术原理、部署实现等方面也有许多不同点,因此在选择何种匿名通信工具如Tor、Freenet、I2P时,需要考虑它们各自的优势。
1.2 与暗网的关系
下面分析Dark Web和Darknet两个术语的区别。
(1) Dark Web指必须通过特殊的软件、配置才能访问的拥有特殊域名的Web站点,搜索引擎无法对其进行检索。
(2) Darknet指必须通过特殊的软件、配置才能访问的包括Web、IRC、文件共享等各类资源和服务的匿名网络,搜索引擎无法对其进行检索。
图1 Darknet和Dark Web的区别
2 典型的匿名通信系统
2.1 Tor匿名通信系统
Tor是基于第一代洋葱路由的低延迟匿名系统,自从2004年被Dingledine等人提出后,由于其能够保证用户隐私安全的同时,还能为用户提供良好的性能体验,例如低延迟、易使用、易部署等诸多特点,这些特点使Tor在近年来呈现出迅猛发展的态势,从刚开始的数10台路由器发展到如今由全世界志愿者共同维护的7000多台路由节点,并且有多达300万用户使用Tor进行匿名通信。
在Tor网络中,主要有客户端、洋葱代理、洋葱路由节点、目录服务器以及网桥服务器,在客户端构建通信链路的时候,洋葱代理根据带宽权重路由选择算法从Tor网络中所有的洋葱路由节点中选择三个节点作为链路上的中继节点,分别为入口保护节点、中间节点及出口节点。
图2 Tor网络架构
(1) 用户客户端(User):Tor客户端,也称为洋葱代理(Onion Proxies,OP),用于在建立链路(也称为电路)的时候从目录服务器下载路由描述符信息和网络共识文件。
(2) 洋葱路由器(Onion Router,简称OR):即洋葱路由节点,主要功能是用于链路的构建以及洋葱数据单元的转发。客户端的洋葱代理在构建链路过程中,洋葱路由节点之间的链路是通过TLS(Transport Layer Security protocol)协议进行加密的。洋葱路由节点不尽可以完成链路的中断、链路的更换以及链路的扩展功能,还可以完成洋葱数据单元的加密和解密功能,以及洋葱数据单元在匿名链路中的转发功能。所以,洋葱路由节点是Tor系统的核心部分,每一条匿名链路由三个洋葱路由节点组成,分别为入口保护节点(Entry Node)、出口节点(Exit Node)及中间节点(Middle Node)。
(3) 目录服务器(The Directory Server):也是Tor洋葱路由器,与普通洋葱路由器的区别是其处于Tor网络的最顶层,主要功能是存储和管理Tor网络中所有路由节点的路由信息。
(4) 网桥服务器:也是Tor洋葱路由器,与普通洋葱路由器的区别是没有在权威目录服务器中记录其路由信息,由于网桥没有对外公开自己的路由信息,纵然ISP把全部在线的Tor路由节点屏蔽,但还有一些没有公开的网桥服务器不能被屏蔽。如果怀疑Tor 网络访问被ISP屏蔽了,就可以使用网桥服务器连接到Tor网络。
图3 Tor网络工作流程
2.2 I2P匿名网络
I2P是一种基于P2P的匿名通信系统,其上运行着多种的安全匿名程序,支持的应用包括匿名的Web浏览、博客、电子邮件、在线聊天、文件分享等。与其他匿名访问工具不同的是,I2P通过不同的隧道将中间节点和目标节点分隔出来,即某个节点运行了I2P并不是一个秘密,秘密的是节点用户通过I2P匿名网络发送了什么消息,消息发送给了谁。
I2P匿名的核心是大蒜路由(一种洋葱路由的变体),通过将多个消息层层加密、打包,经过传输隧道层层解密后到达目标节点。
I2P系统由本地客户端,I2P节点、网络数据库三个部分组成。
(1)I2P的加密过程
如图所示,I2P在通信的过程中对通信信息进行了三层加密:
①“大蒜”加密(ElGamal/SessionTag+AES):加密用户Alice到用户Bob的消息,如a到h的消息;
②隧道加密(private key AES):加密隧道入口节点到隧道出口节点的消息,如a到d、e到h的消息;
③传输加密(DH/STS+AES):加密通信隧道节点之间的消息,如a到b、b到c的消息。
图4 I2P的加密过程
图5 I2P网络工作流程
(2)I2P的拓扑结构
I2P中存在Floodfill和Nonfloodfill两种节点类型。Nonfloodfill为节点的默认初始身份,当节点的性能达到一定要求之后会自适应地成为Floodfill节点,也可以手动配置成为Floodfill节点,I2P中Floodfill节点的个数占整体6%左右。Floodfill节点保存RouterInfo 和LeaseSet 两类数据信息,其中RouterInfo包括节点的ID、通信协议及端口、公钥、签名、更新时间等信息,LeaseSet包括隐藏服务哈希值、多个隧道入口节点哈希值信息、起止有效时间、签名等信息。并根据Kademlia算法来组织所有的Floodfil节点,形成I2P的网络数据库(network database,netDB)以提供对所有RouterInfo 和LeaseSet信息的保存、查询等功能。
图6 I2P拓扑结构
2.3 Freenet匿名网络
Freenet是一个独立的网络,用户可以通过Freenet匿名的分享文件、浏览和发布“Freesite”(只能在Freenet网络中访问的网站)、在论坛中发帖,不用担心被审查。Freenet不是代理服务器,并不能像Tor一样允许匿名地访问网络。
由于没有中央服务器,Freenet的工作方式有了很大的不同:Freesite不支持Javascript,服务器端脚本等。
Freenet是去中心化的,很难被攻击,并且其节点之间的通信是加密的,因此要了解谁在请求某些信息以及请求的内容是什么,是极其困难的。因此Freenet可以在用户上传、请求和搜索资源时保障其匿名性。
Ian Clarke在设计Freenet时,最主要的目就是通过Freenet来“抵御内容审查”以保障网络中的言论自由。
图7 Freenet官方介绍
(1)Freenet的体系结构
Freenet是一个分布式的匿名信息存储与检索系统。系统由若干个独立自治的节点组成,每个节点都向系统贡献一部分自己的存储空间,同时也可以检索系统中的共享文件并请求使用系统中其他节点的存储空间来存储自己的文件。系统中的每个文件用一个与位置无关的key来命名,每个节点需要维护一个本地数据存储(datastore)和一个动态的路由表。
(2)文件查询和插入
Freenet系统的路由机制不同于Gnutella中的泛洪模式,而是借助本地路由表采用深度优先的原则进行资源查询。
图8 一个典型的查询过程
(3)优点
①高效性
成功的插入和查询为系统添加了许多捷径(shortcut),使得后续的查找只需经过很短的路经长度就能找到目标文件,大大提高了系统效率。
②高可用性
通过上面的描述,可以看出检索和插入操作时,通过在沿途各节点缓存目标文件,无形中在网络中广泛的传播了流行的文档,增加了它们的副本数。即使系统中有30%的节点失效也能保证这些文档的使用。
③聚集性
依据key值相近度的路由机制,使节点逐渐积累具有相似关键字的文件,同时节点路由表存储的关键字逐渐具有相似性(关键字聚集)。这种聚集性会使路由效率随时间逐步提高。
2.4 ZeroNet网络
ZeroNet是使用比特币加密算法建立的分布式抗审查的网络,是典型的分布式P2P网络架构应用。ZeroNet的特征包括:不需要设置任何配置,网络实时更新,开放代理ZeroProxies,支持Tor插件实现匿名等。
图9 ZeroNet暗网架构图
3 匿名通信关键技术
3.1匿名接入技术
3.1.1 bridge节点
bridge节点是规避基于IP阻断的网络监管而开发的一种接入技术。bridge节点与一般的Tor中继节点功能相同,但其信息未被目录服务器公开,从而降低了被发现和阻断的风险。
bridge节点信息获取方式
在BridgeDB数据库中保存了bridge节点信息,用户可通过直接访问官网站点获取3个bridge节点。
通过Google或Yahoo邮箱向指定邮箱发生请求,邮件服务器会自动回复3个bridge节点信息。(由于Google和Yahoo申请虚拟邮箱地址比较困难,所以可有效的防止无限制获取bridge节点信息等攻击)
3.1.2 obfs混淆代理
obfs混淆代理是一个传输插件,用于应对监控者使用深度包检测(deep package inspection)技术来识别Tor流量的问题。
分别有obfs1-4,4个版本。
obfs2
采用分组密码(AES-CTR-28)对Tor的传输数据进行加密,擦出了Tor流量相关的标识信息,从而实现了有效混淆。但设计上存在2个问题:
握手阶段的连接容易被识别。通信双方在传输数据之前需要交换秘密信息并协商出绘画密钥,而在这一阶段的密钥种子是明文传输且格式固定,到这这种obfs2流量容易被审查机构识别并计算出会话密钥。
可利用Tor客户端探测bridge节点是否可以进行obfs2握手,从而实施主动的bridge探测攻击。
obfs3
采用Diffie-Hellman协议来计算通信双方的共享密钥,并由此生成对此密钥。obfs3在握手阶段有了很大改进,但其密钥交换阶段仍缺乏对bridge身份的验证,存在中间人攻击和主动探测攻击的风险。
obfs4
ScrambleSuit提出利用外带方式交换共享秘密实现通信双方的互认证。obfs4进一步利用bridgeDB,实现了基于bridge身份验证的密钥交换。
客户端通过bridgeDB查询bridge节点,获得其IP地址,节点ID和公钥信息。只有同时匹配这3个信息,才能通过obfs4节点的身份认证并建立连接。
3.1.3 Meek隐蔽通道构建技术
Meek将Tor流量伪装为HTTPS混淆的云服务流量。Meek网桥分为三种转发路径,一种基于Amazon云服务器转发,一种基于Azure云服务转发,第三种基于Google云服务转发,实际过程中Google云服务转发方式一般无法成功介入Tor网络。
Meek客户端担任Tor客户端的上层代理。当Meek客户端接收到来自Tor客户端的数据时,将数据封装到POST请求中,并通过前置域名服务将请求转发给Tor Bridge。在Tor Bridge上运行着一个服务器程序,即Meek服务器,Meek服务器解释HTTP请求,将负载内容发送到Tor网络。
完成Tor网络的访问之后,数据经过Tor Bridge返回到客户端。Meek服务器在接收到Tor Bridge准备回传给客户端的数据时,先把数据封装到HTTP响应的结构体内,之后发送到Meek客户端。Meek客户端在接收到HTTP响应之后,才会将其中的内容传送给Tor客户端。这些请求和响应是严格序列化的,客户端直到接收到第一个请求的响应之后,才会发送第二个请求,所以一定程度上影响了网络访问的效率。
图9 Meek体系结构
3.1.4 FTE加密流量转换技术
Format-Transforming Encryption,主要通过传统对称加密,将密文转换为指定的传输格式。
obfs流量混淆将原协议流量转换为无序的未知流量,而FTE则输出具有一定协议格式的流量。
其中用户输入的正则表达式可从DPI系统源码中直接提取或根据应用层流量自动学习得到。这使得基于正则表达式的DPI技术会将其误识别为用户选定的协议流量,从而规避审查。
由于大部分Tor流量为HTTP流量,默认情况下采用HTTP正则表达式将其转化为HTTP协议,实现流量伪装。
3.1.5 Flashproxy传输插件
是运行在浏览器中的传输插件,利用不断变化的代理主机连接到匿名网络,保证代理的速度快于监管机构的检测、跟踪和阻断速度。(2017年弃用,被obfs4取代)。
使用Flashproxy转发数据的过程中,需要3个组件协同工作:客户端浏览器中的传输插件、代理主机Flash Proxy、第三方服务Facilitator。Facilitator负责客户端的注册和Flash Proxy代理的分配。
工作原理:
首先当客户端需要使用Flashproxy代理服务时,先通过安全集合点连接到facilitator以告知客户端需要代理服务。
然后客户端传输插件开始侦听远程连接。
每个空闲的Flash Proxy会主动轮询facilitator,以获得正在请求代理服务的客户端。
当Flash Proxy获得客户端在facilitator上的注册信息后,便主动发起和客户端的连接请求,再发起对中继节点的连接,最终客户端和目标中继节点通过Flash Proxy通信。
图10 Flashproxy体系结构
3.2 匿名路由技术
3.2.1 洋葱路由
洋葱路由(Onion routing)为一种在电脑网络上匿名沟通的技术。
洋葱路由网络中,消息一层一层的加密包装成像洋葱一样的数据包,并经由一系列被称作洋葱路由器的网络节点发送,每经过一个洋葱路由器会将数据包的最外层解密,直至目的地时将最后一层解密,目的地因而能获得原始消息。
图11 洋葱路由代理技术示意图
洋葱路由技术是为了阻止在公用网络上进行窃听和流量分析,以提供双向、实时的匿名连接,可以在公开的计算机网络中隐蔽网络的结构,对在互连网上进行的跟踪、窃听和流量分析有很强的抵抗作用,是通信双方用洋葱包代替通常的TCP/IP数据包,利用代理技术实现与目标系统间的连接。
图12 洋葱数据包的传输过程
(1)洋葱路由技术与其他技术的比较
图13 洋葱路由技术与其他技术在抵抗攻击方面的比较
图14 洋葱路由技术与其他技术在延迟、带宽的综合效益比较
(2)缺陷
①路径信息可以隐蔽,但代理路由器W和Z易成为攻击的重点,尤其是主机A至W、Z至主机B之间是以明文传输,即使采用应用层加密,但传输层的端口地址和IP层的IP地址却是公开的,缺乏端点的安全机制,一旦攻破W或Z节点,则路由器上的链路状态和节点信息将全部公开了.
②所有方案都采用了公钥密码机制,当主机节点增多且数据流量增大时,路由器上解密的时间长,占用大量的CPU资源,路由器的转发效率下降,路由器将成为网络的瓶颈。
③节点必须把公私钥、认证码、可信标识、连接的链路信息、存取控制策略、链路当前状态等信息存放到数据库中,当节点N很大时,维护和管理链路的数据库变得庞大,存取路由信息的时延也加大.因此要满足可接受的效率,N的规模受到限制.
④单一类型的链路效率低,洋葱路由是面向连接的技术,而实际的应用是各不相同的;有些连接是短暂的,如E-mail,而有些连接是长时间的,如RLOGIN和TELNET.因此应根据用户对延迟时间的敏感程度采取不同的连接方式,尤其是采用无连接的技术,匿名效果将会更好。
⑤洋葱技术无法抵抗泛洪式攻击,中间节点尽管难以进行窃听和流量分析,但它可以实行破坏或修改数据包的扰乱式攻击方式,或者在不同的地点对目的地址进行建立连接,并发送大量的数据包,以消耗洋葱路由器的资源,实施像DDos式攻击等.
图15 洋葱路由
3.2.2 大蒜路由
I2P运行原理的核心之一是“大蒜”路由。“大蒜”路由是MichaelJ.Freeman在Roger Dingledine’s Free Haven Master’s thesis 首次提出。I2PRouter根据目标站点隧道节点的顺序,对多个I2P消息包进行层层加密,I2P将每个加密后的I2P消息包比喻为“大蒜瓣”,多个“大蒜瓣”再组合成一个“大蒜”,通过本地客户端的输出隧道发送出去。
(1)层加密
I2P构建了虚拟的隧道,用于传输I2P消息。隧道设计原理借鉴了Tor的OnionRouting 技术,OnionRouting技术的核心思想是将每个节点消息解密后才知道下一个节点的地址信息,这样设计后只有相邻节点才知道互相的信息,间隔节点则完全陌生,从而实现通信内容和通信双方身份的双重隐匿。
从概念上,I2P的大蒜路由与洋葱路由有一定的相似之处。I2P在隧道构建中,以及隧道路由中用到了洋葱路由的层加密技术。
(2)“大蒜”消息包
Michael Freedman将大蒜路由定义为洋葱路由的拓展,也是因为大蒜路由将多个消息绑定在一起,因此把这些消息成为“瓣”。在隧道的终点,每个“瓣”会分别根据自己的传递指令被发送到不同的地点。这一点也是跟洋葱路由区别的本质所在。
在I2P中,每一个客户端消息通过I2CP接口成为一个包含自己传递指令的大蒜瓣,传递指令详细说明了目的地、路由器或者隧道。一般情况下,如果一个大蒜消息只包含一个瓣Clove1,路由器会在大蒜消息中额外增加两个瓣Clove2和Clove3,如图所示。
Clove 1:Http Request Data,用户Alice发送给Bob的请求数据。
Clove 2:Delivery Status Message,用于给Alice的回复,确认端对端消息传递成功或者失败。
Clove3:Database Store Message,包含了原地址的租约集,用于维持终端之间的直接通信(Bob不需要再次向netDb查询Alice租约集)
图16 大蒜消息的发送与分散
图17 大蒜路由
4 匿名网络 Tor 与 I2P 的比较
表1 使用术语比较
表2 认知度比较
表3 性能比较
表4 开发技术比较
表5 关键技术比较
表6 威胁类型分析比较
5 我的思考
匿名通信技术研究是网络空间安全领域的关键技术之一,一直是学术界的热点。随着互联网时代的到来,匿名作为公众的权利,受到越来越多的重视,同时也面临着越来越多的挑战。我认为,匿名通信技术和匿名通信系统的出现,为公众行使自己的权力提供了空间和方式,但这是一把双刃剑。随着匿名通信性能的增加,公众或许会更自由地行使自己的匿名权利,但这同时为不法分子的利用给出了契机。暗网就是一个代表物。暗网通常被认为是和非法活动关系紧密,为犯罪分子提供低风险的协作平台,和挑战“边界”的机会。基于匿名通信系统的隐蔽网络发展至今,已经具有了复杂的形态。像“农夫市场”和“丝绸之路”之类的暗网将会越来越多,我们所已知的仅仅是冰山一角。暗网的域名数量是表层网络的400倍到500倍,访问者在上面不会留下任何痕迹,暗网中包含的被刻意隐藏的内容可能被用于合法目的,也可能被用于隐藏犯罪行为或其他恶意活动,对暗网的利用已经引起有关部门和学者们的注意。暗网不是法外之地,需要我们携起手来,共同整治。
6 参考文献
[1]王良民, 倪晓铃, 赵蕙. 网络层匿名通信协议综述[J]. 网络与信息安全学报, 2020, 6(1):16.
[2]杨云,李凌燕,魏庆征.匿名网络Tor与I2P的比较研究[J].网络与信息安全学报,2019,5(01):66-77.
[3]罗军舟, 杨明, 凌振,等. 匿名通信与暗网研究综述[J]. 计算机研究与发展, 2019, 56(1):28.
[4]明泰龙,汤艳君,张一鸣,刘丛睿.基于Tor的匿名网络资源监测系统的研究与设计[J].警察技术,2021(04):70-74.
[5]杨溢. 基于Tor的暗网空间资源探测技术研究[D].上海交通大学,2018.
[6]郭晗. 基于Freenet的暗网空间资源探测技术研究[D].上海交通大学,2018.
[7]曹旭. 基于I2P的暗网空间资源探测技术研究[D].上海交通大学,2018.
[8]王有文. 第二代洋葱路由匿名系统Tor的性能改进研究[D].北京邮电大学,2017.
[9]许丹妮. ZeroNet内容分析与识别追踪技术的研究与实现[D].东南大学,2020.
[10]张茉莉, 高艳平, 张晓玲. Freenet系统面临的挑战[J]. 电脑知识与技术(学术交流), 2006.