一种新型匿名网络结构的设计
2022-07-12王勇军
刘 昊 王勇军
(国防科技大学计算机学院 湖南 长沙 410073)
0 引 言
许多网络应用,例如网络选举投票、军事部门通信等,在使用过程中对于通信内容的安全性要求非常高,同时,对通信用户双方或者是某一方的身份保密性要求非常高。传统通信网络在这方面不能满足要求。因此,匿名通信技术应运而生。匿名通信[1]利用加密、转发、伪装、分片等手段来对通信双方身份信息、通信关系、位置信息、通信内容等进行隐藏,从而实现对匿名网络用户的隐私保护。
本文以当前应用最为广泛的匿名通信网络——第二代洋葱路由系统TOR现有的架构为基础,提出一种改进的匿名通信网络架构方案,这种新的架构能够解决一些当前TOR网络架构面临的安全问题,通过网络结构上的调整对该匿名网络抵御攻击的能力进行提升。
1 背景知识与存在问题
1.1 TOR简介
TOR(The Onion Router)是第2代洋葱路由算法的一种应用实现[1-2],同时引入了P2P技术。用户通过它可以在因特网上进行匿名通信。
TOR的组成包括洋葱代理(Onion Proxy,OP)、洋葱路由器(Onion Router,OR)、目录服务器(Directory Server,DS)。OP是TOR网络的用户终端,普通主机一旦安装了TOR客户端,即可加入TOR网络,成为OP,随时在TOR中发起匿名通信或接收匿名消息;OR是整个TOR网络的路由器集合,任何来自OP的消息都通过它们中的一部分节点构成的TOR链路进行转发,从而达到通信消息层层封装,通过转发隐藏通信双方等目的;DS则是整个TOR匿名网络架构的核心,所有的设备加入网络都需要向目录服务器注册,并定期向它上报状态。它储存着TOR网络的状态信息、OR列表,以及网络中设备的公钥信息等相关内容。同时,为了兼顾信息安全与传输时延,TOR系统在构建链路的过程中使用非对称密钥,在具体的通信过程中使用在建链阶段协商好的对称密钥对通信内容进行加解密。
TOR的网络结构如图1所示。
图1 Tor系统网络结构
一台已经在DS注册,加入TOR匿名网络的OP向目标接收方EXIT发起匿名通信,主要分为以下四个步骤:
(1) 获取路由列表。当OP决定向接收方EXIT建立匿名通信链路,OP首先向目录服务器DS发起请求,获取当前TOR网络中可用的OR列表、OR的状态信息(包括带宽、CPU使用率等)。同时,下载OR的公钥信息等。
(2) 建立通信链路。OP选择路由列表中的几个OR(通常为3个,这里分别记作OR1、OR2、OR3)构成它想要的一条匿名通信链路,OP首先向OR1发送一个类别为CREATE的协议报文,并将其与OR1之间的对称的会话密钥sk1用OR1的公钥进行加密放在报文载荷中,OR1收到后,知晓OP试图建立一个新通信链路,并用它的私钥对消息进行解密,从而获得它与OP之间的会话密钥sk1。
同样,当OP试图对链路进行拓展,它需要通过OR1来进行。OP继续向OR1发送一个内容为EXTEND的协议报文,报文载荷中包含OR2的名字以及OP与OR2间的会话密钥sk2。由此OR1知晓需要将链路拓展至OR2。因此OR1使用OR2的公钥,对sk2进行加密,发送至OR2。OR2收到后,用自己的私钥解密消息,获得它与OP间的会话对称密钥sk2。最后,OP使用上述方法,依次将链路拓展至OR3、EXIT,在TOR网络中建立起一条完整的匿名通信链路。
(3) 发送匿名消息。当链路建立完毕,OP将发送给EXIT的内容明文msg用在建链过程中协商的对称密钥sk1、sk2、sk3层层加密,形成密文MSG,其中MSG=sk1(sk2(sk3(msg)))。消息MSG按照链路依次经过OR1、OR2、OR3,被它们使用自身与OP协商好的密钥sk1、sk2、sk3依次解密,依次生成sk2(sk3(msg))、sk3(msg)、msg,OR3将解密后的消息,明文的msg转发至EXIT。
(4) 接收方返回消息。EXIT向OP返回消息时,与发送过程中层层解密不同的是,由于EXIT并没有与OR们协商会话密钥,它只能将明文消息msg′直接发送出去,而消息返回过程中沿着原路径的反方向OR3、OR2、OR1传输,由OR们对它进行层层加密,依次生成sk3(msg′)、sk2(sk3(msg′))、sk1(sk2(sk3(msg′)))。最后由OR1将MSG′=sk1(sk2(sk3(msg′)))传递回OP。由于OP存有密钥sk1、sk2、sk3,在OP处可直接将消息一次性解密,还原成明文msg′。由此,一次消息的往返通信结束。
为了便于理解与描述,上述过程中的对称会话密钥直接用在建链协议消息中被加密传递的sk1、sk2等表示。事实上,TOR网络中使用DH密钥交换协议来生成对称的会话密钥。即会话密钥本身不会在建链过程中被传输。协商双方仅在链路中传输一部分协议参数,真正的会话密钥sk1、sk2等由协议双方根据参数自行计算获得。这样的做法大大提高了加密会话的安全性。
同样,实际传输中的报文结构相较MSG而言,也复杂得多。此处为方便对于消息转发时加解密的理解,使用简单的结构MSG=sk1(sk2(sk3(msg)))进行表示。
1.2 TOR面临的攻击威胁
1.2.1出口节点无保护
由于TOR系统采用链路中OR节点层层解密的形式,因此当来自OP的消息经过最后一个OR后,该OR将解密它与OP事先协商好的最内部的一层对称密钥加密。经过此步骤后,从这个OR里发出至EXIT节点的报文将是无TOR匿名系统封装保护的明文;当接收方开始向发送方返还消息,按照1.1节(4)中的步骤,将采取历经路由层层加密的形式。同样地,在消息从EXIT发送至逆序第一个OR(即顺序最后一个OR)的过程中,它也是无保护的明文。由于很多情况下,客户端访问的都是公共服务,因此只需要隐藏发送方身份[3]。但匿名通信一旦用于军事等特殊场合,对通信双方的身份以及通信内容都有较高的保密要求,当前的TOR网络将无法满足。
1.2.2单点失效问题
现有的TOR网络架构是以目录服务器DS提供的注册、管理、存储服务为基础的,因此目录服务器成为整个TOR匿名网络系统的中心。这样做虽然使用与管理起来方便,但由于目录服务器的地址是公开的,因此也给TOR系统带来了单点失效问题。也就是说,一旦目录服务器遭受黑客攻击变得瘫痪,那么整个系统将无法正常运行。事实上,只需要一定规模数量的主机同时进行D-DOS攻击就能达到这个效果。
1.2.3低成本流量攻击[4]
由于TOR网络各单元的信息都存储在目录服务器DS上,因此一旦恶意节点以志愿者节点身份加入网络,便可以访问目录服务器,下载TOR匿名网络内所有OR的信息。同时,该恶意节点可以发挥网络探针作用,与获取到的OR列表中的各个节点建立连接,并通过这个连接发送大量特殊的探测数据包,对探测目标的网络状况、负载等情况进行收集与分析。同时,探针节点通过被探测对象的状态变化,来推测其传输模式的变化,从而进一步分析或证实当前TOR匿名网络中存在的匿名链路信息[5]。
1.2.4低资源路由攻击[6]
为了提升被OP选中成为匿名链路成分的概率,加入TOR网络的恶意节点常常在向DS上报状态的时候对它的带宽、在线时长、CPU占用率等表明其作为路由节点优劣性的信息进行谎报。若OP通过择优选用策略同时选中了两个恶意节点分别作为某条链路的入口和出口节点,那么安置该节点的攻击者可以同时获得使用该链路的发送者和接收者的身份。加入TOR网络的恶意节点只需达到一定数量,便能以极大概率成功实施低资源路由攻击,使TOR网络的匿名性受到影响[5]。
2 新型匿名网络的架构设计
当前基于TOR的匿名通信网络改进方案已经积累了一定的成果,它们通常是通过增加SDN[6-8]网络模式、置换复杂的自定义洋葱层协议或安全协议[3,9-12],从数据层面提升系统的安全性能;或者是通过在TOR网络结构上糅合一个外部网络[13-14]等来提升通信系统的匿名性。我们在学习现有方案的基础上,提出一个更加简洁、具有可观的安全性能,并立足于网络结构层面的新型匿名网络方案。
2.1 网络组成
为了抵御上述针对TOR网络的攻击行为,本文提出一种新型的匿名网络架构。
这种新型架构采用了双层冗余目录服务器的形式,如图2所示。图中的公钥服务器以及分组目录服务器可以不仅仅是3台,每个分组内的路由节点也并不一定是9台,图中的数量仅作为示意。
图2 新型匿名网络结构
图2中的E1、E2、E3是我们在TOR系统原本的架构上增加的一个公钥目录服务器组。它们互为备份,共同提供公钥服务。按照1.2.1节中的阐述,在特定的场合,消息的发送方和接收方(或网络服务的提供方)有时需要进行能够保护双方身份及会话内容的高保密要求的通信。因此,在消息发送方和接收方之间,我们增加了一层非对称加密处理。发送方在发送消息之前,先使用接收方的公钥将消息加密,再将加密过的消息,通过洋葱链路传递至接收方。这样,即使是经过了链路所有OR层层转发解密后的消息,仍然是用接收方的公钥加密保护的。除了接收方本身的任何一方获取到该消息,都无法看到其真正的内容。
因此一旦客户端决定加入新型匿名网络进行高保密通信,则可以事先将自己的会话公钥发布在网络内任意一台公钥服务器上。该公钥服务器会将公钥信息同步至公钥服务器组的其他服务器上,保证公钥服务器之间信息同步,互为冗余,互为备份,以提升系统公钥目录服务的鲁棒性。当发送方试图给新型匿名网络内的主机发送消息,则可以向公钥目录服务器组请求下发该接收方主机的公钥。
2.2 工作机制
我们先对一些元素进行数学符号的定义:
(1)E(X,Y):用公钥Y对信息X进行非对称加密。
(2)D(X,Y):用私钥Y对信息X进行解密。
(3)Gx:主机x的加密公钥。
(4)Px:主机x的解密私钥。
(5)DDSi:分组目录服务器DSi(i≤n)维护的其所下辖的洋葱路由列表。
(6)ORDSi:分组i(i≤n)中的一台洋葱路由器。
客户端在新型匿名网络发起一次通信的具体流程如下。
(1) 主机A(OP)试图与主机B(EXIT)进行匿名通信,首先向公钥服务器组请求获取主机B的公钥。公钥服务器组在本地检索B的公钥,如果B事先已经将其公钥发布在公钥服务器上,那么公钥服务器组将B的公钥GB返还给A(若公钥服务器上并没有记录主机B事先发布的公钥,那么本次通信将省略这步非对称加密处理操作)。
(2) 主机A分别向所有分组目录服务器DS1、DS2、DS3发起请求,请求每个分组目录服务器下辖的洋葱路由列表、洋葱层公钥等信息。并分别在每个分组目录服务器的路由列表中选择一台质优洋葱路由主机作为本次通信链路的组成节点,依次记作ORDS1、ORDS2、ORDS3,其中ORDS1∈DDS1,ORDS2∈DDS2,ORDS3∈DDS3。
(3) 主机A以随机的顺序排列ORDS1、ORDS2、ORDS3,并依照排列后的顺序按传统TOR的算法进行建链与链路拓展。因此,本次通信最终的洋葱链路可能是A→ORDS3→ORDS1→ORDS2→B。
(4) 主机A将消息msg′=E(msg,GB),通过建立好的洋葱链路,发送至主机B。主机B接收到从洋葱路由层层解密后的信息msg′,使用自己本地的私钥PB还原出msg=D(msg′,PB)。
3 性能分析
对照TOR系统当前所面临的各种攻击威胁,我们对其进行性能分析。
3.1 出口节点无保护问题
对于出口节点无保护问题,我们在消息发送方和接收方之间增加了一层非对称加密处理后,攻击者已不能从最后一个OR和EXIT相连的链路上获取明文通信信息。攻击者无法看到消息内容,且无法据此判断出通信双方身份,本问题得到解决。
3.2 单点失效问题
对于单点失效问题,我们在新型匿名通信网络架构中引入了复数台分组目录服务器,在一般的情况下,它们共同承担起使系统正常运作的责任;而在一台或多台分组目录服务器遭受攻击的情况下,剩下仍然存活的分组目录服务器可以调整运行方式,继续维持系统的正常运行。也就是说,在n台分组目录服务器中,只要还有至少1台仍能够工作,那么该新型匿名网络就可以继续运行下去。假设攻击者有足够的能力来进行D-DOS攻击,且致使一个目录服务器瘫痪的攻击代价为P。那么要使一个传统的TOR网络失效,只需瘫痪它的唯一目录服务器,因此攻击代价为P;而对于新型匿名网络而言,攻击者至少需要致瘫n-1台分组服务器才能够使系统无法工作,因此攻击者使系统崩溃的攻击代价最少应为(n-1)P,显然,新型匿名系统分组越多时,分组服务器数量n越大,攻击者的攻击代价也就越大。
3.3 低成本流量攻击
我们编写一个C++程序运行在实验平台上,用于模拟x台攻击主机在n个分组服务器上进行随机注册的过程。实验循环1×107次。对于每个x,我们分别统计这个数量的主机在往n台分组服务器上注册的1×107次中,有多少次成功地分别在每个服务器上都注册了(即没有空闲的分组服务器)。
n=3时,我们得出实验结果如表1所示。
表1 n=3时x取不同值的命中次数
我们把命中次数与总实验次数的比值认为是攻击主机数为x时在n个分组目录服务器下的命中概率,由表1我们能够看出,当x≥9时,攻击主机才能够以超过0.9的概率分别注册到每个分组目录服务器上,才能获取全部洋葱路由的信息;而对于传统的TOR,仅仅需要1台攻击主机就能够达成这个目的。且在实际情况中,TOR的中转数往往大于或等于3[8]。因此我们在n取大于等于3的几个数值下(n=3、n=4、n=5、n=6)重复上述的模拟实验,具体统计结果见图3、图4。
图3 不同n值时的命中概率(达到0.9时停止)
图4 不同n值时突破命中概率阈值的x值
图3是模拟实验中分组目录服务器数量n在不同取值下画出的命中概率折线图,其x轴为攻击主机数,y轴为107次模拟实验中成功命中的概率;图4则是以分组目录服务器的数量n为横轴,命中概率首次达到0.5与0.9时攻击主机数x的取值为纵轴作出的折线图。根据图3、图4可以看出,随着n的一个个增加,投入攻击主机数也需要相应增加才能够保证命中概率。对比传统的TOR对于低成本流量攻击的敏感,新型匿名网络极大地增加了攻击方的攻击成本。尤其是当命中概率需要达到0.9以上时,攻击成本增长的速度更加迅速。
3.4 低资源路由攻击
继续编写一个C++程序运行在实验平台上,用于模拟x台攻击主机在n个分组服务器上进行随机注册的过程。我们假定攻击主机的状态是所有注册节点中最优秀的,系统通过择优选用的策略首先将注册成功的攻击主机选择作为中转节点。实验循环1×107次,对于每一次实验,我们随机选取n个分组中的两个,注册在这两个分组上的攻击主机将被系统分别选定为入口节点和出口节点(匿名链路中第一个OR和最后一个OR)。对于每个x,我们分别统计这个数量的主机在往n台分组服务器上注册的1×107次中,有多少次成功地在这两个分组上都注册了(即成功以攻击主机的身份担任了入口和出口节点)。
在n、x分别取不同值的时候,我们统计出的实验结果如表2所示,其中P为实验中的成功次数与107的比值。
表2 新型匿名网络在不同n值、x值下,P的取值
表3 传统TOR网络在不同n值、x值下,P的取值
对比表2、表3,x≥3时,攻击成功的概率有明显下降。我们继续实验,测算出在不同的n取值下,将使攻击成功率P分别达到50%和90%的x,作为概率阈值k,与传统的TOR网络的k值进行比较,比较结果如表4、表5所示。
表4 对于不同n值,攻击成功率P达到50%的阈值k
表5 对于不同n值,攻击成功率P达到90%的阈值k
我们将阈值差在图5、图6中继续用折线图的方式直观表示出来。
图5 对于不同n值,攻击成功率P达到50%的 阈值k的折线图
图6 对于不同n值,攻击成功率P达到90%的 阈值k的折线图
从表4、图5可以看出,新型匿名网络在50%的概率阈值k上比传统TOR网络有少许增长,在n较小时,k的相差也较小。随着分组数n的增加,k的差值缓慢增大;而从表5、图6中可以看出,对于90%的概率阈值,新型匿名网络相比传统TOR从n=3开始就保持2.67倍以上,并随n的增加在持续增长。也就是说要以90%的成功率攻击新型匿名网络,则至少需要付出2.67倍以上的代价来实施攻击,这对于提升系统防御能力来说,是切实有效的。
4 结 语
本文提出一种新型匿名通信网络架构的方案,该方案通过增加目录服务器并修改中继路由节点的组织形式的方式,基本消除了严重威胁传统TOR匿名网络通信安全的单点失效问题。同时,通过增加公钥服务器层,解决了通信系统出口无保护问题。并一定程度从机制原理上缓解了低成本流量攻击与低资源路由攻击,使低成本流量攻击不再“低成本”,并将低资源路由攻击的攻击成本提升至2.67倍以上。在不增加协议和系统机制复杂性的前提下,提高了目录服务器与通信系统的安全性,为用户提供更稳定、更安全、更隐秘的通信环境。