本发明涉及一种安全认证方法及系统,属于信息安全领域,具体是涉及一种sdn网络控制器安全认证方法及系统。
背景技术:
软件定义网络是一种新型网络架构,是网络虚拟化的一种实现方式,在传统tcp/ip的网络架构之上,建立一种灵活的数据接入和转发方式,从而降低实现新型网络协议的技术壁垒以及网络管理的成本和难度。通过将网络设备控制平面与数据平面相分离,强化了控制器在网络管理中的作用,减少路由设备大量的重复计算,通过开放编程接口优化转发链路,并根据网络的实时状态更改路由策略,从而实现了网络流量的灵活控制,简化了网络的配置模式,减少对硬件的依赖程度,改善了现有网络在灵活性,交互性和可扩展性等方面存在的不足之处,有利于大规模网络的快速部署和实施。
openflow初步实现了sdn的原型设计思想,也是目前使用最为广泛的sdn通信协议,由于openflow协议目前仍处于初始阶段,协议自身还不够完善,不能保证控制器和交换机之间的认证性,攻击者可以对通信端口进行监听获得敏感数据,或者伪装成网络中已存在的交换机对控制器的转发策略进行修改。控制器作为sdn网络中的核心组件,保证其安全性和稳定性是确保网络正确运行的关键。控制器的安全性措施又分为硬件措施和软件策略。硬件措施包括建立master-slave机制,使用防火墙和流表控制规则,封装控制器的编程接口等;软件策略包括使用tls/ssl安全协议,完善openflow协议自身的安全缺陷等方面的内容。由于tls/ssl协议通信效率不高,在大规模数据网络中会影响数据的转发速率,因此提高sdn通信协议的安全等级和优化协议的消息结构是比较可行的方案。
技术实现要素:
本发明主要是解决现有技术所存在的上述的技术问题,提供了一种sdn网络控制器安全认证方法及系统。该方法及系统采取数字签名技术,在通信过程中确保消息的不可伪造,实现通信双方的实时认证,采用非对称加密技术,在通信过程中对会话密钥进行加密传输,采用对称加密技术,对通信消息进行加密,实现消息传递过程中的保密性。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种sdn网络控制器安全认证方法,包括:
步骤1,确定交换机和控制器所使用的openflow协议版本;
步骤2,控制器发送请求获得交换机配置信息;
步骤3,控制器向交换机发送认证请求,请求成功后使用dpid生成会话密钥并发送至交换机验证,请求失败则终止会话;
步骤4,交换机验证控制器发送的密钥,验证成功后发送认证结果应答至控制器,控制器根据应答结果判断认证结果,若认证成功则使用会话密钥加密后续消息,若失败则终止会话。
优先的,上述的一种sdn网络控制器安全认证方法,所述步骤1中,交换机和控制器先建立tcp连接,随后交换机发送消息of_hello至控制器,控制器应答对称消息of_hello给交换机,以确定双方使用的openflow协议版本。
优先的,上述的一种sdn网络控制器安全认证方法,所述步骤2中的配置信息包括:交换机的datapathid、最大缓存数量、最大转发表数量、最大辅助连接数量。
优先的,上述的一种sdn网络控制器安全认证方法,所述步骤2中,控制器向交换机发送of_features_request消息,交换机则应答ofpt_features_reply消息,该消息包含交换机的datapathid,以及最大缓存数量,最大转发表数量和最大辅助连接数量。
优先的,上述的一种sdn网络控制器安全认证方法,所述步骤3中,由控制器主动发起认证请求,使用数字签名技术对of_auth_request消息中的协议类型、事件序列号和dpid生成消息摘要,封装至of_auth_request消息中,发送给交换机。
优先的,上述的一种sdn网络控制器安全认证方法,所述步骤4具体包括:
步骤4.1,交换机收到of_auth_request消息后,使用控制器公钥对数字签名解密,获得该摘要信息并确认;
步骤4.2,交换机生成会话密钥,使用非对称加密算法加密该密钥,计算数字签名,封装至of_auth_reply消息中发送至控制器;
步骤4.3,控制器在接收到of_auth_reply消息后解密。
一种sdn网络控制器安全认证系统,包括:
版本确定模块,确定交换机和控制器所使用的openflow协议版本;
配置获取模块,控制器发送请求获得交换机配置信息;
认证请求模块,控制器向交换机发送认证请求,请求成功后使用dpid生成会话密钥并发送至交换机验证,请求失败则终止会话;
密钥验证模块,交换机验证控制器发送的密钥,验证成功后发送认证结果应答至控制器,控制器根据应答结果判断认证结果,若认证成功则使用会话密钥加密后续消息,若失败则终止会话。
因此,本发明具有如下优点:
1、采取数字签名技术,在通信过程中确保消息的不可伪造,实现通信双方的实时认证。
2、采用非对称加密技术,在通信过程中对会话密钥进行加密传输。
3、采用对称加密技术,对通信消息进行加密,实现消息传递过程中的保密性。
附图说明
附图1是本发明的一种原理图;
附图2是本发明的一种工作流程图;
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
控制器和交换机建立连接过程,如图1所示,首先需要进行版本协商,确认后续过程中所使用openflow协议的版本;随后控制器发送请求获得交换机的配置信息,包括交换机的datapathid,以及最大缓存数量,最大转发表数量和最大辅助连接数量等参数。在获取交换区的相关数据后,控制器发送认证请求,请求成功后使用dpid生成会话密钥,交换机验证成功后发送认证结果应答,控制器根据应答结果判断认证性结果,认证成功则使用会话密钥加密后续消息。若认证请求失败或认证结果失败则终止连接过程。
控制器和交换机建立连接过程所使用的具体消息项,如图2所示,首先交换机和控制器需要建立tcp连接,随后交换机发送消息of_hello至控制器,控制器应答对称消息of_hello给交换机,以确定双方使用的openflow协议版本。确定协议版本后,控制器向交换机发送of_features_request消息,交换机则应答ofpt_features_reply消息,该消息包含交换机的datapathid,以及最大缓存数量,最大转发表数量和最大辅助连接数量等参数。在控制器获得交换机的datapathid之后,控制器需要继续核实交换机的身份信息。该过程由控制器主动发起认证请求,使用数字签名技术对of_auth_request消息中的协议类型、事件序列号和dpid生成消息摘要,封装至of_auth_request消息中,发送给交换机。交换机收到of_auth_request消息后,使用控制器公钥对数字签名解密,获得该摘要信息,确认。生成会话密钥,使用非对称加密算法加密该密钥,计算数字签名,封装至of_auth_reply消息中发送至控制器。控制器在接收到of_auth_reply消息后解密。认证过程完成。使用获得的会话密钥加密后续的通信消息项。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。