APP下载

软件定义网络匿名通信关键技术研究

2021-10-15魏占祯孟莘蕊李兆斌北京电子科技学院电子与通信工程系北京100070

计算机应用与软件 2021年10期
关键词:哈希数据包攻击者

魏占祯 孟莘蕊 李兆斌(北京电子科技学院电子与通信工程系 北京 100070)

0 引 言

匿名可以做到使个人的身份信息得以隐蔽,不被外人识别获取。互联网影响社会生活方方面面,人们传递信息、休闲娱乐都已经少不了互联网。随着新技术的出现,软件定义网络(SDN)为弥补传统网络架构的不足,成为未来网络架构发展的一个重要趋势。

软件定义网络[1]的显著特征即转控分离,实现控制平面的中央控制,通信协议简化网络间传输设备工作量,具有软件编程功能,北向接口可与多应用程序连接。但软件定义网络并非是以用户的安全性和隐秘性为基础开发的,因此在通信中外来攻击者可以通过报文分析获取通信用户的敏感信息。在SDN网络通信中,用户匿名对于防止外部攻击和保护用户隐私非常重要。

鉴于匿名通信技术在当前软件定义网络中面临众多挑战,本文提出了软件定义网络匿名通信关键技术研究。通过包头改写技术实现发送方的身份匿名,通过生成唯一的哈希值来代替原包头中的敏感信息,并采用随机路径定流量变异技术实现路径的定期改变,使本文方案具有更高的安全性和可信性。

1 相关工作

1.1 SDN体系架构概述

软件定义网络[2]最早源于斯坦福大学,其进行了一个名为Clean State的项目,主要是对网络进行细化,主要包含数据平面、控制平面和应用平面,提供可编程网络,从而成为未来网络开发创造的新方向。

SDN架构如图1所示,可以将其按照功能区分为数据、控制及应用平面。从软件角度分析,需要对控制平面和数据平面进行脱离,实现控制平面的清除,同时传递给软件控制器,其特征是实现了对底层硬件的简化操作。SDN在根本上确定了抽象底层硬件,同时以控制与数据平面为背景与前提,即忽略底层硬件差异性。应用层通过控制器提供的API操作底层设备大大简化了配置和检查。

1.2 传统网络匿名通信

众多学者已经研究匿名系统以保护各用户的通信身份并防止攻击者的流量分析[3-4]。传统网络所采用的匿名系统主要有Mix-net[5]、DC-net[6]、可验证的shuffle[7-8]或广播。当前,从性质上分析,可以将匿名系统划分为高延迟与低延迟,主要参考的是传输时间。

高延迟匿名通信系统主要是为需要强大匿名性且允许高延迟的应用而设计的,例如:电子邮件、Babel[9]、Mixminion[10]。该类系统基于Mix-Nets,其中消息通常被延迟数小时以进行批处理,以最大化匿名实现对流量分析的阻断。

低延迟匿名通信系统主要用于网页浏览和互联网聊天等交互式应用。在低延迟匿名系统中,比较常见的是Anonymizer[11],只有一个代理,整体较为简单。洋葱路由[2,12]是初始混合网络的实时变体。软件定义网络作为一种新兴的网络架构,它所拥有的集中控制和掌控全局的新特性还并没有引起匿名通信领域研究的思考和重视。在发送消息之前,发送器拾取混合列表并通过中继器与接收器构建双向电路。发送方对消息进行分层加密,每个中继对它们进行解密,然后将它们转发到电路中的下一跳。每个中继仅知道其上一跳和下一跳,但不知道通信参与者。二代洋葱路由Tor[13-14]是基于志愿者并最为流行的匿名系统。基于P2P架构的匿名系统,各节点都可作流量发起者或转发者。LAP[15]是低延迟的轻量级匿名系统,可保证日常在线活动的安全。

1.3 软件定义网络匿名通信

