背景技术
目前,随着网络在社会上的广泛应用,用户对于网络的可靠性也提出了越来越高的要求。为了应对用户对网络可靠性的高要求,各种应对网络外部威胁的网络安全措施也越来越多。随着以太网的快速发展,对于网络内部的安全需求也与日俱增,基于此媒体接入控制安全(Media Access Control security,MACsec)协议被开发并应用于局域网的数据保护。MACsec协议通过提供逐跳的安全性,对接入网络的终端的通信进行保护。由于MACsec协议只提供了对数据进行封装和加密的框架,它还需要其他协议来提供密钥管理、成员认证和授权等功能,因此MACsec密钥协商(MACsec Key Agreement,MKA)协议被制定出来,以满足MACsec协议对密钥的相关需求。IEEE802.1X协议通过认证提供了基于端口的接入控制,而MKA协议则是该协议的一个扩展,其协议报文是扩展了类型的基于局域网的扩展认证(Extensible Authentication Protocol overLANs,EAPOL)报文,通过MKA协议报文的交互来发现MACsec成员并协商MACsec密钥。
图1为根据现有技术的成组CA示意图。交换设备A、B、C之间创建了一个组CA,具体方法包括:
步骤11、认证服务器在认证过程中为其中两个交换设备A和B分发主会话密钥1(Master Session Key,MSK1),用于交换机各自推导计算生成连通集密钥(CAK)1,CAK包括密钥(Key)值和名称(name),交换机之间采用MKA报文,互相通告CAK的name,在接收到的CAK的name与自身生成的CAK name相匹配(即两者相同)时,确定互为同一成对CA1中成员。
依次类推,认证服务器在认证过程中为交换设备A和C分发MSK2,最终确认交换机A和C互为同一成对CA2中成员;认证服务器在认证过程中为交换设备B和C分发MSK3,最终确认交换机B和C互为同一成对CA3中成员。
步骤12、作为密钥服务器的交换机将组CA的CAK的key值通过MKA报文,发送给组CA成员。例如,交换机A根据优先属性参数,确定为密钥服务器,交换机A将组CA的CAK的key值通过MKA报文,发送给组CA成员:交换机B和交换机C,从而形成组CA。
后续,作为密钥服务器的交换机根据CAK推导生成安全集密钥(SecureAssociation Key,SAK),通过MKA报文,发送给组CA成员;组CA成员接收SAK并安装后就可以对数据报文进行加密通信了。在上述描述中,MACsec协议负责使用SAK完成对收发的数据进行加解密的控制,MKA协议负责发现CA中的成员,并通过协议交互生成SAK,以提供给MACsec使用。
从上述描述可以看出,要形成组CA,必须先在两两设备之间形成成对CA,基于成对的CA才能形成成组的CA。而且现有技术在形成成对CA时,要在EAP认证的过程中,只有在EAP认证的过程中才能给要形成成对CA的两个交换设备分配MSK,从而进行后续的推导生成CAK,并进行成对CA成员相互间的确认。而在EAP认证过程中,要求一个交换机作为客户端,另一个交换机作为认证者,而交换机一般只支持EAP服务器端,而不支持EAP客户端,支持EAP客户端需要进行大型的项目开发才能实现。
发明内容
本发明的目的在于提供一种成组CA的形成方法和装置,能够快速形成成组CA。
为实现上述发明目的,本发明提供了一种成组CA的形成方法,应用于软件定义的网络(SDN)中,所述SDN包括控制设备和SDN设备,该方法包括:
第一SDN设备根据控制设备为同一CA中的SDN设备下发的主会话密钥MSK和同一CA中的所有SDN设备的媒体接入控制MAC地址拼接值,推导生成连通集密钥CAK名称,并保存所述CAK名称,并向其他SDN设备发送携带有所述CAK名称的媒体接入控制安全密钥协商MKA报文;
第一SDN设备接收其他SDN设备发送的MKA报文,所述MKA报文携带其他SDN设备根据控制设备下发的MSK和MAC地址拼接值推导生成的CAK名称;
第一SDN设备在接收的MKA报文中的CAK名称与自身保存的CAK名称相匹配时,确认其他SDN设备与第一SDN设备为同一CA中的成员。
为实现上述发明目的,本发明还提供了一种成组CA的形成方法,应用于软件定义的网络SDN中,所述SDN包括控制设备和SDN设备,该方法包括:
控制设备确认同一连通集CA中的SDN设备;
控制设备为同一CA中的每个SDN设备生成相同主会话密钥MSK;
控制设备向同一CA中的每个SDN设备下发该同一CA中的所有SDN设备的媒体接入控制MAC地址拼接值以及所述MSK,以使得各个SDN设基于所述MSK和MAC地址拼接值推导生成CAK名称,并通过在SDN设备之间交互各自生成的CAK名称来形成成组CA。
为实现上述发明目的,本发明还提供了一种SDN设备,所述设备包括:
接收单元,用于接收控制设备为同一连通集CA中的SDN设备下发的主会话密钥MSK和同一CA中的所有SDN设备的媒体接入控制MAC地址拼接值;还用于接收其他SDN设备发送的媒体接入控制安全密钥协商MKA报文,所述MKA报文携带其他SDN设备根据控制设备下发的MSK和MAC地址拼接值推导生成的CAK名称;
生成存储单元,用于根据控制设备下发的MSK和MAC地址拼接值推导生成CAK名称,并保存所述CAK名称;
发送单元,用于向其他SDN设备发送携带有所述CAK名称的MKA报文;
控制单元,用于在接收的MKA报文中的CAK名称与自身保存的CAK名称相匹配时,确认其他SDN设备与第一SDN设备为同一CA中的成员。
为实现上述发明目的,本发明还提供了一种控制设备,该设备包括:
确认单元,用于确认同一连通集CA中的SDN设备;
生成单元,用于为同一CA中的每个SDN设备生成相同主会话密钥MSK;
下发单元,用于向同一CA中的每个SDN设备下发该同一CA中的所有SDN设备的媒体接入控制MAC地址拼接值以及所述MSK,以使得各个SDN设基于所述MSK和MAC地址拼接值推导生成CAK名称,并通过在SDN设备之间交互各自生成的CAK名称来形成成组CA。
综上所述,本发明实施例的SDN网络中,控制设备为同一CA中的SDN设备下发相同MSK和MAC地址拼接值,同一CA中的SDN设备各自根据MSK和MAC地址拼接值推导生成相同的CAK名称,用于携带在MKA报文中相互确认是同一CA中的成员,从而形成成组CA。在现有技术的传统网络中,需要先形成成对CA,再形成成组CA,而且由于现有技术需要通过EAP认证分发MSK,所以网络设备需要支持EAP客户端。本发明与现有技术相比,简化实现MSK的分发,加速了成组CA的形成,并且SDN设备不需要支持EAP客户端。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
成组CA包含两个以上的参与者,其中一个参与者作为密钥服务器,另外的参与者作为成组CA的成员(Member)。同一个CA拥有同一个CAK,CAK是CA的根密钥,此CA使用的所有其他密钥例如SAK、KEK等,都是由此CAK导出,本发明实施例中根据MSK和MAC地址拼接值推导生成CAK,以及根据CAK推导生成KEK及SAK的方法,为现有技术,在此不再赘述。本发明在软件定义的网络(Software Defined Network,SDN)中,控制设备对SDN设备的CA进行划分,实现了成组CA的快速形成,而且,由于本发明成组CA的形成方法不需要EAP认证,所以不需要SDN设备支持EAP客户端,大大节省了开发成本。
下面简单介绍一下SDN网络,基本的SDN网络包括:控制面的控制设备(Controller)和转发面的SDN设备,SDN设备一般为交换机。SDN设备将传统交换机上的报文转发和转发策略分离开来,采用专门的一台控制设备与交换机连接。这样原来同在一台交换机设备上的报文转发功能(硬件芯片实现)和报文转发策略(各种软件协议)就被分开到了不同的硬件设备上。而一台控制设备可以控制多台SDN设备,从而实现了统一的转发控制端,更有效地控制了网络。而且,每一台SDN设备通过相应的安全控制通道与控制设备进行交互,用于SDN控制设备单播控制任意一台SDN设备进行特定的操作。本发明正是利用了SDN网络中控制设备的控制能力,对SDN设备的成组CA进行划分,并能够确认该成组CA中的密钥服务器,使得在采用本发明的方法形成成组CA时,不需要像现有技术那样先形成成对CA,再形成成组CA,因此,本发明实现了成组CA的快速形成。
本发明实施例提供了一种成组CA的形成方法,应用于SDN网络中,该SDN网络包括控制设备和多个SDN设备,其流程示意图如图2所示,该方法包括:
步骤21、第一SDN设备根据控制设备为同一CA中的SDN设备下发的主会话密钥MSK和同一CA中的所有SDN设备的媒体接入控制MAC地址拼接值,推导生成CAK名称,并保存所述CAK名称,并向其他SDN设备发送携带有所述CAK名称的MKA报文;
步骤22、第一SDN设备接收其他SDN设备发送的MKA报文,所述MKA报文携带其他SDN设备根据控制设备下发的MSK和MAC地址拼接值推导生成的CAK名称;
步骤23、第一SDN设备在接收的MKA报文中的CAK名称与自身保存的CAK名称相匹配时,确认其他SDN设备与第一SDN设备为同一CA中的成员。
为清楚说明本发明,上述将多个SDN设备中的一个设备定义为第一SDN设备,该第一SDN设备作为最后形成的成组CA中的一个成员。具体地,本发明是通过控制设备与SDN设备之间的交互,以及SDN设备之间的交互,形成成组CA,下面列举实施例对上述方法进行详细说明。图3为本发明实施例SDN网络中成组CA的示意图。图3中,可以通过网管预先在控制设备上,将SDN设备D、E、F配置形成成组CA。
1)由于预先在控制设备上配置了成组CA的SDN设备,所以控制设备能够确认同一CA,即成组CA中有哪几台SDN设备,并且知晓这几台SDN设备的MAC地址,同时能够根据该成组CA中各SDN设备的优先属性参数,将优先级较高的SDN设备作为密钥服务器。该实施例中将成组CA中的SDN设备D作为密钥服务器。
控制设备中采用能够生成MSK的装置,例如随机数生成器(Randomnumber generator,RNG),为同一CA中的所有SDN设备生成相同的MSK,将所述MSK通过与每个SDN设备相应的安全控制通道,下发给同一CA中的每个SDN设备。为确保MSK能够安全下发给同一CA中的每个SDN设备,需要在下发时对MSK进行加密,对MSK加密的方式有多种,例如,SDN网络在组建时,要为每一台SDN设备安装不同的证书,所以控制设备为同一CA中的SDN设备下发MSK时,可以以每个SDN设备的证书进行加密,SDN设备采用自身安装的证书对下发的MSK进行解密后使用。
同时,控制设备将CA中所有成员的MAC地址进行拼接后,将所生成的MAC地址拼接值通过与每个SDN设备相应的安全控制通道,与MSK一起下发给同一CA中的每个SDN设备。其中,对MAC地址的拼接方式有多种,一般采用MAC地址从小到大的拼接值,或者从大到小的拼接值。这里只要确保控制设备下发给同一CA中的SDN设备的MAC地址拼接值相同即可,具体如何拼接则不作具体限制。
2)同一CA中的SDN设备D、E、和F都会接收到上述MSK和MAC地址拼接值,并且SDN设备D还会收到控制设备下发的密钥服务器标识。然后SDN设备D、E、和F都会根据MSK和MAC地址拼接值推导生成CAK名称,并保存所述CAK名称。因为SDN设备都是基于同一MSK和MAC地址拼接值进行推导,所以推导生成的CAK名称也相同。进一步地,SDN设备还会根据MSK和MAC地址拼接值推导生成CAK的Key值,并保存所述CAK的Key值,显然,因为SDN设备都是基于同一MSK和MAC地址拼接值进行推导,所以推导生成的CAK的Key值也相同。
SDN设备D、E、和F根据MSK和MAC地址拼接值推导生成CAK时,各自创建发送方向的安全通道(Secure Channel,SC),分别为图3中的SCD、SCE和SCF。
3)同一CA中的SDN设备之间进行MKA报文交互,所述MKA报文携带其他SDN设备根据控制设备下发的MSK和MAC地址拼接值推导生成的CAK名称。
SDN设备接收同一CA中其他SDN设备发送的MKA报文时,创建与其他SDN设备之间接收方向的SC,设备D创建接收方向的SCE和SCF;设备E创建接收方向的SCD和SCF;设备F创建接收方向的SCD和SCE。
4)同一CA中各个SDN设备在接收的MKA报文中的CAK名称与自身保存的CAK名称相匹配时,确认其他SDN设备与自身SDN设备为同一CA中的成员。
至此,SDN设备D、E和F形成成组CA,这里形成发送方向的SC用于后续发送SAK加密的数据报文;形成接收方向的SC用于后续接收经SAK加密的数据报文。
具体地,在2)中SDN设备D、E、和F都会根据CAK的Key值推导生成相同的用于加密SAK的KEK,而且在2)中同一CA中作为Key Server的SDN设备D根据CAK的Key值生成SAK。因此,在作为Key ServerSDN设备D上,SAK经KEK加密后,携带在MKA报文中发送给同一CA中的其他SDN设备,如SDN设备E和F。同一CA中的其他SDN设备,如SDN设备E和F,接收到经KEK加密的SAK,SDN设备E和F分别用本地推导生成的KEK进行解密,获取SAK。最终,数据报文在各个SDN设备的发送端通过发送方向的SC采用SAK进行加密发送,在接收端通过接收方向的SC采用SAK进行解密接收。
进一步地,为提高网络数据传输的安全性,控制设备还可以采用随机数生成器,直接生成SAK,根据网络的流量及安全监测结果,通过相应安全控制通道向同一CA中的SDN设备下发更新的SAK。下发更新的SAK时也可以采用SDN设备的证书对SAK进行加密后下发。
接下来,密钥服务器确定同一CA中的所有SDN设备都安装该更新的SAK后,数据报文采用所述SAK进行加密传输。由于控制设备向SDN设备下发刷新SAK的优先级要高于成组CA中的密钥服务器,从而增强CA的可管理性和可维护性。
本发明成组CA的形成方法,会带来如下好处:
一、SDN设备不需要支持EAP客户端;
二、SDN控制设备可以灵活控制CA的规划和SAK的更新;
三、加速成组CA的形成。
基于同样的发明构思,本发明还提出一种SDN设备,应用于包括控制设备和SDN设备的SDN网络中,参见图4,图4为本发明具体实施例中应用于上述方法的SDN设备的结构示意图。该SDN设备包括:
接收单元401,用于接收控制设备为同一连通集CA中的SDN设备下发的主会话密钥MSK和同一CA中的所有SDN设备的媒体接入控制MAC地址拼接值;还用于接收其他SDN设备发送的媒体接入控制安全密钥协商MKA报文,所述MKA报文携带其他SDN设备根据控制设备下发的MSK和MAC地址拼接值推导生成的CAK名称;
生成存储单元402,用于根据控制设备下发的MSK和MAC地址拼接值推导生成CAK名称,并保存所述CAK名称;
发送单元403,用于向其他SDN设备发送携带有所述CAK名称的MKA报文;
控制单元404,用于在接收的MKA报文中的CAK名称与自身保存的CAK名称相匹配时,确认其他SDN设备与第一SDN设备为同一CA中的成员。
所述接收单元401,还用于接收控制设备下发的密钥服务器标识;
所述控制单元404,还用于根据所述密钥服务器标识设置自身为所述CA的密钥服务器,根据所述MSK和MAC地址拼接值推导生成CAK的密钥值,进而根据CAK的密钥值推导生成安全集密钥SAK并分发给同一CA中的其他SDN设备。
所述接收单元401,还用于接收作为所述CA中的密钥服务器的SDN设备生成并分发的SAK。
所述设备进一步包括:安全通道创建单元405;
所述安全通道创建单元405,用于在根据控制设备为同一CA中的SDN设备下发的MSK和MAC地址拼接值推导生成CAK名称时,创建发送方向的安全通道SC;在接收同一CA中其他SDN设备发送的MKA报文时,创建与其他SDN设备之间接收方向的SC;
所述接收单元401,还用于通过接收方向的SC,将数据报文采用SAK进行解密接收;
所述发送单元403,还用于通过发送方向的SC,将数据报文采用SAK进行加密发送。
所述接收单元401,还用于通过相应的安全控制通道接收控制设备为同一CA中的SDN设备生成并下发的更新SAK。
本发明还提出一种控制设备,应用于包括控制设备和SDN设备的SDN网络中,参见图5,图5为本发明具体实施例中应用于上述方法的控制设备的结构示意图。
确认单元501,用于确认同一CA中的SDN设备;
生成单元502,用于为同一CA中的每个SDN设备生成相同主会话密钥MSK;
下发单元503,用于向同一CA中的每个SDN设备下发该同一CA中的所有SDN设备的媒体接入控制MAC地址拼接值以及所述MSK,以使得各个SDN设基于所述MSK和MAC地址拼接值推导生成CAK名称,并通过在SDN设备之间交互各自生成的CAK名称来形成成组CA。
所述确认单元501,还用于确认同一CA中作为密钥服务器的SDN设备;
所述下发单元503,还用于为同一CA中作为密钥服务器的SDN设备下发密钥服务器标识。
所述下发单元503,还用于在成组CA形成之后,为同一CA中的SDN设备生成并下发更新的SAK。
综上所述,本发明具体实施例中,通过在控制设备中采用能够生成MSK的设备,利用控制设备的控制能力,直接快速为同一CA的SDN设备生成相同MSK,并且控制设备还为同一CA的SDN设备生成相同的MAC地址拼接值,同一CA的SDN设备各自根据MSK和MAC地址拼接值推导生成CAK名称,然后相互之间通过确认CAK名称是否相同,确定是同一CA中的成员。进一步地,还可以在控制设备中为同一CA的SDN设备直接生成相同更新的SAK,根据网络的流量及安全监测结果,灵活更新SAK。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。