徐国栋 孟晓景
山东科技大学 山东 266510
因特网协议版本6(Internet Protocol Version 6, Ipv6)是网络层协议的第二代标准协议,也被称为下一代因特网(Ip Next Generation,IPng),它是工程任务组(Internet Engineering Task Force,IETF)设计的一套规范,是Ipv4的升级版本。
同Ipv4相比Ipv6中引用了IPsec机制,增强了网络的安全性,但是由于在Ipv6环境下传输数据包机制与Ipv4基本相同,而且网络基础设施和技术能力不够等原因,Ipv6网络环境下也存在着安全隐患。
(1)Ipv6本身特有的缺陷,无状态自动寻址,虽然给合法网络用户使用带来了方便,但非授权的用户可以更容易地接入和使用网络。无状态地址自动配置中的冲突地址检测机制也给拒绝服务攻击带来可能:恶意攻击者只要回复对临时地址进行的邻居请求,请求者就会认为地址冲突而放弃使用该临时地址;Ipv6中引入了ICMPv6和PMTU,实现的是IPv4中的ICMP和ARP的功能。在这里ICMPv6就很容易被入侵者利用,不断产生错误的数据包或者冒充原节点发送数据包,造成网络通讯错误等等问题。
(2)随着 IPv6网络的逐步演进以及组播应用的飞速增长,组播网络安全与单播网络安全有着相似的要求:用户认证,数据一致性检查,数据加密,用户授权等方面。但是,考虑到组播技术的特点,如多点到多点传输,无需加入群组就可以向群组中发送数据等,使攻击者更容易发现网络中的关键系统。
(3)由于Ipv6应用不够完全,在很长一段时间内是Ipv6与Ipv4网络并存的局面,因此必须使用隧道技术。非法用户可以使用IPv6访问来占用IPv4和IPv6的网络资源,攻击者还可以通过安装双栈的IPv6的主机,建立由IPv6到IPv4的隧道,绕过防火墙对IPv4进行攻击。
相对Ipv4而言,Ipv6引入了Ipsec机制,图1所示,是IPSec协议的安全体系结构。Ipv6主要是通过身份验证报头(AH)和加密安全有效数据(ESP)来实现的。
图1 Ipv6体系结构
(1)认证报头:IPv6利用AH使数据包的接收者可以验证数据是否真的是从它的源地址发出的,并提供密码验证或完整性测试。缺省时它使用了一个加密的 MDS算法,但是由于检验的机制与所使用的具体算法无关,任何实现都可以根据需要选用任何算法,如sun公司将发布的v6.0IPv6Proto帅e就采用MDS验证报头。AH的作用如下:为IP数据包提供强大的完整性服务,这意味着AH可用于对IP数据包所承载的数据进行验证。
(2)ESP的作用:IPsec封装安全负载(IPsec ESP)是IPsec体系结构中的一种主要协议,其主要设计在IPv4和IPv6中提供安全服务的混合应用。IPsec ESP通过加密需要保护的数据以及在IPsec ESP的数据部分放置这些加密的数据来提供机密性和完整性。根据用户安全要求,这个机制既可以用于加密一个传输层的段(如:TCP、UDP、ICMP、IGMP),也可以用于加密整个的 IP数据报。封装受保护数据是非常必要的,这样就可以为整个原始数据报提供机密性。
Ipsec是一个协议集合,它的内部结构和实现过程比较复杂,因此,我们采用模块化思想将它进行设计。
Ipsec有三种实施方法:将Ipsec作为Ipv6协议栈的一部分来实现,与操作系统OS集成实施;将Ipsec作为协议栈中的BITS来实现,将特殊的Ipsec代码插入到网络协议中,在网络层和数据链路层之间实施,称为堆栈中的块 BITS;将Ipsec作为线路的BITW来实现,使用安全性处理功能。
(1)基于Linux平台的Ipsec协议实施
在 Linux最新内核 2.6平台上,基于 Netfilter框架的HOOK机制,实现IPv6环境下的IPSec协议。其中所使用的关键技术有安全策略(决定两个实体之间能否通信,以及如何进行通信。策略的核心由三部分组成:SA、SAD、SPD)、动态密钥交换IKE、Linux内核改造(将IPSec无缝接入)。实现该技术的原理和方案如图2。
图2 基于Linux平台的Ipsec协议实施设计原理
当数据报经过Netfilter机制的过程。数据报从左边进入系统,进行 IP校验以后,数据报经过第一个钩子 NF_IP6_PRE_ROUTING注册函数进行处理;然后就进入路由代码,其决定该数据包是需要转发还是发给本机的;若该数据包是发送给本机的,则该数据经过钩子NF_IP6_ LOCAL_IN注册函数进行处理,然后传递给上层协议;若该数据包应该被转发,则它被 NF_IP6_FORWARD注册函数处理,经过转发的数据报经过最后一个钩子NF_IP6_POST_ ROUTING注册函数处理以后,再传输到网络上;本机产生的外出数据包经过钩子NF_IP6_LOCAL_OUT注册函数处理以后,进行路由选择处理,然后经过最后一个钩子 NF_IP6_POST_ROUTING注册函数处理以后,再发送到网络上,进而实现Ipsec功能。
基于Netfilter框架机制,在Linux内核实现IPv6的IPSec方法,有效地提高了IPSec协议处理的效率,提高了IP包在IPSec网关上的传送速度,使 IPSec网关成为瓶颈的可能降低,也使得IPSec自身的安全性得到提高。这种简单、高效、易于扩展的方式实现了IPSec协议,提供了对网络通信的安全保障,有着广阔的应用前景,例如安全路由器、安全网关、VPN等。
(2)基于SafeXcel芯片的Ipsec安全模块的设计
软件实现Ipv6是有一定的缺陷的,现在也有部分硬件产品也实现了部分 Ipsec的功能,基于 SafeXcel芯片的 Ipsec安全模块,是以开弦系列密码芯片作为算法模块,由 FPGA控制实现对IPV6数据包的IPSec处理,同时配以必要的SPD和SAD。
图3 基于SafeXcel芯片的ipsec安全模块的设计原理
安全模块对数据包的处理主要分输出处理流程和输入处理两部分(如图3所示)。
输出处理时,来自线路接口的标准 IPV6包送入输出包处理控制单元。在输出处理控制单元中,首先根据数据包的源IP地址,目的IP地址以及传输协议等选项查SPD1,如果没有查到对应的SP条目,如果查到了对应的SP条目但对应的SA还没有建立,这时丢弃当前包,并通知处理器,处理器将源IP地址,目的IP地址及SPI等内容送主控子系统,主控子系统启动IKE协议发起SA协商;如果查到了对应的SA,首先检查SA是否过期。若过期,则丢弃当前包并删除当前SA,通知主控子系统发起一个新的SA协商;若没有过期,则继续检查是否需要进行序列号溢出检查。若不需要进行序列号溢出检查,则首先对SA的生命周期字段值进行更新,然后根据查到的SA对数据包进行IPSec处理;若需要进行序列号溢出检查,则检查序列号字段值。若序列号溢出,则丢弃当前包并删除当前 SA,通知主控子系统发起一个新的SA协商;若没有溢出,则首先对SA的生命周期字段值和序列号字段进行更新,然后根据查到的SA对数据包进行IPSec处理。IPSec处理包括:将加密指令和密钥连同IPV6数据包一起送入密码芯片1进行加密运算,然后再将加密后的数据封装为隧道模式ESP数据包,最后将生成的ESP数据包和主控送来的SA协商包合路后送出。
输入处理时,交换网络送来的数据包送入输入处理单元。首先判断送来的数据包的类型,如果是SA协商包,则送主控子系统处理;如果是 IPV6数据包,则不做处理送线卡;如果是IPSec数据包,则根据IPSec数据包的源IP地址,目的IP地址以及传输协议等选项查的SPD2。如果没有查到对应的SP条目,则不做处理送线卡;如果查到了对应的SP条目,则从SAD2中取出对应的SA,检查SA的SPI值与包头中的SPI值是否相同。若不同,则丢弃该包;若相同则利用查到的SA策略对数据包进行抗重放验证和SA生存期验证。如果验证不通过,则丢弃该包,SA到期还需要将对应的SA删除并进行新的SA的协商。若验证通过,则首先对SA进行更新,然后根据查到的SA对该包进行IPSec处理。处理时,首先剥离外部IP头,然后将加密部分送密码芯片2进行解密,最后,将还原的 IPV6数据包和未经处理的数据包合路后送线卡。
该安全模块的最大优点就是用硬件实现了IPSec协议,并配以高速专用密码芯片,使得对数据的安全保护能够达到很高的速度。
Ipsec最大的缺陷是其复杂性,Ipsec包含了太多的选项和太多的灵活性,其协议本身也需要进一步的完善,而且需要指出的是,虽然 Ipsec可以阻止多种攻击,但无法抵御Sniffer、DoS攻击、泛洪攻击和应用层攻击。Ipsec协议作为一个网络层协议,只能负责其下层的网络安全,不能对上层如Web、E-mail及ftp等应用提供安全保障,因此IPSec的实施并不能替代传统的安全设备,防火墙和入侵检测系统等仍有存在的必要,下面以Ipv6环境下分布式防火墙设计为例,旨在说明Ipv6环境下的整体安全安全防范。
如果要建立一个基于分布式防火墙的网络安全系统,如此单一的分布式防火墙系统在网络防御上能力有限,必须结合其他的网络安全技术,同时分布式安全系统自身也应获得更高的自测安全度,这就需要入侵检测系统的帮助。
入侵检测系统(Intrusion-detection system, IDS)是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。入侵检测系统是一种积极主动的安全防护技术,这是它与其他网络安全设备的不同之处便在于:结合了入侵检测系统的分布式入侵检测DIDS利用多个检测主体,采用多种检测方法,依靠分布于网络中的多个入侵数据来源,通过协同工作来实现检测。当前的网络入侵行为通常表现出相互协作入侵的特点,采用分布式入侵检测,利用多个检测主体协作,可以更全面的、更准确的检测入侵。
改进后的DIDS系统如图4所示。
图4 改进后的DIDS系统
由此我们可以建立一个Ipv6环境下的安全系统,系统结构如图 5所示,主要由四个部件组成:分布式防火墙部件(DFW部件)、分布式入侵检测部件(DIDS部件)、信息综合部件、管理决策部件。其中DFW部件采用分布式防火墙的结构。DIDS部件的主机入侵检测模块与DFW部件的主机防火墙模块(D-HFW)在一个受保护主机中共同构成主机防御子系统;DIDS部件的网络入侵检测模块和DFW部件的网络防火墙模块(D-NFW)在一个受保护网络的边界,共同构成了边界防御子系统。信息综合部件与管理决策部件共存于系统服务器中。系统服务器集中管理各个分布在网络中的防御子系统。
图5 安全系统结构
整个系统由各防御子系统构成整个安全系统。
入侵检测系统是对侵入主机的行为进行检测,安全巡逻服务器可针对不同安全级别的主机,查看主机的安全情况并向服务器做出汇报。安全服务器根据返回的汇报信息类型与策略服务器及时通信,并做出判断或决定,以最快的速度修补防火墙中的漏洞;管理决策部件针对DIDS部件和信息综合部件发送来的入侵告警信息,进行安全防御的响应决策。针对网络安全状况,实时、智能地调整系统其他各个部件的安全策略,是对这个部件的一个基本要求。对此,管理决策部件应用专家系统作为实施方案。
IPv6作为现行网络的替代者,已经在逐步被社会大众及企业接受,在不远的将来将最终取代IPv4成为主干网络。然而随之而来的是现行网络的安全问题。在此背景下,本文对IPv6相关的安全技术进行研究和总结,是具有现实意义的。
[1]刘喆,王蔚然.分布式防火墙的网络安全系统研究[J].电子科技大学学报.2005.
[2]潘大庆.基于 SafeXcel芯片的 IPV6安全模块的设计[J].通信技术.2009.
[3]黄智祥,叶震,孙志勇.防火墙技术及其体系结构研究[J].计算机与信息技术.1999.
[4]肖昌吉.分布式防火墙原理及其技术研究[J].中国民航飞行学院学报.2005.
[5]张武军.基于 IPv6的下一代网络安全研究[D].西安:西安电子科技大学.2006.
[6]赵春燕,姚青.基于 Kernel2.6的 IPv6安全协议的研究与实现[J].现代计算机(专业版).2009.
[7]王以伍,任宇,陈俊.IPv6安全技术分析[J].电脑知识与技术.2008.
[8]李振强,赵晓宇,马严.IPv6安全脆弱性研究[J].计算机应用研究.2006.