国内已经在SDN网络匿名通信领域取得了一些成果。曾婷婷[16]提出了一种SDN架构下的自适应匿名通信方案,其基于Mix节点匿名系统,扩展了Mix节点混淆思想。该方案依托自适应参数调节手段,用户个性化需求得到满足,结合自我要求进行目的性设置,随时监控网络状态,实现了匿名系统实时性和匿名性的兼顾。此自适应匿名通信方案虽然极大改进了Mix多节点匿名方案的高延迟性,但依然使用层层加密和解密的设计,使得转发设备工作复杂,不能较好利用软件定义网络的特性。

魏一[17]基于二代洋葱路由Tor提出了一种新型匿名通信系统,采用分层匿名通信架构。此系统架构利用控制层与转发层,使系统可有效防止攻击者进行流量分析。此方案还提出一种新型链路建立算法,此算法确保新建链路的低传输时延性,有效维护了代理实体所提供的信息准确性,真实性更强,时效性达标。与此同时,其与黑名单机制实现融合,达到对滥用行为的有效抵制,整体能力水平大幅提升。这种新型匿名通信方案基于软件定义网络,改进了Tor匿名方案,虽然降低了Tor匿名方案原有的延迟,但其新节点加入匿名系统无任何安全性验证,对用户通信带来极大的安全隐患。

李立[18]提出匿名线性网络编码方案,采用网络编码的自然混淆特性实现通信用户信息隐匿。其参考“蝶形网络”,发挥多播网络的基础性功能,构建了匿名线性网络编码方案,能够在保证网络吞吐量的同时,实现对流量分析的有效应对。该方案避免层层加密和解密,虽然减轻了转发设备的负担,但其匿名性较低,难以抵御攻击者对通信路径的分析。

一些国外学者较早在软件定义网络匿名通信领域进行深入研究。Meier等[19]提出iTAP系统,iTAP利用软件定义网络的特性并重写数据包。iTAP 使用混合重写方案为每个主机分配ID,将ID与原数据包包头混合并编码,iTAP允许逐步增加网络中匿名级别,随时间推移保证混淆质量。虽然iTAP保证了较高的可伸缩性,但其匿名性较弱,iTAP在重写报头时只使用了轻加密算法,不足以抵御攻击者的多流量分析。

Chaum等[20]提出cMix方案。其采用预先计算与核心Cmix协议,避免了通信过程中的公钥操作,减少了实时加密的延迟性并降低计算成本。虽然cMix无需用户进行任何实时公钥操作,但其只适用于轻量级设备的低延迟通信,无法支撑多流量通信。

Zhu等[21]提出SDN网络数据中心高效匿名通信系统MIC。其通过修改源/目的地址来隐藏通信参与者,实现匿名。其使用防碰撞机制,提出三种增强流量分析阻力机制。为各信道生成一个或一组双向路由路径。每个流具有独立的地址,让虚拟地址替换原数据包包头中MAC和IP地址,使攻击者无法获取通信双方的真实消息。此方案虽然具有较低的开销,但通信延迟现象比较明显,实时性较差。

Skowyra等[22]提出PHEAR系统,采用新的SDN网络硬件和协议,隐匿敏感信息。用户通过安全信道将实际数据包包头传给PHEAR服务器,并采用随机数替换敏感信息,实现匿名通信。虽然此匿名通信系统具有较低延迟,但只采用随机数替换无法保证通信的高隐匿性,无法抵御攻击者的多流量分析。

Duan等[23]提出高效随机路径变异技术(RRM)。RRM技术提供通信过程中的多流量路由路径随机改变,可抵御攻击者的侦察、窃听和Dos攻击。该方案只保证了较强的路径隐蔽性,无法抵御攻击者对敏感信息的分析。

本文方案结合包头改写与路径变异技术,用随机数哈希替换包头实现包头敏感信息隐匿,采用最大值随机路径保证通信路径隐匿性。结合软件定义网络转控分离、集中控制的特性,实现高加密、低延迟的匿名通信。

