基于SDN的匿名通信系统设计

2021-07-21 03:45王芳鸣陈志浩常承伟
计算机工程与设计 2021年7期
关键词:交换机数据包管理员

王芳鸣,王 斌,陈志浩,常承伟,赵 磊

(中国航天科工集团第二研究院 七〇六,北京 100854)

0 引 言

目前比较典型的匿名通信系统有Tor[1]、Anonymizer[2]、I2P[3]、Freenet[4]等。其中第二代洋葱路由Tor作为目前使用率最高的匿名通信系统,具有拥塞控制、前向加密、目录服务等机制,在一定程度上保证通信的匿名性,防止个人敏感信息的泄露。然而目前Tor在实际应用中依然存在一些问题,比如通信链路建立前,客户端选择网络路由存在着一定的盲目性和不确定性,一旦受控节点被选为出口节点,攻击者就可以向Tor用户发动中间人攻击,对数据进行窃取或篡改。此外,Tor系统由于在数据传输过程中涉及到复杂的加解密过程,会使网络延迟明显增大,给用户带来不好的体验。

本文基于SDN[5]集中控制理念和集群思想提出一种匿名通信系统架构,由一个控制中枢来对底层网络设备下发控制指令,利用多约束最优路径规划算法建立匿名通信路径,保证系统匿名性的同时,降低数据包的转发时延,也使网络架构具有更好的可控性和抗攻击能力。

1 基于SDN的匿名通信系统设计

1.1 设计思想

本文结合SDN网络集中控制理念和集群思想提出一种新型匿名通信系统的设计方案,方案中匿名通信网络由统一的控制中心和多个集群构成,每个集群由一个管理员和若干个具有匿名通信需求的普通成员构成。控制器是整个系统的计算者和控制者,管理员负责管理本集群内的普通成员。

匿名通信网络建立后,控制器通过OpenFlow协议定期获取网络中节点的剩余带宽和在线时长等信息,动态的选择相应节点,利用多约束最优路径规划算法建立匿名通信路径。路径建立后,系统采用转发机制来实现匿名功能,控制器下发流表到路径中各个交换机来指挥数据包的转发,使系统能够在短时间内对主机的匿名请求做出响应。在通信过程中,接收者不知道信息的发送者是谁,发送者和接收者也无法获取对方的真实地址,路径中的中继节点只具有单纯的转发功能,实现了发送者与接收者的不可关联性,从而使匿名通信服务更加安全、可靠。

1.2 系统设计

本文结合SDN网络集中控制理念和集群思想提出一种匿名通信系统架构,并对传统的Dijkstra算法进行拓展,实现多约束条件下的路径选优,基于SDN的匿名通信系统设计如图1所示。

图1 基于SDN的匿名通信系统设计

1.2.1 系统架构

软件定义网络的主要特点是将控制功能从网络设备中提取出来,网络的控制平面在控制器上,转发平面在网络设备上,实现了控制层与数据转发层的分离。基于SDN的匿名通信网络架构如图2所示,从上往下分为应用层、控制层以及数据层。应用层包含了匿名通信服务等相关网络应用。控制平面负责网络控制,主要功能为协议处理与计算。控制器获取系统中网络设备之间的连接信息,并对连接信息进行处理,通过OpenFlow协议定期获取网络中主机的剩余带宽等信息,根据这些信息挑选最优转发节点来建立最优转发路径。数据平面搭建网络拓扑,交换机根据控制平面下发的流表完成数据的转发和处理。

图2 基于SDN的匿名通信网络架构

系统可以看作是由一个控制器和多个交换机及主机组织起来的覆盖网络,将网络中的主机划分为多个集群,每个集群中有一个主机作为该集群的管理员。其中,SDN控制器负责维护网络中交换机节点的相关信息,建立匿名通信路径以及指挥网络中的数据包转发。各集群管理员负责维护该集群中普通成员的地址映射关系,为该集群中普通成员请求并建立匿名通信。

Fat-Tree网络基于传统的树形拓扑,该网络结构共分为3层,如图3所示,从下到上依次为边缘层、汇聚层和核心层。3层的网络架构为使用者提供了多种数据包传输路径选择,在一定程度上提高链路资源的利用率,保证网络负载均衡,提升系统容错性。边缘层由各集群管理员组成,管理员主机上部署的交换机与普通成员主机直连,连接同一管理员交换机的普通成员属于同一集群。在管理员主机上部署OVS交换机,OVS是一个支持多层数据转发的虚拟交换机,提供在虚拟化环境中远程管理的OpenFlow协议,可应用于SDN网络。汇聚层处于边缘层和核心层中间,主要负责提高网络资源利用率,保证网络负载均衡,避免网络拥堵。核心层交换机主要负责转发汇聚层交换机之间的数据包。

