1.本发明涉及网络安全技术领域,具体而言,尤其涉及一种基于动作可编程软件定义网络的加密跳变方法。
背景技术:
2.随着网络技术的飞速发展,互联网已经成为人们生产生活不可或缺的工具。然而,当前网络安全威胁日益严重,网络攻击事件逐年增多,严重阻碍了互联网的进一步发展和应用。监听攻击是一种典型的网络攻击手段,攻击者通过在网络节点或链路上监听通信数据,获取和破解通信内容。监听攻击并不产生主动的攻击行为,不会导致网络行为异常,因此难以检测和防御。
3.针对监听攻击,现有主要的防御手段为数据加密,然而由于用户安全意识较低,往往放弃加密或者采用弱密码加密数据,这为攻击者破解通信内容提供了便利,导致防御失效。到目前为止,针对监听攻击构建更有效的防御方法仍然是亟待解决的问题。
技术实现要素:
4.根据上述提出的针对监听攻击缺乏有效防御方法的技术问题,而提供一种基于动作可编程软件定义网络的加密跳变方法。本发明利用动态、随机、多态的移动目标防御(moving target defense,mtd)思想,在通信中动态变换加密算法和密钥,增加攻击者破译信息的难度和代价,从而保护网络通信数据的安全。
5.本发明采用的技术手段如下:
6.一种基于动作可编程软件定义网络的加密跳变方法,所述动作可编程软件定义网络包括:
7.运行在控制器上的控制器应用,其用于根据用户需求向控制器下发动作程序相关命令,
8.作为网络系统控制中心的控制器,其一方面用于存储和管理动作程序及其配置文件,另一方面用于根据控制器应用将动作程序和配置文件下发给指定交换机,
9.基于南向接口协议与所述控制器实现交互的交换机,其用于根据接收的配置文件执行动作程序完成对数据包的复杂处理,其中所述南向接口协议一方面用于向所述交换机传输控制器下发的控制动作程序及其配置文件,另一方面向所述控制器传输交换机发起的消息;
10.所述方法包括以下步骤:
11.识别通信路径上的源交换机和目的交换机,其中所述源交换机连接数据发送主机,所述目的交换机连接数据接受主机;
12.控制器通过南向接口向数据平面下发流表规则,并对数据发送主机到数据接受主机路由路径的源交换机安装加密动作程序,对目的交换机安装解密动作程序;
13.由数据发送主机向源交换机发送明文数据包,所述源交换机接收所述明文数据包
后进行流表匹配,当执行program动作时,源交换机执行对应的加密动作程序,对数据包载荷加密,得到密文数据包,并将所述密文数据包转发至下一跳交换机;
14.密文数据包经过网络传输到目的交换机;
15.所述目的交换机收到密文数据包后进行流表匹配,当执行program动作时,目的交换机执行对应的解密动作程序,完成对数据包载荷的解密操作,得到明文数据包,最后将明文数据包转发给数据接收主机。
16.进一步地,所述方法还包括:
17.经过一个跳变周期,控制器随机更新加密算法和密钥;
18.所述源交换机随之更新流表规则和加密动作程序;相应地,所述目的交换机更新流表规则和解密动作程序。
19.进一步地,控制器随机更新加密算法和密钥,步骤包括:
20.控制器对数据发送主机到数据接收主机路由路径上的,除源交换机和目的交换机以外的交换机安装流表规则,转发带有标签的数据包;
21.控制器对目的交换机安装新的流表项和解密动作程序,从而使目的交换机对数据发送主机到数据接收主机且带有标签的数据包执行解密动作程序;
22.对源交换机安装新的加密动作程序;
23.修改源交换机的流表,对数据发送主机到数据接收主机的数据包执行新的加密动作程序,并对数据包打标签;
24.等待数据发送主机到数据接收主机最长传输时延,然后删除数据发送主机到数据接收主机路由路径上所有老流表项,删除源交换机和目的交换机上的老加解密动作程序;
25.修改数据发送主机到数据接收主机路由路径上的新流表项,删除标签。
26.进一步地,控制器通过南向接口向数据平面下发流表规则,并对数据发送主机到数据接受主机路由路径的源交换机安装加密动作程序,对目的交换机安装解密动作程序,包括:
27.控制器生成加、解密动作程序配置文件时,在算法空间随机选择加、解密算法,并在密钥空间中随机选择加、解密密钥;
28.随后加、解密动作程序根据配置文件参数确定加、解密算法和密钥。
29.进一步地,源交换机执行加密动作程序,包括:
30.对明文数据包进行数据分块,对数据块进行分组加密,其中对最后一个长度不足数据块分组加密时,采用不增加密文长度的密码算法进行加密;
31.相应的,目的交换机执行解密动作程序,包括:
32.对密文数据包进行数据分块,对数据块进行分组解密,其中对最后一个长度不足数据块分组解密时,采用所述密码算法对应的解密算法进行解密。
33.较现有技术相比,本发明具有以下优点:
34.1、本发明通过控制器向交换机下发加解密动作程序,由交换机执行数据包的加解密操作,加解密过程对终端透明,且不会中断正在进行的通信。
35.2、本发明利用动态、随机、多态的移动目标防御(moving target defense,mtd)思想,提出了一种基于动作可编程软件定义网络(software definednetwork,sdn)的加密跳变方法,在通信中动态变换加密算法和密钥,增加攻击者破译信息的难度和代价,从而保护
网络通信数据的安全。
36.基于上述理由本发明可在网络通信领域广泛推广。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
38.图1为实施例中动作可编程的sdn架构示意图。
39.图2为实施例中基于动作可编程的sdn的数据加密跳变架构示意图。
具体实施方式
40.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
41.本发明提供了一种基于动作可编程软件定义网络的数据加密传输方法,基于动作可编程软件定义网络实现,网络架构如图1所示,主要包括:控制器、控制器应用,南向接口以及交换机。
42.作为本发明较佳的实施例,控制器应用是运行在控制器上的软件,可以根据用户需求向控制器下发动作程序相关的命令。控制器是网络的控制中心,可存储和管理动作程序及其配置文件,并可根据控制器应用将动作程序和配置文件下发给指定交换机。南向接口协议是控制器和交换机之间的交互接口,控制器可通过南向接口向交换机下发和控制动作程序及其配置文件,交换机也可以通过南向接口向控制器发起消息。交换机完成数据包的处理和转发功能,可根据配置文件执行动作程序,完成对数据包的复杂处理。实施例中为sdn交换机增加了新的动作类型program,执行该动作时,交换机将数据包送入指定动作程序,由动作程序对数包进行进一步处理。交换机处理数据包的过程如下。
43.1)对数据包头字段进行解析,获取各字段的值。
44.2)根据解析结果与交换机内部的流表进行流表项匹配。
45.3)当数据包成功匹配某个流表项时,依次执行该流表项对应动作集中的动作。
46.4)若流表项的动作为普通动作,则交换机对数据包直接执行动作;若流表项的动作为program动作,则交换机将数据包送入指定动作程序,由动作程序处理数据包。
47.优选地,上述动作可编程软件定义网络可参考申请号为2021109315346的中国专利申请中记载的系统方案。
48.本发明方法主要包括以下步骤:
49.s1、识别通信路径上的源交换机和目的交换机,其中所述源交换机连接数据发送主机,所述目的交换机连接数据接受主机。如图2所示,图中a主机为数据发送主机,与a主机直接连接的交换机为源交换机,b主机为数据接收主机,与b主机直接连接的交换机为目的
交换机。
50.s2、控制器通过南向接口向数据平面下发流表规则,并对数据发送主机到数据接受主机路由路径的源交换机安装加密动作程序,对目的交换机安装解密动作程序。
51.本实施例中,控制器通过南向接口向数据平面下发流表规则,并对主机a到主机b路由路径的源交换机安装加密动作程序,对目的交换机安装解密动作程序,其中加密算法为g,密钥为k。
52.s3、由数据发送主机向源交换机发送明文数据包,所述源交换机接收所述明文数据包后进行流表匹配,当执行program动作时,源交换机执行对应的加密动作程序,对数据包载荷加密,得到密文数据包,并将所述密文数据包转发至下一跳交换机。
53.本实施例中,主机a向主机b发送明文数据包,源交换机收到数据包后进行流表匹配,当执行program动作时,源交换机执行对应的动作程序,即加密程序,完成对数据包载荷的加密操作,重新封装数据包,并将密文数据包转发至下一跳交换机。
54.s4、密文数据包经过网络传输到目的交换机。
55.s5、所述目的交换机收到密文数据包后进行流表匹配,当执行program动作时,目的交换机执行对应的解密动作程序,完成对数据包载荷的解密操作,得到明文数据包,最后将明文数据包转发给数据接收主机。
56.本实施例中,目的交换机收到密文数据包后进行流表匹配,当执行program动作时,目的交换机执行对应的动作程序,即解密程序,完成对数据包载荷的解密操作,重新封装数据包,最后将明文数据包转发给主机b。
57.进一步地,该方法还包括:
58.s6、一个跳变周期后,控制器随机更新加密算法和密钥;所述源交换机随之更新流表规则和加密动作程序;相应地,所述目的交换机更新流表规则和解密动作程序。
59.本实施例中,一个跳变周期t后,控制器随机选择加密算法g’,密钥k’,更新源交换机和目的交换机的流表规则和动作程序。在上述过程中,加密算法和密钥随时间变化,使得一次网络通信中的数据包采用不同加密算法和密钥加密,大大提高数据破解难度。
60.在本实施例中,加解密动作程序根据配置文件参数确定加解密算法和密钥。控制器生成加解密动作程序配置文件时,随机选择加解密算法,并在密钥空间中随机选择加解密密钥,保证数据加密的安全性。
61.由于传统基于数据块分组的加密算法可能造成加密后数据量增加。在明文数据包载荷长度已达到最大长度的情况下,加密可导致数据包分片,严重影响数据传输效率。为解决该问题,在本实施例进一步的实施方式中,对基于数据块分组的加密算法进改造,对最后一个长度不足数据块分组,采用不增加密文长度的密码算法进行加密。解密时,与之对应进行解密。
62.在加密跳变的过程中,当加解密动作程序切换时,可能导致加解密不一致,即同一个数据包采用了不匹配的加解密程序,导致目标主机无法解析数据。为解决该问题,在本实施例更进一步的实施方式中,采用阶段式流表
‑
动作程序更新方法。具体来说,针对主机a到主机b的数据包,加密跳变按如下步骤进行:
63.1)除源目的交换机以外,控制器对主机a到主机b路由路径上的交换机安装流表规则,转发带有标签f的数据包;
64.2)控制器对目的交换机安装新的流表项和解密动作程序,目的交换机对主机a到主机b且带有标签f的数据包执行解密动作程序;
65.3)对源交换机安装新的加密动作程序;
66.4)修改源交换机的流表,对主机a到主机b的数据包执行新的加密动作程序,并对数据包打标签f;
67.5)等待主机a到主机b最长传输时延,然后删除主机a到主机b路由路径上所有老流表项,删除源目的交换机上的老加解密动作程序;
68.6)修改主机a到主机b路由路径上的新流表项,删除标签f。
69.在主机a到主机b通信的另一个方向上,更新过程与上述步骤相同。上述阶段式流表
‑
动作程序更新方法能够保证在加密跳变期间,流量仍可以由老加解密动作程序处理,不会发生加解密不匹配,而在流表
‑
动作程序更新后,流量由新加解密动作程序处理,并保证每包一致性。当控制器根据交换机发起的flow
‑
removed消息检测到在某个跳变周期内流表项没有命中,则认为主机a到主机b的通信已经结束,不再更新流表和加解密动作程序。
70.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
71.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
72.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
73.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
74.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
75.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read
‑
only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
76.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进
行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
转载请注明原文地址:https://win.8miu.com/read-28662.html