一种面向SDN网络的时序侧信道攻击的主动防御方法转让专利

申请号 : CN201910402808.5

文献号 : CN110177060B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邹德清袁斌金海徐鹏方升泽

申请人 : 华中科技大学深圳华中科技大学研究院

摘要 :

本发明公开了一种面向SDN网络的时序侧信道攻击的主动防御方法,包括:控制器在监听到Packet‑In消息后,向触发Packet‑In消息的交换机下发第一流表规则和第二流表规则;数据包匹配第一流表规则,交换机转发数据包到与其直接相连的延迟主机;延迟主机捕获数据包,为其随机地添加延迟T;在距离捕获时刻延迟T时,延迟主机将数据包转发回交换机;第一流表规则为通过匹配目的IP和第一入端口号,执行将数据包转发到延迟主机,第二流表规则为通过匹配目的IP和第二入端口号,执行将数据包转发到下一跳交换机或者目的主机。本发明通过Delay主机为数据包添加延迟、流规则预安装和拓扑变化时流规则动态安装,对侧信息进行加噪混淆,干扰攻击者的判断,实现对侧信道攻击的抵御。

权利要求 :

1.一种面向SDN网络的时序侧信道攻击的主动防御方法,其特征在于,该方法包括以下步骤:S1.SDN控制器在监听到交换机发送的Packet-In消息时,从已记录的主机中随机选择若干主机,分别计算新主机到这些主机的转发路径,并在转发路径中的各交换机安装新流表规则,SDN控制器在监听到交换机发送的Packet-In消息后,向该交换机下发第一流表规则和第二流表规则;

S2.数据包在该交换机上匹配第一流表规则,被交换机转发到与其直接相连的延迟主机;

S3.延迟主机捕获该数据包,为数据包随机地添加延迟T;

S4.在距离捕获时刻延迟T时,延迟主机将数据包转发给与其直接相连的交换机;

其中,第一流表规则为通过匹配目的IP和第一入端口号,执行将数据包转发到延迟主机,第二流表规则为通过匹配目的IP和第二入端口号,执行将数据包转发到下一跳交换机或者目的主机;

第一入端口号为数据包从源主机进入该交换机的入端口号,第二入端口号为数据包从延迟主机进入该交换机的入端口号;

SDN网络中每个交换机都有一台延迟主机与之一一对应;

在步骤S1之前,该方法还包括:

控制器在下发默认流表规则的同时,获取SDN网络的拓扑结构,根据交换机的流表容量选择若干主机,计算两两主机之间的转发路径,并在转发路径中的各交换机预安装新流表规则。

2.如权利要求1所述的主动防御方法,其特征在于,延迟主机根据延迟策略为数据包随机地添加延迟,所述延迟策略是指为数据包添加延迟后,整个数据流的RTT不会超过不添加延迟时的10%。

3.如权利要求1或2所述的主动防御方法,其特征在于,T的取值范围为:[不添加延迟时前N个数据包中最大RTT,不添加延迟时后续数据包中趋于稳定的RTT],N取值范围为[1,

20]。

4.如权利要求1所述的主动防御方法,其特征在于,根据T的值,将数据包添加到特定的延迟队列中,运行在延迟主机上的每个延迟队列添加的延迟大小都是固定的,且每个延迟队列都有一个线程在监听。

5.如权利要求1所述的主动防御方法,其特征在于,在不影响新的流表规则安装的前提之下,交换机的流表容量越大,选择的主机数量越多;交换机的流表容量越小,选择的主机数量越少。

6.如权利要求1所述的主动防御方法,其特征在于,流表规则的下发安装顺序为:传输路径的第二跳交换机开始直至末交换机,然后是首交换机。

7.如权利要求1所述的主动防御方法,其特征在于,该方法还包括:S5.数据包在该交换机上匹配第二流表规则,被该交换机直接转发到下一跳交换机或者目的主机。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的面向SDN网络的时序侧信道攻击的主动防御方法。

