1.一种基于SDN的验证头验证方法,其特征在于,包括:
控制器配置验证头选项;
控制器接收交换机上报的MAC地址信息,并根据交换机的MAC地址信息计算网络拓扑;
控制器接收交换机上报的未匹配流表的报文,并根据网络拓扑、交换机的MAC地址信息和报文MAC地址计算转发路径;
控制器生成密钥,并向转发路径上的所有交换机下发包含验证头选项和密钥的流表,转发路径上的交换机根据验证头选项和密钥进行数据报文的验证头验证。
2.根据权利要求1所述的基于SDN的验证头验证方法,其特征在于,所述验证头选项包括验证头开关项和防重放攻击项,其中,所述验证头开关项用于启用或关闭验证头算法功能,所述防重放攻击项用于启用或关闭防重放攻击功能。
3.根据权利要求2所述的基于SDN的验证头验证方法,其特征在于,所述控制器接收交换机上报的MAC地址信息,并根据交换机的MAC地址信息计算网络拓扑,具体包括:控制器接收交换机发送的Experimenter报文,所述Experimenter报文中包括交换机的MAC地址信息,所述交换机的MAC地址信息包括交换机自己的MAC地址、交换机的端口ID、以及所述交换端口下学习到MAC地址;
控制器根据所述交换机自己的MAC地址、交换机的端口ID、以及所述交换端口下学习到MAC地址,采用链路层发现协议计算网络拓扑。
4.根据权利要求3所述的基于SDN的验证头验证方法,其特征在于,所述SDN中,包括入口交换机、中间交换机和出口交换机;
所述控制器生成密钥,并向转发路径上的所有交换机下发包含验证头选项和密钥的流表,具体包括:控制器生成密钥,并向转发路径上的所有交换机下发包含验证头选项和密钥的流表,所述流表中设置:对于入口交换机,根据验证头选项为原始数据报文封装验证头;
对于中间交换机,对接收到带有验证头的数据报文进行验证头验证;
对于出口交换机,对接收到带有验证头的数据报文进行验证头验证,并去掉验证头,还原成原始数据报文。
5.根据权利要求4所述的基于SDN的验证头验证方法,其特征在于,所述转发路径上的交换机根据验证头选项和密钥进行数据报文的验证头验证,具体包括:如果入口交换机接收到原始数据报文,在验证头选项中的验证头开关项开启时,入口交换机使用密钥对原始数据进行HMAC计算,根据计算得到的验证头的摘要信息为原始数据报文封装验证头,封装了验证头的报文结构包括报文的源MAC地址、目的MAC地址、验证头和原始数据;如果验证头开关项中的验证头开关项和防重放攻击项都开启,则验证头包括长度域和序列号,其中长度域指定验证头数据的长度,序列号用于指定报文的顺序号;使用密钥对原始数据进行HMAC计算,计算得到的验证头数据和序列号形成验证头的摘要信息;
如果中间交换机接收到带有验证头的数据报文,使用密钥对数据报文的原始数据进行HMAC计算,验证计算的摘要信息和验证头中的摘要信息是否一致,如果一致,则验证通过,将带有验证头的数据报文在转发路径上转发;如果不一致,则数据报文被篡改,向控制器告警;
如果出口交换机接收到带有验证头的数据报文,使用密钥对数据报文的原始数据进行HMAC计算,验证计算的摘要信息和验证头中的摘要信息是否一致,如果一致,则验证通过,去掉验证头,还原成原始数据报文;如果不一致,则数据报文被篡改,向控制器告警。
6.一种基于SDN的验证头验证系统,其特征在于,包括:
交换机,用于向控制器上报MAC地址信息;向控制器上报未匹配流表的报文,所述报文包括报文MAC地址;以及根据控制器下发的验证头选项和密钥进行数据报文的验证头验证;
控制器,用于配置验证头选项;当接收到交换机上报的MAC地址信息后,根据交换机的MAC地址信息计算网络拓扑;当接收到交换机上报的未匹配流表的报文后,根据网络拓扑、交换机的MAC地址信息和报文MAC地址计算转发路径;生成密钥,并向转发路径上的所有交换机下发包含验证头选项和密钥的流表。
7.根据权利要求6所述的基于SDN的验证头验证系统,其特征在于,所述验证头选项包括验证头开关项和防重放攻击项,其中,所述验证头开关项用于启用或关闭验证头算法功能,所述防重放攻击项用于启用或关闭防重放攻击功能。
8.根据权利要求7所述的基于SDN的验证头验证系统,其特征在于,所述控制器接收交换机上报的MAC地址信息,并根据交换机的MAC地址信息计算网络拓扑,具体为:控制器接收交换机发送的Experimenter报文,所述Experimenter报文中包括交换机的MAC地址信息,所述交换机的MAC地址信息包括交换机自己的MAC地址、交换机的端口ID、以及所述交换端口下学习到MAC地址;
控制器根据所述交换机自己的MAC地址、交换机的端口ID、以及所述交换端口下学习到MAC地址,采用链路层发现协议计算网络拓扑。
9.根据权利要求8所述的基于SDN的验证头验证系统,其特征在于,所述SDN中,包括入口交换机、中间交换机和出口交换机;
所述控制器生成密钥,并向转发路径上的所有交换机下发包含验证头选项和密钥的流表,具体为:控制器生成密钥,并向转发路径上的所有交换机下发包含验证头选项和密钥的流表;
对于入口交换机,根据验证头选项为原始数据报文封装验证头;
对于中间交换机,对接收到带有验证头的数据报文进行验证头验证;
对于出口交换机,对接收到带有验证头的数据报文进行验证头验证,并去掉验证头,还原成原始数据报文。
10.根据权利要求9所述的基于SDN的验证头验证系统,其特征在于,所述交换机根据控制器下发的验证头选项和密钥进行数据报文的验证头验证,具体为:如果入口交换机接收到原始数据报文,在验证头选项中的验证头开关项开启时,入口交换机使用密钥对原始数据进行HMAC计算,根据计算得到的验证头的摘要信息为原始数据报文封装验证头,封装了验证头的报文结构包括报文的源MAC地址、目的MAC地址、验证头和原始数据;如果验证头开关项中的验证头开关项和防重放攻击项都开启,则验证头包括长度域和序列号,其中长度域指定验证头数据的长度,序列号用于指定报文的顺序号;使用密钥对原始数据进行HMAC计算,计算得到的验证头数据和序列号形成验证头的摘要信息;
如果中间交换机接收到带有验证头的数据报文,使用密钥对数据报文的原始数据进行HMAC计算,验证计算的摘要信息和验证头中的摘要信息是否一致,如果一致,则验证通过,将带有验证头的数据报文在转发路径上转发;如果不一致,则数据报文被篡改,向控制器告警;
如果出口交换机接收到带有验证头的数据报文,使用密钥对数据报文的原始数据进行HMAC计算,验证计算的摘要信息和验证头中的摘要信息是否一致,如果一致,则验证通过,去掉验证头,还原成原始数据报文;如果不一致,则数据报文被篡改,向控制器告警。