1.一种SDN网络中间人攻击的检测方法,对于包含控制器与交换机的SDN网络,其特征在于:在初始阶段,包括以下步骤:
S11,为SDN网络中的各交换机分别生成一个密钥,分发到对应的交换机中;将包含交换机的身份信息、以对应密钥作为指纹的元素保存进布谷过滤器CF中;
在检测阶段,包括以下步骤:
S21,向待检测流在SDN网络传播过程中经过的w个交换机发送检测请求;
S22,收集该w个交换机根据所述检测请求对所述待检测流中的包进行映射保存,并经过对应密钥加密后的布隆过滤器BF;
S23,利用所述布谷过滤器CF检测所述布隆过滤器BF对应的交换机身份的合法性,获得对应的密钥;
S24,通过对所述布隆过滤器BF进行解密与比对,判断是否发生了中间人攻击。
2.根据权利要求1所述的SDN网络中间人攻击的检测方法,其特征在于,在初始阶段进行如下映射过程:h1(xi)=hash(xi);
其中,ki(i∈[1,W])表示分别与W个交换机对应的密钥;xi(i∈[1,W])表示包含交换机的身份信息的元素。
3.根据权利要求1所述的SDN网络中间人攻击的检测方法,其特征在于,在所述步骤S24中,若该w个交换机提交的布隆过滤器BF解密结果都相同,则认为没有发生中间人攻击;若其中有交换机的解密结果与其它交换机的解密结果不同,则认为该交换机可能受到了中间人攻击。
4.根据权利要求1所述的SDN网络中间人攻击的检测方法,其特征在于,所述检测请求由五元组{f,s,e,m,n}构成,其中,f为所述待检测流的身份信息,即匹配域的完整内容;s和e分别为所述待检测流的包的开始编号和结束编号;m用于指定匹配域中用于保存进布隆过滤器BF的部分;n为将要保存进布隆过滤器BF的元素的个数,用于辅助构建布隆过滤器BF。
5.根据权利要求4所述的SDN网络中间人攻击的检测方法,其特征在于,交换机收到检测请求后,首先根据f定位到所述待检测流,再根据n来决定布隆过滤器BF的比特数组的长度L。
6.根据权利要求5所述的SDN网络中间人攻击的检测方法,其特征在于,所述n、L、k之间的关系满足:估算ln2并换算后得出L的计算公式:
7.根据权利要求6所述的SDN网络中间人攻击的检测方法,其特征在于,该w个交换机分别通过初始化一个长度为L的比特数组,根据s和e定位所述待检测流的包,根据m将对应的匹配域信息哈希后保存进布隆过滤器BF中。
8.一种SDN网络中间人攻击的检测系统,其特征在于,包括初始化模块(11)、请求模块(21)、收集模块(22)、合法性检测模块(23)以及解密比对模块(24);其中:所述初始化模块(11)用于在初始阶段为SDN网络中的各交换机分别生成一个密钥,分发到对应的交换机中;将包含交换机的身份信息、以对应密钥作为指纹的元素保存进布谷过滤器CF中;
所述请求模块(21)用于向待检测流在SDN网络传播过程中经过的w个交换机发送检测请求;
所述收集模块(22)用于收集该w个交换机根据所述检测请求对所述待检测流中的包进行映射保存,并经过对应密钥加密后的布隆过滤器BF;
所述合法性检测模块(23)用于利用所述布谷过滤器CF检测所述布隆过滤器BF对应的交换机身份的合法性,获得对应的密钥;
所述解密比对模块(24)用于通过对所述布隆过滤器BF进行解密与比对,判断是否发生了中间人攻击。
9.一种存储介质,其上储存有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的SDN网络中间人攻击的检测方法的步骤。
10.一种网络设备,其特征在于∶包括存储介质、处理器以及储存在所述存储介质中并可被所述处理器执行的计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的SDN网络中间人攻击的检测方法的步骤。