本发明涉及ipv6网络安全,特别涉及一种基于sdn和p4技术的ipv6邻居发现协议安全防护方法及系统。
背景技术:
1、邻居发现协议(network discovery protocol)是ipv6协议体系中重要组成部分之一,具备ipv4中的地址解析、路由器发现、重定向功能,同时新增了地址自动配置、邻居不可达检测(neighbor unreachable detection,nud)和重复地址检测(duplicate addressdetection,dad)等功能。然而,ndp协议却存在着严重的协议机制与协议实现方面的安全缺陷,即假定链路中的所有ipv6节点都是按照标准协议发送正常的报文。因此,威胁者可能利用ndp的漏洞制造各种各样的威胁,破环正常的网络环境。
2、ipv4和ipv6的地址解析程均存在安全隐患。在ipv4网络中,当一个主机想要与局域网中的另一个主机通信时,它需要知道目标主机的mac(media access control)地址,这是通过地址解析协议(address resolution protocol,arp)实现的。由于arp是无状态的,且arp消息中缺乏授权,因此可能会出现请求欺骗、响应欺骗、中间人(man-in-the-middle)等安全威胁。在ipv6网络中,使用邻居发现协议ndp中的邻居请求(neighborsolicitation)和邻居通告(neighbor advertisement)消息进行地址解析查找mac地址。默认情况下,ndp协议缺乏对报文的身份验证,因此威胁者可以伪造邻居请求和邻居通告报文来欺骗受害者构建虚假邻居信息。
3、互联网工程任务组(internet engineering task force,ietf)为了保护ipv6的安全,研究和制定了ipsec安全协议,但是ipsec无法有效防止针对ipv6协议本身漏洞的威胁行为,如中间人、拒绝服务等。同时,为了防范ndp协议的安全威胁,ietf又制定了安全邻居发现(send)协议,但是send协议需要消耗大量计算机资源,所以部署和使用较少。此外,研究人员也提出了许多针对邻居请求和通告欺骗的安全方法,如使用散列加密来隐藏消息中的目标地址或者将哈希函数计算出的消息验证码附加到ndp报文中,而这些方法需要对邻居发现协议和主机网络堆栈进行修改,因此难以部署应用。
技术实现思路
1、为此,本发明提供一种基于sdn和p4技术的ipv6邻居发现协议安全防护方法及系统,解决现有ipv6邻居发现协议安全防护技术中的ns和na安全防护方法需要对邻居发现协议进行修改,复杂性高、消耗资源多、可扩展性和可部署性差等问题,利用sdn和p4技术来改善并优化ipv6网络中的ns和na欺骗威胁防护。
2、按照本发明所提供的设计方案,一方面,提供一种基于sdn和p4技术的ipv6邻居发现协议安全防护方法,包含:
3、在目标ipv6网络搭建sdn架构,将目标ipv6网络中交换机的控制平面与数据平面分离,所述控制平面由交换机本地控制器组成并依据数据平面传输信息进行mac地址自学习;所述数据平面由p4数据包处理器组成,并利用p4数据包处理器预先收集目标ipv6网络主机地址信息;
4、针对主机发送的请求和通告报文,利用预先收集的目标ipv6网络主机地址信息对请求和通告报文数据包进行验证,以过滤异常数据包,并将验证通过的请求和通告报文数据包进行安全转发。
5、作为本发明基于sdn和p4技术的ipv6邻居发现协议安全防护方法,进一步地,所述p4数据包处理器包括用于提取邻居发现报文信息的解析器、用于依据匹配操作表对邻居发现报文执行匹配操作的匹配操作管道和将匹配操作和对应邻居发现报文信息进行封装转发的封装器。
6、作为本发明基于sdn和p4技术的ipv6邻居发现协议安全防护方法,进一步地,利用p4数据包处理器预先收集目标ipv6网络主机地址信息,包含:
7、针对主机发送的重复地址检测dad报文,依据dad报文中的源地址和目标地址创建主机地址信息和交换机端口绑定条目,以收集加入目标ipv6网络中的各主机地址信息。
8、作为本发明基于sdn和p4技术的ipv6邻居发现协议安全防护方法,进一步地,利用预先收集的目标ipv6网络主机地址信息对请求和通告报文数据包进行验证,包含:
9、若报文数据包为邻居请求数据包,则依据邻居请求数据包中源地址和目标地址判断是否为重复地址检测dad报文数据包,若是,则创建主机地址信息和交换机端口绑定条目,收集主机地址信息,若不是,则将主机地址信息与预先收集的目标ipv6网络主机地址信息进行匹配,若匹配成功,则对邻居请求数据包进行安全转发,若匹配不成功,则将该邻居请求数据包判定为异常数据包并过滤。
10、作为本发明基于sdn和p4技术的ipv6邻居发现协议安全防护方法,进一步地,利用预先收集的目标ipv6网络主机地址信息对请求和通告报文数据包进行验证,包含:
11、若报文数据包为邻居通告数据包,将邻居通告数据包中的源地址和目标地址与预先收集的目标ipv6网络主机地址信息进行匹配,若匹配成功,则对邻居通告数据包进行安全转发,若匹配不成功,则判定该邻居通告数据包是否为异常数据包并过滤。
12、作为本发明基于sdn和p4技术的ipv6邻居发现协议安全防护方法,进一步地,将验证通过的请求和通告报文数据包进行安全转发,包含:
13、将验证通过的请求和通告报文数据包按数据包中的mac地址进行转发,若数据包中的mac地址未被转发表记录,则将数据包相关信息发送至控制平面,利用交换机本地控制器在转发表中记录mac地址与其对应入端口之间的映射,以通过自学习建立mac地址对应转发表。
14、作为本发明基于sdn和p4技术的ipv6邻居发现协议安全防护方法,进一步地,将数据包相关信息发送至控制平面,包含:
15、将数据包的包摘要发送至控制平面,以使控制平面中的交换机本地控制器在转发表中填充对应流规则,其中,包摘要包括mac地址、进入端口和ipv6地址信息。
16、再一方面,本发明还提供一种基于sdn和p4技术的ipv6邻居发现协议安全防护系统,包含:环境搭建模块和安全防护模块,其中,
17、环境搭建模块,用于在目标ipv6网络搭建sdn架构,将目标ipv6网络中交换机的控制平面与数据平面分离,所述控制平面由交换机本地控制器组成并依据数据平面传输信息进行mac地址自学习;所述数据平面由p4数据包处理器组成,并利用p4数据包处理器预先收集目标ipv6网络主机地址信息;
18、安全防护模块,用于针对主机发送的请求和通告报文,利用预先收集的目标ipv6网络主机地址信息对请求和通告报文数据包进行验证,以过滤异常数据包,并将验证通过的请求和通告报文数据包进行安全转发。
19、本发明的有益效果:
20、本发明通过收集加入网络的ipv6主机进行重复地址检测过程的ipv6地址和相应交换端口信息,过滤不属于相应交换端口的异常数据包,根据自学习转发表转发数据包来抵御ns/na欺骗威胁,能够保护邻居请求和邻居通告过程。并进一步通过实验结果表明,本案方案可以正常收集加入ipv6网络的主机的信息,现有thc-ipv6、ipv6 toolkit等欺骗工具所发送的ns/na欺骗报文总能被检测和过滤,且与match-prevention、ndpsec等安全防护技术相比,本案方案p4nsa技术没有添加额外的邻居发现协议参数选项或使用哈希密码学,因此复杂性低、消耗资源少,在部署和应用中更可行,在网络安全防护领域具有较好的应用前景。
1.一种基于sdn和p4技术的ipv6邻居发现协议安全防护方法,其特征在于,包含:
2.根据权利要求1所述的基于sdn和p4技术的ipv6邻居发现协议安全防护方法,其特征在于,所述p4数据包处理器包括用于提取邻居发现报文信息的解析器、用于依据匹配操作表对邻居发现报文执行匹配操作的匹配操作管道和将匹配操作和对应邻居发现报文信息进行封装转发的封装器。
3.根据权利要求1或2所述的基于sdn和p4技术的ipv6邻居发现协议安全防护方法,其特征在于,利用p4数据包处理器预先收集目标ipv6网络主机地址信息,包含:
4.根据权利要求1所述的基于sdn和p4技术的ipv6邻居发现协议安全防护方法,其特征在于,利用预先收集的目标ipv6网络主机地址信息对请求和通告报文数据包进行验证,包含:
5.根据权利要求1或4所述的基于sdn和p4技术的ipv6邻居发现协议安全防护方法,其特征在于,利用预先收集的目标ipv6网络主机地址信息对请求和通告报文数据包进行验证,包含:
6.根据权利要求1所述的基于sdn和p4技术的ipv6邻居发现协议安全防护方法,其特征在于,将验证通过的请求和通告报文数据包进行安全转发,包含:
7.根据权利要求6所述的基于sdn和p4技术的ipv6邻居发现协议安全防护方法,其特征在于,将数据包相关信息发送至控制平面,包含:
8.一种基于sdn和p4技术的ipv6邻居发现协议安全防护系统,其特征在于,包含:环境搭建模块和安全防护模块,其中,
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当计算机程序被执行时,能够实现如权利要求1~7任一项所述的方法。