说明书 :

一种面向SDN网络的时序侧信道攻击的主动防御方法

技术领域

[0001] 本发明属于侧信道攻击的防御技术领域,更具体地,涉及一种面向SDN网络的时序侧信道攻击的主动防御方法。

背景技术

[0002] 由于SDN网络是集中化控制,当交换机在数据转发方面遇到了问题时,交换机就会向控制器发出请求。比如,当数据流无法在交换机上匹配到流规则时,交换机就会向控制器发送请求询问路由路径,控制器通过计算并将新的流规则安装到交换机中。在这之前,交换机处于阻塞状态,在这种情况下会增加延迟。所以,SDN网络具有网络信息易获取、独特的集中化数据包转发控制机制等特点,比较容易受到侧信道攻击。
[0003] 而现有的侧信道攻击的防御方法主要包括以下两种。第一,交换机将所有的数据包转发到控制器,控制器为数据包添加延迟后,再转发回交换机,例如专利CN106411943;第二,通过修改OpenFlow协议或硬件来更改交换机的数据包处理流程,即通过与交换机直接相连的主机为未及时下发流规则的交换机下发默认的流规则,以此来降低数据包的RTT。
[0004] 然而,第一种方法因为需要将所有的数据包转发到控制器,性能开销非常大且无法将性能开销控制在一定范围之内;第二种方法的实现需要修改OpenFlow协议或硬件,而修改后的OpenFlow协议或硬件难以与业界通用的SDN框架或硬件兼容。

发明内容

[0005] 针对现有技术的缺陷,本发明的目的在于解决现有技术侧信道防御方法性能开销非常大、难以与业界通用的SDN框架或硬件兼容的技术问题。
[0006] 为实现上述目的,第一方面,本发明实施例提供了一种面向SDN网络的时序侧信道攻击的主动防御方法,该方法包括以下步骤:
[0007] S1.SDN控制器在监听到交换机发送的Packet-In消息后,向该交换机下发第一流表规则和第二流表规则;
[0008] S2.数据包在该交换机上匹配第一流表规则,被交换机转发到与其直接相连的延迟主机;
[0009] S3.延迟主机捕获该数据包,为数据包随机地添加延迟T;
[0010] S4.在距离捕获时刻延迟T时,延迟主机将数据包转发给与其直接相连的交换机;
[0011] 其中,第一流表规则为通过匹配目的IP和第一入端口号,执行将数据包转发到延迟主机,第二流表规则为通过匹配目的IP和第二入端口号,执行将数据包转发到下一跳交换机或者目的主机;
[0012] 第一入端口号为数据包从源主机进入该交换机的入端口号,第二入端口号为数据包从延迟主机进入该交换机的入端口号;
[0013] SDN网络中每个交换机都有一台延迟主机与之一一对应。
[0014] 具体地,延迟主机根据延迟策略为数据包随机地添加延迟,所述延迟策略是指为数据包添加延迟后,整个数据流的RTT不会超过不添加延迟时的10%。
[0015] 具体地,T的取值范围为:[不添加延迟时前N个数据包中最大RTT,不添加延迟时后续数据包中趋于稳定的RTT],N取值范围为[1,20]。
[0016] 具体地,根据T的值,将数据包添加到特定的延迟队列中,运行在延迟主机上的每个延迟队列添加的延迟大小都是固定的,且每个延迟队列都有一个线程在监听。
[0017] 具体地,在步骤S1之前,该方法还包括:
[0018] 控制器在下发默认流表规则的同时,获取SDN网络的拓扑结构,根据交换机的流表容量选择若干主机,计算两两主机之间的转发路径,并在转发路径中的各交换机预安装新流表规则。
[0019] 具体地,SDN控制器在监听到交换机发送的Packet-In消息时,从已记录的主机中随机选择若干主机,分别计算新主机到这些主机的转发路径,并在转发路径中的各交换机安装新流表规则。
[0020] 具体地,在不影响新的流表规则安装的前提之下,交换机的流表容量越大,选择的主机数量越多;交换机的流表容量越小,选择的主机数量越少。
[0021] 具体地,流表规则的下发安装顺序为:传输路径的第二跳交换机开始直至末交换机,然后是首交换机。
[0022] 具体地,该方法还包括:
[0023] S5.数据包在该交换机上匹配第二流表规则,被该交换机直接转发到下一跳交换机或者目的主机。
[0024] 第二方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的面向SDN网络的时序侧信道攻击的主动防御方法。
[0025] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
[0026] 1.本发明通过与交换机直接相连的Delay主机为数据包添加延迟,对数据包RTT进行加噪,能够在不修改OpenFlow协议或硬件的前提之下,让攻击者对探测到的侧信息的分析中无法得到有效的有关网络的隐秘信息,以此来实现攻击的防御,与业界通用的SDN框架或硬件兼容,具有性能开销小并且性能开销大小可控的优点。
[0027] 2.本发明通过选择性流规则预安装,当与预安装的流表规则匹配的数据流被发送到交换机的时候,数据包不会被阻塞就能快速地被转发到下一跳交换机或目的主机,交换机并不需要向控制器发送Packet-In消息,从而降低部分数据流的数据包的RTT,对数据包RTT进行加噪,干扰攻击者的判断,进而实现对侧信道攻击的抵御。
[0028] 3.本发明通过基于拓扑变化的流规则动态安装,降低与新主机相关的流的数据包的RTT,对数据包RTT进行加噪,干扰攻击者的判断,进而实现对侧信道攻击的抵御。