2 方案设计

2.1 系统架构

本文方案默认数据包载荷已经过加密,主要考虑数据包包头信息的安全性。本文采用SSL加密技术来建立控制平面与转发平面间的安全通道,采用数据包包头改写技术、Open Flow流表匹配域重构技术和定期随机路径变异技术来实现匿名通信。

本文方案采用的包头改写技术类似ITAP机制的包头信息轻加密,不同的是交换机改写包头时以唯一的哈希值替代原数据包包头中的敏感信息如源/目的IP地址,而此唯一哈希值由控制器预生成的随机数与原包头信息五元组混合生成,其唯一性保证了此哈希值不可被仿造。

此外,本文匿名通信方案采用最大值随机路径变异的方法,对通信路径进行隐匿。为了抵御外来攻击者的多流量分析,本方案计算出流量分析的最大临界值,设计了一种新随机路径变异算法并满足多约束条件。针对低延迟系统的主要威胁是流量分析攻击,并且在 SDN的场景下这种威胁会更加明显,更加容易破解。在数据包到达临界值后重新选择路径,在数据包过大,分包时对每个包做相应的处理,当数据包全部传到出口点时,出口可以整合数据包。系统架构如图2所示。

图2 软件定义网络匿名通信架构

方案中数据包包头信息隐藏了用户的敏感信息,对包头敏感信息进行混合编码这对匿名通信来说入口交换机是一个很大的安全隐患,当攻击者进行多流量分析或攻破入口交换机后,就会得到数据包的包头信息,从而使用户失去匿名功能。针对此问题,本文提出唯一哈希值的包头改写技术,让控制器利用随机数和原数据包包头五元组信息共同生成唯一哈希值并下发给入口交换机,此随机值不可被模仿并且每次生成不重复,这样有效地阻止了攻击者通过分析改写后的包头信息来获取或伪造通信信息,此外这种不需加解密信息的匿名传输方式也降低了通信延迟。

消息转发的路径不变性对匿名通信系统来说存在巨大的安全隐患,当攻击者多次进行大流量分析后,就会得到匿名通信路径的相关信息,从而使用户失去匿名功能。针对此问题,本文设计了最大值随机路径变异算法,通过计算得出流量分析的最大临界值,在临界值内转发数据包,当数据包数量超出临界值时重新生成路径并保证每次生成的路径满足约束条件。

2.2 数据包包头信息隐匿

表1列出了通信系统的常用符号。

为了实现数据包包头信息的隐匿性,方案采用唯一哈希值来改写包头,结合随机数的不确定性加强包头信息的安全转发。由于数据包包头中五元组包含源IP地址、目的IP地址、协议号、源端口、目的端口。为了实现隐藏包头的敏感信息,方案用唯一哈希值替代原包头中的源/目的IP地址和源/目的MAC地址。

(1) 入口交换机改写包头。

步骤1交换机在收到新的数据包后,查找匹配项,通过预设置packet_in将此数据包的包头上交给控制器,其中消息包含的敏感信息有(Si,Di)。

步骤2控制器在收到交换机发来的数据包包头后,首先生成一个随机数,利用正态随机数,依据中心极限定理得到服从U(0,1)均匀分布的随机数k。生成随机数k后,控制器首先对包头消息C进行解析,获得信息Si、Di之后混合Si、Di与随机数k,通过sha1算法生成一个唯一的哈希值M,并下发给入口交换机。

步骤3入口交换机收到控制器下发的唯一哈希值后,用此哈希值替换原数据包包头中的源/目的IP地址。

(2) 新流表生成(识别哈希值转发)。由于软件定义网络是转控分离网络,它在进行数据包传输时,交换机需要匹配控制器下发的流表来确定下一跳, OpenFlow流表的包头域包括12个元组信息,交换机改写包头后无法匹配流表中的MAC地址,为了使数据包顺利转发,需要生成基于识别哈希值转发的新流表。控制器生成流表1(识别MAC地址转发)后修改其匹配域,用之前生成的唯一哈希值代替原流表匹配域中的源/目的MAC地址,根据流表1和流表2生成映射表并保存,将流表2下发给各交换机。