图3 基于SDN的匿名通信网络拓扑结构

1.2.2 匿名通信机理

匿名通信过程中,控制器接收并响应发送方的匿名通信请求,动态选择相应交换机节点,建立匿名通信路径。假设Alice和Bob是匿名通信系统中的两个普通成员,Alice作为发送方要与接收方Bob进行匿名通信,Alice所在集群的管理员为管理员A,匿名通信的请求与建立过程如图4所示:

图4 匿名通信的请求与建立

(1)Alice向其所在集群的管理员A发送与Bob的匿名通信请求;

(2)管理员A向控制器提出与Bob进行匿名通信的请求;

(3)控制器向各集群管理员发送流表,询问Bob是否在该集群中;

(4)Bob所在集群的管理员返回Bob的IP地址、mac地址等地址信息以及Bob的公钥B给控制器;

(5)控制器根据OpenFlow协议定期获取的交换机节点相关信息,通过多约束最优路径规划算法为管理员A建立一条通往Bob的匿名通信路径。控制器用自己的私钥C给公钥B加密,生成数字签名B。控制器将公钥B和数字签名B整合到一起生成证书,将证书和证书的公钥C一起发送给管理员A;

(6)管理员A转发证书和证书的公钥C给Alice,表示Alice通往Bob的匿名通信路径已建立完成;

(7)Alice收到证书,并用公钥C对证书中的数字签名解密,得到哈希值B。同时对公钥B进行哈希运算,并将结果与哈希值B对比,如果相同,则证书合法。Alice将要发送的信息和自己的公钥A打包,用Bob的公钥B加密后发送给管理员A;

(8)管理员A转发中继消息给Bob;

(9)Bob收到数据包后用自己的私钥B解密,再用Alice 的公钥A加密应答消息发送给管理员A;

(10)管理员A将返回的中继消息转发给Alice,Alice用自己的私钥A对数据包进行解密。

控制器建立匿名通信路径后,通过OpenFlow网络协议向交换机下发流表,交换机通过解析流表对数据包进行匹配并转发。整个过程中由控制器建立匿名通信路径并指挥数据包的转发,保证了通信过程的匿名性。控制器在通信建立的过程中充当中介的角色,但在实际上数据包在各个交换机之间直接进行转发。控制器是整个系统的计算者和控制者,系统中传输的数据包通过由控制器建立的通信路径中的若干交换机节点,这些交换机节点根据控制器下发的流表对数据包进行转发。

系统中管理员充当转发代理的角色,普通成员的匿名通信请求通过管理员代为转发,控制器不维护普通成员的地址映射,也无法获取数据包的发送方信息,在一定程度上降低了控制器的负载和单点攻击的威胁。

在整个通信过程中,信息接收方不知道信息发送方是谁,发送方和接收方也无法获取对方的真实地址。通信路径中的每一个交换机节点只会根据控制器下发的流表对数据包进行单纯的转发,每个交换机节点只知道通信路径中的上一跳和下一跳,但不能确定上一跳节点是否是发送者,下一跳节点是否是接收者,获得发送者与接收者的不可关联性。

1.2.3 多约束最优路径规划算法

通常传统网络中的路径选择依据是通过路由协议计算出的最优传输路径,但结果可能会导致网络中部分路径流量拥塞。当采用SDN网络架构时,SDN控制器可以根据网络流量状态调整传输路径,提升网络资源利用率。此外,控制器根据节点在线时长选择信誉度较高的节点作为转发节点,可以一定程度上降低路径选择攻击的威胁。

最优路径规划流程如图5所示,控制器收到发送方的匿名通信请求后获取发送方和接收方的IP地址等信息。拓扑感知模块负责获取网络中交换机与主机之间的连接信息,并对连接信息进行处理,形成网络拓扑。链路信息收集模块负责获取网络中交换机节点的剩余带宽、在线时长等信息。控制器在收到上述信息后,利用多约束最优路径规划算法建立匿名通信路径。

图5 最优路径规划流程

在OpenFlow网络协议中,控制器通过南向接口实时获取网络节点状态,根据网络情况不同做出相应处理策略。系统中SDN控制器通过Openflow协议定期获取网络中交换机的剩余带宽、在线时长等信息,实时感知网络状态,并针对当前网络状态进行动态最优路径规划。最优路径规划后,控制器将数据包转发命令通过OpenFlow协议以流表的形式映射到相应交换机中。控制器通过实时获取网络节点状态,对网络整体进行感知,能够有效避免网络拥塞。控制器动态获取当前网络节点状态,建立源节点至目的节点间的最优路径,实现了对数据流量的灵活传输。

