一、引言
由于IPv6技术具有诸多优点,人们希望在不久的将来使用它来进行网络的主要部分的设计。然而,由于IPv4网络如此庞大,以至于人们不得不需要一段时间逐步从IPv4向IPv6过渡。
为此,人们正在通过各种各样的方法寻找从IPv4向IPv6过渡合理方案,而且到目前为止已经出现了许多的解决方案。这些解决方案大致可以分成三类:一是双栈机制,二是翻译机制,三是隧道机制。有些技术只使用了其中一种机制,有些则同时使用了其中两种机制。
网络安全问题一直是网络运营者和网络使用者关注的焦点,在从IPv4向IPv6过渡过程中也是如此。本文试图在安全方面对目前出现的过渡技术加以分析,并据此为运营商和企业在IPv4向IPv6过渡技术发展策略方面提出建议。
二、双栈机制安全分析
1 双栈技术安全
双栈技术是大家熟知的做法,就是在同一台设备上同时激活IPv4和IPv6两种协议。双栈技术一般都是与其他技术结合使用。
在IPv4网络安全方面,我们已经有很多的办法加以保护,这一点自不必说。需要注意的是,在IPv6网络安全方面也要达到现有IPv4过滤水平。因为系统管理员往往喜欢分给它一个以该地址所属的类前缀为开头的地址(通常比::ff低),这就使得需要扫描的IPv6地址范围小许多,所以一个外部用户发现一个重要服务器的IPv6地址并不困难。在这种情况下,如果某些基本过滤功能没有加载,恶意用户就有可能很轻易地把IPv6作为一个入口点,从入口机器上使用IPv4或IPv6去访问私有网络,并进一步危及网络内的设备。另外,偶尔也有黑客在侵入IPv4设备后,激活IPv6-in-IPv4隧道,这样就可以成功地绕过过滤和入侵检测系统(IDS)了。
2 DSTM技术安全
DSTM技术目前还处于IETF草案阶段,它的基本思想是:在纯IPv6域内,当支持双协议栈的DSTM节点需要IPv4地址时,可以通过与DSTM服务器进行基于IPv6的通信得到一个临时IPv4地址,然后使用这个IPv4地址通过IPv4-over-IPv6隧道与网关TEP通信,TEP再利用IPv4直接与IPv4网络通信。
DSTM技术可以使用所有已经定义的安全规范。第一,有关DNS安全的扩展和升级都可以使用;第二,如果Intr.net DSTM中布署了DHCPv6,则可以使用DHCPv6认证消息,同时可以把TEP都置于Intranet中而不把它们作为中继开放,以避免受到直接的攻击;第三,对于DSTM节点的IPv4通信,一旦节点具有IPv4地址,IPsec就能被使用,因此DSTM不会破坏在任何点的端到端的通信安全。
尽管如此,由于DSTM技术要求DSTM节点需要通过向DSTM服务器请求临时地址来动态配置IPv4栈,这直接为DSTM在地址分配方面带来一个重大缺陷――容易受到DoS攻击,虽然DSTM网络要求是一个Intranet环境,DoS攻击对地址池的威胁有限,但这个问题仍然不容忽视。
下面我们看一个实际例子。如果TEP与DSTM服务器在物理上不是安装在同一台主机上,则当TEP收到携带IPv4包的IPv6数据包时,它就自动使用包内携带的信息(IPv6和IPv4源和目的地址)通过动态隧道接口(DTI)创建一个IPv4-in-IPv6隧道。有一点必须注意,这种情况下没有方法检查TEP所建立的隧道与DSTM服务器的分配的对应关系,所以一个主机(A)被分给一个IPv4地址后,在用这个地址通过使用DTI创建的IPv4-over-IPv6隧道与一个IPv4网络通信时,如果另一个主机(B)使用与A相同的IPv4源地址发了一个IPv4 in IPv6的包,TEP和A之间的隧道就会被破坏掉了,并且被TEP和B之间的隧道所代替。这就是所谓的DTI问题,这种情况在欺骗攻击时比较常见。解决此问题的一个办法就是加入认证机制,但是目前的应用都是基于远程程序调用(RPC)的,而基于RPC的应用却不支持认证,所以目前还不能克服这个缺陷,只能寄希望于以后使用TSP(隧道配置协议,它可以使对消息发送者的鉴别成为可能)和DHCPv6来解决了。
3 BIS技术安全
BIS技术在IPv4协议栈中插入三个特殊的扩展模块:域名解析模块、地址映射模块和报头翻译模块。当IPv4应用程序与纯IPv6节点通信时,将节点的IPv6地址映射成一个备用IPv4地址池中的IPv4地址。
采用BIS技术的双栈主机上的IPv4应用和其他IPv4主机通信时,可以实施所有层面上的安全策略。同时,运行IPv6应用的主机通过完整的IPv6协议栈和其他IPv6的主机通信时,象其他普通的IPv6间通信一样,也可以在所有层面上实施安全策略。然而,当主机上的IPv4应用利用BIS机制和其他的IPv6主机通信时,不能实施网络层以上的安全策略。因为,当加密携带有IP地址的协议数据时,或者以IP地址做为主键对协议数据进行加密后,这种机制不能在IPv4和IPv6的数据之间进行转换。因此如果需要采用安全机制与其他IPv6主机进行通信,首先需要把现有的应用升级为IPv6的应用。
4 SOCKS64技术安全
SOCKS64技术通过在IPv4主机端增加了一个功能部件*Socks Lib*、在网关处增加了一个功能部件*Gateway*,提供了IPv4主机通过双栈网关与IPv6主机通信的解决方案。
由于SOCKS64是直接建立在SOCKSv5协议基础上的,其安全方面的特点与SOCKSv5相一致。它不提供从原始源节点到最终目的节点的整体端到端的安全保证,但是由于它建立了应用层两个“分开的”连接的中继,所以端到端的安全就由这两个被中继的链接来提供保证。
三、翻译机制安全分析
1 SIIT技术安全
SIIT技术实际上是一种无状态的IP协议和ICMP协议转换算法。它定义了IPv6和IPv4的分组报头进行转换的方法,对每个分组都进行翻译。SIIT可以和其它机制(如NAT-PT)结合实现纯IPv6节点和纯IPv4节点间的通信。
SIIT技术不会引入新的安全问题。但是由于认证头部(AH)涉及到IPv4标识域,而翻译函数不能够总是保留这个标识域,IPv6端点对于收到的经过IPv4-to-IPv6翻译的数据包不能计算AH值,所以AH不能通过翻译器。
2 NAT-PT技术安全
NAT-PT技术利用网络地址转换(NAT)技术,达到使纯IPv4和纯IPv6节点之间能够透明通信的目的。它将IPv4地址和IPv6地址分别看作NAT技术中的内部地址和全局地址,在IPv4分组和IPv6分组之间进行基于会话的报头和语义翻译。对于一些内嵌地址信息的高层协议(如FTP),NAT-PT需要和应用层网关(ALG)协作来完成翻译。
NAT路由器可以与防火墙一起来做流量过滤。许多人把传统的NAT路由器看作是单向的流量过滤器,可以严格限制外部主机对内部网络的访问。而且,当NAT路由器内进行动态地址分配时,也增加了攻击者侵入NAT域内特定主机的难度。
由于NAT设备并不检查或修改传输载荷,所以在许多情况下都是对应用透明的,与IP地址无关的应用层安全技术在有NAT时可以正常工作(如TLS、SSL和ssh)。可是,在应用载荷包含IP地址或需要端到端的安全等情况下,NAT设备就不能正常工作了,所以对于传输层安全技术(如IPSec传输模式或TCP MD5签名选项)就无能为力了。
在NAT-PT和ALG协作时,可以解决涉及IP地址的应用问题,但此时安全DNS就无法使用了,而且如果NAT设备和ALG不是在同一个信任范围内,而ALG又不能检查终端用户的流量载荷,这时就会对网络安全造成严重威胁。而对于NAT路由器来说,只有在作为隧道端点时才可以使用隧道模式IPsec。由于UDP应用本来就是不安全的,加上基于UDP的多播进程也是一个安全弱点,所以需要对NAT路由器加载额外的保护措施。
3 TRT技术安全
TRT技术同NAT-PT类似,在纯IPv6主机和纯IPv4主机之间加入一个传输中继转换器,只不过它是在传输层实现IPv4的TCP或UDP与IPv6的TCP或UDP数据的对译。
同NAT-PT类似,IPsec数据包也不能通过TRT中继,TRT中继也无法使用安全DNS。
由于传输中继转换器的存在,恶意的攻击者可能会像利用SMTP一样利用TRT,公开将数据中继到一个特定的IPv4目的地。因此,TRT应当实现一些访问控制机制来预防这类事情。
4 BIA技术安全
BIA技术在双栈主机的Socket API模块与TCP/IP模块之间加入一个API翻译器,API翻译器包含域名解析器、地址映射器和函数映射器三个模块,双栈主机通过这三个模块完成与IPv6主机之间相互通信。
BIA的安全性与NAT-PT的安全性类似。差别在于BIA的地址翻译发生在API层而不是在网络层。由于这种翻译机制发生在socket API层,所以采用这种机制运行IPv4应用的主机和其他IPv6主机通信时,可以利用网络层的安全策略(例如IPsec)。因为不存在NAT-PT中的DNS-ALG,所以也不会和安全DNS产生冲突。
四、隧道机制安全分析
隧道是使用IPv6和向IPv6过渡的最有效的方法。通过在IPv4内打IPv6隧道,可以通过一个纯IPv4网络发送一个包到双栈路由器或主机,由它们去掉IPv4头并向通常一样转发或接收IPv6包。
一般情况下,都需要使用防火墙或边界路由器过滤掉一些流量。如果防火墙或边界路由器不支持IPv6,就需要通过从站点内部的一个路由器到站点外部的某个路由器建立一个隧道来获得IPv6连接了,这样这个内部路由器对于IPv6来说就变成了一个边界路由器,所以对这个路由器也需要加载过滤策略。需要注意的是,当站点内的IPv6使用一个与IPv4不同的边界路由器时,如果使用直接IPv6封装,需要保证两个IPv6隧道端点之间的路径上IP协议类型为41的包不要被滤掉;如果使用GRE封装,需要保证隧道端点之间IP协议类型为47的包不要被滤掉。
1 隧道代理技术安全
隧道代理(TB)技术提供了一种简化的隧道配置方法,它要求隧道的双方都支持双栈。通过TB,用户可以很方便地和IPv6 ISP建立隧道连接,从而访问外部可用的IPv6资源;ISP通过专用的隧道服务器提供了一种非常简捷的接入方式,并自动管理用户发出的隧道请求。
在隧道代理体系中,所