数据包匿名通信如算法1所示。

算法1包头信息隐匿转发

输入:S1到controller安全连接SSL;S1解析包头信息C→Si,Di;S1无匹配项Packet_in。

Controller:

controller解析包头信息:Si、Di

controller生成随机数:k

controller学习MAC地址:mTable

controller生成流表1(识别MAC地址转发):Flow Table1

controller生成流表1与流表2映射表:Mapping Table

输出:

controller给S1下发:M、Flow Table2

controller给S2、S3下发:Flow Table2

controller给S4下发:Mapping Table、Flow Table1

2.3 最大值随机路径变异算法

攻击者通过流量分析推断通信路径的能力取决于其可以观察到的通信数量和到目的地的流量,因此在基于软件定义网络匿名通信系统中,匿名通信路径的建立是抵御流量分析的关键步骤,匿名通信路径是指消息如何从发送者到接收者所经过的路径不被攻击者知晓。

本文设计了一种新的最大值随机路径生成算法,将网络建模为无向图G=(R,Q),其中:R是用户机集合,E是链路集合。流的源节点为A、目的节点为B的流(A,B∈R),流的最大持续量为U,路径跳变需要为传输数据包数量到达U值后在A和B之间找新的路径。路径满足以下约束:(1) 新路径中不包含过载的节点、链路;(2) 新路径避免选择最近出现在已使用路由中的节点;(3) 新路径保持所需的质量。

1) 数据包最大值计算。本文使用所谓的单一距离来确保攻击者无法确定通信路径。对于秘密密钥密码,Shannon[24]将原则距离U定义为原则上确定秘密密钥所需的最小截取密文符号数。观察密文符号并使用最佳估计规则的攻击者可能能够确定密钥并破解密码。

根据文献[24],被截取的密文符号的近似数量,定义为单一距离,计算如下:

(1)

式中:H(K)是密钥空间中的熵;D是语言的冗余。

本文以U值作为同一路径所能传输的最大数据包的数量。当同一路径中的数据包值超过U时,根据定期随机路径变异算法生成新路径。

2) 最大值随机路径算法。结合SMT求解器[25]与最大临界值,使传输每一条新流都生成随机路径,且同一条流分包数超过临界值时,重新生成新随机路径。

使流形式化:假设有n个流F1,F2,…,Fn,其中一条流Fi(1≤i≤n)的源节点为Ai,目的节点为Bi,网络包含m个节点S1,S2,…,Sm和h个边缘节点e1,e2,…,eh,输入边缘节点包含在Sj(1≤j≤m)中,定义为Vj,包含在Vj中的输出边缘节点定义为Oj。

源A和目标B间流的有效路由具有约束条件如下:

(2)

(3)

(4)

(5)

uit∈{0,1} ∀ 1,t

(6)

(7)

式中:ui表示链路ei是否出现在路径PU中,如果ui=1,则链路ei被此流使用,如果ui=0,那么ei不用于此流;L表示流的最大长度;U是之前计算出的同一路径可通过数据包的最大值。式(2)保证任何节点(源和目标除外)必须具有流量的平衡输出和输入边缘节点;式(3)和式(4)保证流路径的源和目的节点必须是A和B;式(5)表示保证路径的长度应在所需的范围内;式(6)指定了变量ui值的范围;式(7)表示一条路径所接受的容量范围,当路径中传输的数据包量达到U时,实现路径跳变。

采用SMT求解器确定满足条件的路径,当路径中数据包数量达到U值后,进行路径跳变:

ModifyPath(PU→PU+1)