附图说明

[0029] 图1为本发明实施例提供的一种面向SDN网络的时序侧信道攻击的主动防御方法流程图。

具体实施方式

[0030] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0031] 针对SDN网络的侧信道攻击主要应用于探测是否是SDN网络,流表发现,SDN控制器的负载的探测,SDN配置信息与安全策略的发现等等方面。并且大部分侧信道攻击都是基于相似的侧信息,因而对他们进行共性特征抽取并部署防御措施可以有效地加强SDN网络对侧信道攻击的抵御能力。本发明的目的是为了突破SDN网络中可利用侧信道的查找、隐秘信息传输行为发现、网络特征数据加噪处理、抗逆向分析的网络配置主动重构等关键技术,增强整个SDN网络抗侧信道攻击能力。
[0032] 如图1所示,一种面向SDN网络的时序侧信道攻击的主动防御方法,该方法包括以下步骤:
[0033] S1.SDN控制器在监听到交换机发送的Packet-In消息后,向该交换机下发第一流表规则和第二流表规则;
[0034] S2.数据包在该交换机上匹配第一流表规则,被交换机转发到与其直接相连的延迟主机;
[0035] S3.延迟主机捕获该数据包,为数据包随机地添加延迟T;
[0036] S4.在距离捕获时刻延迟T时,延迟主机将数据包转发给与其直接相连的交换机;
[0037] 其中,第一流表规则为通过匹配目的IP和第一入端口号,执行将数据包转发到延迟主机,第二流表规则为通过匹配目的IP和第二入端口号,执行将数据包转发到下一跳交换机或者目的主机;
[0038] 第一入端口号为数据包从源主机进入该交换机的入端口号,第二入端口号为数据包从延迟主机进入该交换机的入端口号;
[0039] SDN网络中每个交换机都有一台延迟主机与之一一对应。
[0040] 步骤S1.SDN控制器在监听到交换机发送的Packet-In消息后,向该交换机下发第一流表规则和第二流表规则。
[0041] 控制器在SDN网络初始化时,自动向SDN网络中所有交换机下发默认流表规则。默认流表规则:通过规定的端口发送数据包到控制器。
[0042] 源主机向目的主机发送的数据包到达首交换机时,数据包从源主机进入该交换机的第一入端口号。判断该数据包是否能够匹配该交换机的流表规则,若是,按照匹配流表项,执行转发操作(下一跳交换机或者目的主机);否则,交换机根据控制器下发的默认流表规则,通过Packet-In消息将数据包信息发送给控制器,同时该数据包被阻塞直到匹配上控制器下发的流表规则。
[0043] 控制器监听到Packet-In消息,计算源主机与目的主机之间的转发路径。控制器根据Packet-In消息解析交换机的信息(比如,交换机的node-id和端口信息)和数据包的信息(比如,源IP地址,目的IP地址等)。基于这些信息,控制器根据网络拓扑结构,获得源主机和目的主机的node-id,执行路径计算算法(比如,dijkstra算法),计算出数据包的转发路径Path。
[0044] 控制器根据数据包的转发路径Path,将新的流表规则下发到转发路径上的所有交换机,交换机安装控制器下发的流表规则。具体如下:
[0045] 针对首交换机,第一流表规则——匹配项:目的IP和第一入端口号,执行将数据包从第二入端口号转发到延迟主机;第二流表规则——匹配项:目的IP和第二入端口号,执行将数据包转发到下一跳交换机或者目的主机。
[0046] 针对其他交换机,第三流表规则——匹配项:目的IP,执行将数据包转发到下一跳交换机或者目的主机。
[0047] 第一入端口号为数据包从源主机进入该交换机的入端口号,第二入端口号为数据包从延迟主机进入该交换机的入端口号。第二入端口号是提前人为设定的固定端口。在本发明中,控制器只在首交换机将数据包转发到延迟主机进行加RTT,在后续的交换机是不会将数据包转发到延迟主机。所以,只会在首交换机同时下发第一流表规则和第二流表规则,在转发路径的后续交换机上只会安装第三流表规则,第三流表规则的作用只是将数据包直接转发到下一跳交换机或目的主机。
[0048] 步骤S2.数据包在该交换机上匹配第一流表规则,被交换机转发到与其直接相连的延迟主机。
[0049] 从首交换机的第一入端口号进入的数据包,会匹配到第一流表规则,被首交换机转发到与其直接相连的延迟主机。SDN网络中每个交换机都有一台延迟主机与之一一对应,Delay主机是用来实现在不修改OpenFlow协议或硬件的前提之下,为数据包添加可控的延迟,实现侧信息的加噪和混淆,进而实现对侧信道攻击的防御的关键。
[0050] 步骤S3.延迟主机捕获该数据包,为数据包随机地添加延迟T。
[0051] 向交换机安装基于IP和端口匹配的流表规则,通过将数据包转发到与交换机直接相连的Delay主机,Delay主机根据延迟策略为数据包随机地添加延迟。延迟策略是指为数据包添加延迟T后,网络正常运行并且服务质量可维持,即整个数据流的RTT不会超过不添加延迟时的10%。T的取值范围为:[原始SDN网络中前几个数据包中最大RTT,原始SDN网络中后续数据包中趋于稳定的RTT]。
[0052] 步骤S4.在距离捕获时刻延迟T时,延迟主机将数据包转发给与其直接相连的交换机。
[0053] 根据T的值,将数据包添加到特定的延迟队列中。每当队列中的数据包过期(数据包在延迟队列中停留的时间达到T)之后,就将数据包转发到首交换机的第二入端口号。
[0054] 从首交换机的第二入端口号进入的数据包,会匹配到第二流表规则,被首交换机直接转发到下一跳交换机或者目的主机。若转发到下一跳交换机,则继续匹配转发;若转发到目的主机,则流程结束。
[0055] 现有技术中交换机将所有的数据包转发到控制器,所有交换机共用一个控制器为数据包添加延迟。而本发明是通过与交换机直接相连的Delay主机为数据包添加延迟,相较而言,具有性能开销小并且性能开销大小可控的优点。原因有以下几点:
[0056] 第一,能够避免业务数据流量(主机间的通信产生的流量)占用控制器和交换机的通信链路。现有技术中,业务流量和控制器与交换机的通信流量共用一条链路,而该链路的带宽大小是固定的,会增加控制器与交换机的通信数据流的延迟,这会降低整个网络的请求响应速度,使整个网络的性能减低。
[0057] 第二,现有技术中,将所有的数据包转发到控制器将会大大增加控制器的负载,一方面,控制器无法及时处理来自交换机的请求,这会降低整个网络的请求响应速度,使整个网络的性能减低;另一方面,控制器负载的增大无法准确地为数据包添加延迟。因为负载越大带来的额外性能开销就越大,为数据包添加多少延迟更加不可控。例如,为数据包添加1ms的延迟,但由于计算机的负载比较大,1ms之后程序却无法及时将数据包转发出去。到最后,该数据包被添加的延迟是大于1ms的。而本发明中每个交换机都有自己专用的Delay主机为数据包添加延迟。Delay主机只为来自一个交换机的数据包添加延迟,数据流量相对较小,负载也较小,为数据包添加多少延迟更加可控。
[0058] 第三,现有技术中用控制器做集中式的侧信息加噪混淆,随着网络规模的增大,控制器很容易成为单点故障,威胁整个网络的可用性。本发明利用了分布式处理的优点,在数据层用多个Delay主机完成侧信息的加噪混淆。并且Delay主机的个数可以随着网络规模的变化进行自适应的缩放,系统可扩展性更强,鲁棒性更佳。
[0059] 选择性流规则预安装
[0060] 优化地,在步骤S1之前,该方法还包括:
[0061] 控制器在下发默认流表规则的同时,获取SDN网络的拓扑结构,根据交换机的流表容量选择部分主机,计算两两主机之间的转发路径,并在转发路径中的各交换机预安装流表规则。
[0062] 控制器执行流表规则预安装的时候,会根据网络拓扑结构以及交换机的流表容量,在不影响新的流表规则安装的前提之下,会有选择地在部分交换机上安装流表规则。交换机的流表容量越大,选择的主机数量越多;交换机的流表容量越小,选择的主机数量越少。转发路径一旦确定,那么,流表规则也是确定且已知的。该流表规则具体如下:匹配项:目的IP;Action:端口号。
[0063] 采用流表规则预安装技术,即通过控制器在网络初始化的时候,预先在交换机上安装流表规则。当与预安装的流表规则匹配的数据流被发送到交换机的时候,数据包不会被阻塞就能快速地被转发到下一跳交换机或目的主机,交换机并不需要向控制器发送Packet-In消息,从而降低部分数据流的数据包的RTT。
[0064] 基于拓扑变化的流规则预安装
[0065] 优化地,SDN控制器在监听到交换机发送的Packet-In消息时,从记录的主机列表中随机选择部分主机,分别计算新主机到这些主机的转发路径,并在转发路径中的各交换机安装新流表规则。
[0066] 监听到Packet-In消息,有可能是SDN网络拓扑结构发生变化,例如,有新主机加入。有选择性的在交换机上安装流表规则,从而降低与新主机相关的流的数据包的RTT。选择的主机数量原则与前面相同,不再赘述。
[0067] 优化地,运行在Delay主机上的每个延迟队列添加的延迟大小都是固定的,而且每个延迟队列都有一个线程在监听,以此来实现数据包的高并发转发。之所以要有多个延迟队列以及每个延迟队列都有一个线程在监听,就是为了尽可能地降低系统带来的性能开销。
[0068] 流表规则的下发安装顺序为:传输路径的第二跳交换机开始直至末交换机,然后是首交换机。之所以是这样的下发顺序是为了确保当数据包到达后续的交换机时都能及时地匹配上下发的流表规则,不再触发Packet-In消息,使数据包的RTT不会因此而增大。
[0069] 以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。