系统以Dijkstra算法为基础,根据Fat-Tree拓扑的结构特点,综合考虑节点间的距离、节点剩余带宽、节点在线时长3种因素,提出多约束条件下的最优路径规划算法。算法首先对各条边的参数权值进行分析,使用最小-最大规范化方法对权值进行归一化处理,合理设计代价函数,计算各条边的最终权值,变多约束问题为单约束问题,最终通过Dijkstra最短路径规划算法建立匿名通信路径。本系统中将节点间的距离、节点剩余带宽和节点在线时长3项因素作为约束条件,建立最优路径选择模型。

假设匿名通信网络中共有n个节点,其中一条匿名通信路径P由节点1,节点2,…,节点i组成,数据包通过该路径的传输距离可以表示为

式中:Sk,k+1表示节点k与节点k+1之间的传输距离。

节点在线时长是衡量节点信誉度的主要因素,节点在线时长越长,信誉度越高,数据包成功传输的概率也就越大。节点k的在线时长用tk表示,网络中节点的最长在线时长用M(t) 表示,最短在线时长用m(t) 表示

M(t)=max{t1,t2,…,tn}
m(t)=min{t1,t2,…,tn}

利用最小-最大规范化方法对节点在线时长进行线性变换,将在线时长映射到 [0,1] 之间。节点k成功转发或接收数据包的概率pk可以表示为

节点k与节点k+1之间成功传输的概率用Pk,k+1来表示,成功通过概率Pk,k+1与节点k成功转发或接收数据包的概率pk之间的关系属于乘法约束

Pk,k+1=pk*pk+1,pk≤1,pk+1≤1

即节点k与节点k+1之间成功传输的概率Pk,k+1等于两节点成功转发或接收的概率乘积。对于乘法约束,将等式两边取对数,将乘法约束表示为加法约束

lnPk,k+1=lnpk+lnpk+1,pk≤1,pk+1≤1

由于pk≤1, 等式两边均为负数,两边同乘-1得

链路带宽在一定程度上影响系统的网络吞吐量,控制器倾向于选择剩余带宽较高的节点作为备选转发节点。节点k的剩余带宽用bk表示,网络中节点最大剩余带宽用M(b) 表示,最小剩余带宽用m(b) 表示

M(b)=max{b1,b2,…,bn}
m(b)=min{b1,b2,…,bn}

将剩余带宽映射到[0,1]之间,对节点剩余带宽进行线性变换

节点k与节点k+1之间的带宽权值函数可以表示为

Qk,k+1=qk*qk+1,qk≤1,qk+1≤1

将乘法约束表示为加法约束

lnQk,k+1=lnqk+lnqk+1,qk≤1,qk+1≤1

等式两边均为负数,两边同乘-1得

在最优路径选择过程中,把节点间的距离、节点在线时长和节点剩余带宽3个约束条件融合,设计代价函数

如果一条路径P上有i个节点,则该条路径的权值可以表示为

将多约束问题转化为单约束问题,最终通过Dijkstra最短路径规划算法建立匿名通信路径。

2 实验与分析

2.1 系统性能

本文基于Fat-Tree拓扑结构搭建实验环境,确定了交换机和终端数目后,按照Fat-Tree拓扑的连接规则,分别对控制器、交换机以及主机之间进行连接与配置。

为什么这样理解科学管理呢?因为管理的目的应该是实现雇主最大限度富裕的同时也要实现雇员的最大限度富裕,但问题是人们总是把雇主的利益和雇员的利益摆在对立的位置,认为他们是存在利益矛盾的,将双方的利益视为此长彼短的关系。为了破解这种错误的思想,泰勒呼吁雇员和雇主需要一场心理革命。

匿名通信系统的延迟和吞吐量是衡量系统性能最重要指标的两个指标。在系统中影响系统延迟的因素主要有数据长度和中间节点个数两个方面。

下面通过对比实验的方式来说明系统延迟与数据长度及中间节点个数之间的关系。系统通过多跳交换机节点来转发信息,图6显示了系统在不同条件下的延时,即一个信息由初始节点发出到目标节点收到所经过的时间。可以看出中间节点跳数越多,数据长度越大,处理过程复杂,整个数据的接收延迟也就越大。

图6 转发延迟与跳数及数据长度的关系