函数ModifyPath(·)用来保证在数据包传输期间端到端的可达性,使得数据包在超出U值前被完全地传输,保证任何从旧路由PU跳变到新路由PU+1的过程不会造成数据包丢失。

函数ModifyPath(PU→PU+1)

① 向满足S∈PU+1∧SPU的所有交换机S添加路由条目。② 向满足S∈PU+1∧S∈PU的所有交换机S修改路由条目。③ 向满足SPU+1∧S∈PU的所有交换机S删除路由条目。

为了保证之前使用过的路由路径不被重复选择,加入约束条件:

((ui1=1)∧(ui2=1)…∧(uig=1))

图3展示了本文最大值随机路径算法的示例,通信路径Path1={A,S1,S2,S3,S4,S5,B},Path2={A,S1,S6,S7,S4,S8,S9,B}。

3 仿真实验

3.1 实验设置

本文在仿真的OpenFlow SDN环境中实现和测试。此方案控制器在某种意义上是反应性的,它在新流的第一个数据包进入网络后计算并安装规则。默认情况下与现有流规则不匹配的每个数据包都将发送到控制器。对于新流的第一个数据包也如此,然后控制器执行重写并安装所需的流规则,发包时通过Open Flow底层的信道互通建立来保证通信双方互通的安全性。

本文实验使用Mininet进行仿真,使用的Ryu1.3版本控制器。本实验采用Ubantu-14.04,Mininet版本为2.2.1。

研究对象为60个用户,时间限制在3小时,进行模拟操作,以Mininet为手段。60个用户中一部分用户使用此匿名系统进行信息交互,一部分用户通信不使用此匿名通信系统。在3个小时内分别取多次不一样的用户通信数据,针对每个实际的通信消息对,进行流量数据的统计。

3.2 仿真结果及评估

3.2.1匿名性评估

所有当前流量分析技术的必要前提是将观察到的数据包与正在进行的会话相关联,但是此匿名方案使此任务复杂化,尤其是在以高速率刷新并与来自同一终端主机和共享该交换机端口的其他正在进行的会话聚合时。要将多个随机数链接到同一会话,需要在实际得出有关流量本身的结论之前进行初始统计分析。该方案对包头敏感信息进行隐匿,使得攻击者截取流量时无法获知此流量的通信双方,若攻击者无从获取链路与通信双方的对应关系,则难以对某一特定用户的众多流量进行集中分析,获取流量中的敏感信息。并且此匿名通信在对包头信息进行隐匿的同时,还采用最大值随机路径算法,在不同流传输时使用不同路径的基础上,还使同一流在传输时,可能传输路径也随机改变,这使得攻击者对特定用户的传输路径更加难以推测。

3.2.2路径保护度评估

若参与匿名通信用户的传输路径暴露概率为P,攻击者分析用户流量时若无此用户的特殊背景信息,攻击者只能随机猜测特定用户与特定链路之间的关系。若攻击者击者截取到一部分通信流量,通过分析得出其中链路数量,假设其中包含相交点不小于1的路径数为R,参与匿名通信的用户数为n,数据包传输中增加的路径为m,其他路径为S,则某参与匿名通信用户j传输路径的暴露概率P为:

攻击者需要从大量轨迹中分析出某一链路与特定用户的关系。而数据的传输链路被相互混淆。假设用户1、用户2、用户3参与匿名通信,并且用户各自有相关的链路,若攻击者在没有相关用户的背景时,想从抓到的轨迹中分析出每个用户的相关链路,那攻击者只能从轨迹中等概率猜测。图4是攻击者抓到的部分轨迹。

攻击者抓到混乱相交的轨迹后,等概率地猜测各用户的相关链路,则可能为:

(1) 用户1:S1、S4、S7、S8;用户2:S1、S9、S10、S6、S8;用户3:S1、S3、S12、S8。

(2) 用户1:S1、S4、S7、S8;用户2:S1、S3、S12、S8;用户3:S1、S9、S10、S6、S8。

