IPv6技术在WLAN网络中已经开始逐步部署与应用。如何保证IPv6用户安全地接入WLAN网络是无线网络应用面临的新问题。
对于无线IPv6用户,其上网的身份标识,在链路层为MAC地址,在网络层为IP地址,在应用层为上网账号。而用户IP地址的有效性,特别是跨三层之后IP地址的有效性,将是保证无线用户安全的重要环节。本文将重点探讨保证IPv6用户地址有效性的解决方案。
一、IPv6网络的常见地址安全问题
所有的网络都面临报文的伪造问题,IPv6网络也一样。报文伪造主要是报文源地址的伪造,而且由于IPv6网络是一般都是新建网络,很容易忽视这个问题。但攻击者却已经开始“关注”它,并可能利用这些问题发起新的攻击。
攻击者伪造的报文可能是数据报文也可能是控制报文,最主要的是地址分配、解析的控制报文。在IPv6网络中,与地址分配、解析相关的控制报文主要是ND(Neighbor Discovery)协议报文、DHCPv6协议。
1、针对ND协议的攻击主要有如下几种:
l 欺骗攻击:通过发送伪造的NA/NS/RS报文,修改终端或网关上特定用户的MAC地址,如图1所示。
图1 欺骗攻击
l DoS攻击:通过发送大量伪造的NS/RS报文,攻击网关,使得网关的ND表项数量溢出,如图2所示。
图2 DoS攻击
l DAD攻击:通过伪造的NA报文,阻断终端正常的DAD过程,如图3所示。
图3 DAD攻击
l RA攻击:通过发送伪造的RA报文,欺骗网络中的终端,进行错误的网络参数配置。
图4 RA攻击
2、针对DHCPv6协议的攻击主要为伪造DHCPv6服务器。如果网络中存在私自架设的伪DHCPv6服务器,则可能导致DHCPv6客户端获取错误的IPv6地址和网络配置参数,无法正常通信。
二、 源地址有效性验证技术保证IPv6网络接入的安全性
H3C的SAVI(Source Address Validation,源地址有效性验证)技术,通过对地址分配协议的侦听获取用户的IP地址,保证随后的应用中能够使用正确地址上网,且不可伪造他人IP地址,保证了源地址的可靠性。
H3C针对IPv6网络中的源地址伪造等安全问题,提出了一系列解决方案。通过DHCPv6 Snooping特性、IPv6 Source Guard特性及ND Snooping特性建立起IPv6地址、MAC地址和端口的绑定关系表,并且以绑定关系为依据对DHCPv6协议报文、ND协议报文和IPv6数据报文的源地址进行合法性的过滤检查。
1. DHCPv6 Snooping功能
DHCPv6 Snooping特性可以保证客户端从合法的服务器获取IPv6地址,并记录DHCPv6客户端IPv6地址与MAC地址的对应关系。
DHCPv6通过如下方式防止伪造服务器攻击:DHCPv6 Snooping安全机制允许将端口设置为信任端口(Trusted Port)和不信任端口(Untrusted Port)。信任端口正常转发接收到的DHCPv6报文;不信任端口接收到DHCPv6服务器发送的应答报文后,将丢弃该报文。将连接DHCPv6服务器、DHCPv6中继或其他DHCPv6 Snooping设备的端口需要设置为信任端口,其他端口设置为不信任端口,从而保证DHCPv6客户端只能从合法的DHCPv6服务器获取地址,私自架设的伪DHCPv6服务器无法为DHCPv6客户端分配地址。
DHCPv6 Snooping通过监听DHCPv6报文,记录DHCPv6 Snooping表项,其中包括客户端的MAC地址、获取到的IPv6地址、与DHCPv6客户端连接的端口及该端口所属的VLAN等信息。然后再通过在设备接入用户侧的端口上启用IPv6 Source Guard功能,根据生成的表项,对端口收到的报文进行过滤,防止非法报文通过端口,提高了端口的安全性。
针对DAD攻击,在有状态分配地址时,使用DHCP snooping生成可信表项,攻击者无法通过DHCP过程获取与受害者相同的地址,异常的NA报文是无法通过接入层交换机的检查,从而有效的防止了DAD攻击。在无状态自动分配地址时,用户可以使用随机的InterfaceID,这样正常用户的地址分配过程中,设备上可以先建立起可信表项,并使用这个表项对攻击者的NA报文进行过滤,从而有效的防止DAD攻击,如图5示意。
图5 防止DAD攻击
2. IPv6 Source Guard功能
IPv6 Source Guard功能是针对用户报文的合法性进行检查,检查报文中源IPv6地址和源MAC地址,检查用户是否是报文收到端口所属VLAN上的合法用户,包括基于IP Source Guard静态绑定表项的检查、基于ND Snooping表项的检查和基于DHCPv6 Snooping安全表项的检查。在这三种表项都存在的情况下,检查过程如下:
l 首先进行基于IP Source Guard静态绑定表项检查。如果找到了对应源IPv6地址和源MAC地址的静态绑定表项,认为该ND报文合法,进行转发。如果找到了对应源IPv6地址的静态绑定表项但源MAC地址不符,认为该ND报文非法,进行丢弃。如果没有找到对应源IPv6地址的静态绑定表项,继续进行DHCPv6 Snooping安全表项、ND Snooping安全表项检查。
l 在基于IP Source Guard静态绑定表项检查之后进行基于DHCPv6 Snooping安全表项、ND Snooping安全表项检查,只要符合两者中任何一个,就认为该ND报文合法,进行转发。
l 如果所有检查都没有找到匹配的表项,则认为是非法报文,直接丢弃。
IPv6 Source Guard功能的示例如图6所示:
图6 防止源地址欺骗
3. ND Snooping
ND Snooping特性通过侦听IPv6的自动地址配置过程中的DAD(Duplicate Address Detection,重复地址检测) NS消息来建立ND Snooping表项,表项内容包括报文的源IPv6地址、源MAC地址、所属VLAN、入端口等信息。使能ND Snooping功能后,将对端口接收的ND报文进行分析,获取报文的源IPv6地址、源MAC地址、源VLAN和入端口信息,并根据这些信息来新建或更新ND Snooping表项。更新表项主要根据DAD NS报文,同时兼顾其它种类的ND报文,并附加更为主动的确认机制:首先,设备将探测现有该表项的正确性、探测新收到报文的真实性。最后通过老化表项机制,保证过期的ND Snooping表项能够及时删除。
与DHCPv6 Snooping一样,ND Snooping表项也可与IPv6 Source Guard功能配合使用,通过在设备接入用户侧的端口上启用IPv6 Source Guard功能,针对ND Snooping生成的表项,在对应端口对收到的报文进行过滤控制,防止地址欺骗,从而提高端口安全性。
4. ND Detection和其他预防机制
在DHCPv6 Snooping和ND Snooping基础上,ND Detection功能可以检查用户的ND协议报文的合法性。对于合法用户的ND报文进行正常转发,否则直接丢弃,从而防止仿冒用户、仿冒网关的攻击。ND Detection功能将接入设备上的端口分为两种:ND信任端口、ND非信任端口。对于ND信任端口,不进行用户合法性检查;对于ND非信任端口,如果收到RA和RR消息,则认为是非法报文直接丢弃,如果收到其它类型的ND报文,则需要进行用户合法性检查,以防止仿冒用户的攻击(如图7所示)。
图7 RA Trust
DoS攻击通过构造IP或MAC不断变化的NS/RS报文进行对三层设备进行攻击,耗尽网关的ND表项资源。针对DoS攻击可以在网关上基于路由口或者物理端口配置ND学习的数量,将攻击限定在一个较小的范围,未来还可以通过限制固定时间内的学习数量等技术,扩展对DoS攻击的防御能力。