表1展示了目前最为广泛使用的匿名通信系统Tor与本系统的转发延迟比较结果。表中的转发延迟指的是从初始节点发出请求到请求的内容完全返回初始节点所用的时间。通过比较可以看出,本系统的延迟要小于Tor系统。Tor系统由于其复杂多重的加解密操作,导致延迟较大,但Tor系统已被广泛应用和认可,因此可以认为本方案中的系统设计可以满足匿名通信的基本性能需求。

表1 本系统与Tor系统转发延迟的比较

网络吞吐量能够准确反映网络的传输能力,是评价匿名通信网络性能的一项重要指标。网络吞吐量是指单位时间内网络能正确传输的流量的大小,参数R和T分别表示系统中能够正确传输的流量和相对应的时间,网络吞吐量η可以表示为

本文针对传统的Dijkstra算法和系统中的多约束路径规划算法进行链路负载测试,观察匿名通信网络吞吐量随链路负载增加的变化情况。传统Dijkstra算法与多约束最优路径规划算法之间的网络吞吐量对比如图7所示,由实验结果可知,当链路负载较小时,使用两种路径规划算法的网络吞吐量近乎相同,链路带宽能够满足数据包的传输要求。但是当链路负载超过0.3之后,传统的Dijkstra算法网络吞吐量开始逐渐低于多约束最优路径规划算法。当流量负载增大至0.7时,Dijkstra算法网络吞吐量开始下降,两种算法之间的网络吞吐量差距更加明显。由于Dijkstra算法只考虑最短传输路径这一因素,当链路承载达到一定时,路径规划无法考虑到网络状态变化,进而造成网络拥塞,导致数据流被丢弃。而本课题中所提出的多约束最优路由算法通过定期获取网络中交换机的剩余带宽,实时感知网络状态,针对当前网络状态进行最优路径规划,提升网络资源利用率,从而增强了网络吞吐性能。

图7 网络吞吐量与链路负载的关系

2.2 安全性分析

匿名通信系统的安全性主要取决于系统的抗攻击能力,当前比较典型的攻击方法主要有合谋攻击、流量分析攻击、时间攻击等,下面分别针对这些主流的攻击方式来分析本文中系统的抗攻击能力。

(1)合谋攻击

合谋攻击是指攻击者向系统中植入多个恶意节点,结合各个节点所获取的信息来推断系统中用户的通信关系。Tor不能很好地抵御该攻击,在建立匿名通信路径时,恶意节点可以通过上报虚假带宽等信息来提高被选为转发节点的概率,进而诱使系统选择恶意节点作为转发节点,多个攻击者合谋得到系统中通信用户的信息。

(2)流量分析攻击

流量分析攻击是指攻击者通过对网络流量的监测和分析,从报文时间、大小以及类型等方面来发现通信双方的关联性,进而推断信息的发送者和接收者。

本系统中通过控制器下发流表到交换机的方式来建立匿名通信路径,因此整个网络中包含各种报文,除了主机与交换机间的通信报文外,还有交换机与控制器之间的通信报文等,因此匿名网络中每个节点进出的实时流量比较混杂,攻击者很难对通信双方进行关联。

(3)时间攻击

时间攻击是指攻击者通过获取匿名通信网络中的报文时间标志,通过时间对比来分析报文间的关联。

时间攻击与流量分析攻击类似,由于本系统中充斥了各类混杂报文信息,因此攻击者进行时间攻击比较困难。

3 结束语

本文提出了一种基于SDN集中控制理念和集群思想的匿名通信系统架构,系统融合了节点选择限制、多约束最优路径规划等策略,采用控制器向中交换机下发流表的方式建立匿名通信,保证了通信过程的匿名性。理论分析表明基于SDN的网络架构可以在一定程度上抵御合谋攻击、流量分析攻击、时间攻击等主流攻击方式。仿真实验结果表明,其满足匿名通信的基本性能需求,且同一网络环境下本系统转发延迟明显低于Tor。

目前研究中存在单一控制器失效的问题,下一步工作主要是研究多控制器协调的工作方式,建立多个控制器组成的分布式网络架构,降低单一控制器的负载和安全威胁。

猜你喜欢
交换机数据包管理员
我是小小午餐管理员
基于Jpcap的网络数据包的监听与分析
我是图书管理员
我是图书管理员
可疑的管理员
SmartSniff
修复损坏的交换机NOS
使用链路聚合进行交换机互联
PoE交换机雷击浪涌防护设计
罗克韦尔自动化交换机Allen-Bradley ArmorStratix 5700