(3) 用户1:S1、S9、S10、S6、S8;用户2:S1、S4、S7、S8;用户3:S1、S3、S12、S8。

(4) 用户1:S1、S9、S10、S6、S8;用户2:S1、S3、S12、S8;用户3:S1、S4、S7、S8。

(5) 用户1:S1、S3、S12、S8;用户2:S1、S4、S7、S8;用户3:S1、S9、S10、S6、S8。

(6) 用户1:S1、S3、S12、S8;用户2:S1、S9、S10、S6、S8;用户3:S1、S4、S7、S8。

在仅有三条轨迹的情况下,攻击者需要推测6种可能,当通信用户数增多时,攻击者对某一用户使用的链路可能性分析会变得极其困难。在多用户通信时,使用此随机路径的用户比普通用户通信时路径安全性提高多倍。

图5是1个用户参与匿名通信且传输中不增加新路径的路径暴露概率图,图6是3个用户参与匿名通信且传输中不增加新路径的路径暴露概率图。

图5 用户数与路径暴露概率

可以看出,1个用户参与匿名通信,其他用户正常通信时,路径暴露概率从50%下降到25%再到5%。3个用户参与匿名通信,其他用户正常通信时,路径暴露概率由25%下降到10%再到4.8%。可见随着通信用户增多,使用匿名通信用户的路径暴露概率越来越低,但此概率存在一个最低值。为了降低用户通信时路径暴露概率,本匿名通信方案中采用最大值随机路径算法,当传输的包数量到达路径接收临界值后,重新生成新路径。通信路径数随着通信数据包变大而增加,同一用户在传输同一消息时也可能存在多条路径。

图7是1个参与匿名通信的用户,当分包数较大时新增加2条路径的路径暴露概率关系图。图8是3个参与匿名通信的用户,每个用户通信分包过大,新增2条路径的路径暴露概率关系图。

图8 用户与路径暴露概率

由图7可见,1个通信用户参与匿名通信并由于其分包过多增加传输路径时,路径暴露概率由原来的50%降为25%,并且随着通信用户的增加,路径暴露概率逐步减小,最低值小于图5中最低值。由图8可见,3个通信用户参与匿名通信并由于分包过多,均增加传输路径时,路径暴露概率由原来的25%降为1%。随着通信用户增加,路径暴露概率降低最后趋于最低点,且此最低点小于图6中最小值。由此分析,当通信用户传输数据包分包过多时,增加传输路径使得攻击者推断出某一路径与其特定用户关系的可能极小,从而可看出最大值随机路径可以极大地保证传输路径的隐匿性。

3.2.3性能评估

本文评估TCP包和IP包的吞吐量,结果如图9和图10所示。

图9 路径长度与吞吐率

图10 流量数与吞吐率

本文首先评估一个流不同路径长度的吞吐量,然后评估不同流量的吞吐量。可以看出,此匿名方案设计较轻巧,不采用重量级的叠加设计,虽然方案需要在虚拟交换机上额外操作,但并不会对流量传输带来较多影响。

4 结 语

本文介绍了基于SDN的匿名通信系统,此匿名系统通过改写数据包包头来实现其匿名属性,通过扩展Open Flow协议来生成具有新匹配域的流表,以此实现低延迟传输;又设计了一种新的最大值随机路径算法加强了通信路径的保护度,从而加强了此系统的匿名性。

本文利用ryu控制器、Open Flow交换机实施了此方案,并评估了其匿名性和可用性,结果表明此匿名通信系统在SDN环境中可实现低延迟高匿名性。

猜你喜欢

哈希数据包攻击者
基于贝叶斯博弈的防御资源调配模型研究
二维隐蔽时间信道构建的研究*
哈希值处理 功能全面更易用
Windows哈希值处理不犯难
文件哈希值处理一条龙
C#串口高效可靠的接收方案设计
正面迎接批判
正面迎接批判
网络数据包的抓取与识别
巧用哈希数值传递文件