IPv6的安全体系结构

发布时间:2003-11-26 作者:李信满 / 赵宏 Li Xinman / Zhao Hong 阅读量:

1 引言

  目前风靡全球的Internet是建立在TCP/IP协议基础之上的。TCP/IP协议是DARPA(美国国防部高级研究规划局)为了实现异种网之间的互联,于1977年-1979年间推出的一组体系结构和协议规范。其最大的特点是开放性,而这一特点也是基于TCP/IP协议的Internet能够飞速发展的主要原因之一。遵循开放性原则的因特网,其最终理念是要在全世界范围内建立起一个技术共享、信息共享、人人平等、人人互助的虚拟网上社会。但现实社会的实际情况是:不同国家之间、不同企业之间以及不同个人之间存在利益的差别甚至对立,意识形态的多元化,以及在政治、军事、经济上存在激烈的竞争,这些因素都不可避免地要在互联网上体现出来,从而成为互联网上安全问题的根源。随着因特网在全球的迅速发展,电子商务在因特网上也随之展开,对因特网的安全问题也就提出了更高的要求。由于TCP/IP协议发展的初衷是遵循开放性的原则,在网络安全方面并没有作过多的考虑,使得现行TCP/IP协议体系结构本身就存在许多安全隐患[1,2]:

  (1)IP地址假冒(IP Spoofing)[3,4]

   一个IP数据包是否来自其真正的源地址,IP协议本身并不提供任何保障。从理论上讲,任意一台主机可以发出含有任意源地址的IP数据包。这样一来,基于IP地址标识的数据包事实上是不可信的,这就使得一些基于IP地址实现的访问控制技术失效;同时这个缺点也使得对网络攻击者的追查与取证变得较为困难,使得攻击者更加肆无忌惮。目前网络上的很多攻击如Syn Flooding,DOS/DDOS,SMURF等攻击都利用了这个缺陷,发起攻击。

   (2)源路由攻击

   源路由是IP数据包的一个选项,它可使IP数据包沿指定的路径从源地址到达目的地址。这一选项原本是用来测试某一特定网络的吞吐率,也可使数据包绕开出错网络。但与此同时,它一方面方便了假冒源IP地址的数据包到达目的地址,另一方面也使得入侵者能够绕开某些网络的安全措施,从对方没有预料到的路径到达目的地址。

   (3)网络窃听

   目前网络上传输的信息大部分为明文信息,特别是一些系统的登录密码,如大多数Unix系统目前仍缺省采用明文密码方式。这些敏感信息利用窃听工具很容易获得,而网络上的窃听工具又非常丰富,如Sniffer,Tcpdump,Snoop等。

   为了解决这些问题,必须为网络系统增加安全服务,这些安全服务可概括为:数据完整性(Integrity)、数据私有性(Confidentiality)、认证(Authentication)、访问控制(Access Control)和不可否认性(Non-repudiation)。

   国际标准化组织(ISO)制订的ISO 7498-2[5]提出了一个典型的传统网络安全体系结构(NSA)。该安全体系结构描述了一系列的安全服务及实现这些安全服务的机制,如表1所示。

  表1 传统的网络安全体系结构

  安全服务

协议层

1

2

3

4

5

6

7

 对等实体认证

 

 

 

 

 访问控制

 

 

 连接机密性

 

 选择域机密性

 

 

 

 

 

 报文流安全性

 

 

 

 

 数据完整性

 

 

 

 数据源认证

 

 

 

 

 

 

 不可否认性

 

 

 

 

 

 

   由表1中可以看出,该体系结构将网络安全服务分布在从第1层到第7层的各个协议层中,实现起来既增大了系统资源开销,又会降低系统工作效率。实际上,大多数安全服务可以放在OSI(开放系统互连)模型的任何一层。由于计算机网络可划分为通信子网(1?3层)和资源子网(4?7层),目前的技术发展趋势是IP over Everything和Everything over IP,IP层是连接通信子网与资源子网的核心环节,因此将安全服务集中在IP层实现最合适。同时在IP层实现安全服务要比在应用层上更加透明和彻底,可为IP层以上的所有应用提供安全服务,同时管理也比较统一和简单。

   为了改善现有IPv4协议在安全等方面的不足,IETF的下一代网络协议(IPng)工作组于1994年9月提出了一个正式的草案“The Recommendation for the IP Next Generation Protocol”,1995年底确定了IPng协议规范,称为IP版本6(IPv6)。IPv6在IP层上实现了上述各种安全服务。

   2 IPv6的安全机制

   IETF在IPv6中提出了全新的网络安全体系结构,即IPSec标准。尽管IPSec是为IPv6设计的,但也可应用于IPv4中。

   IPSec描述了新体系结构提供的安全服务及这些服务的实现机制。IPSec提供的安全服务包括:数据私有性、基于无连接的数据完整性、数据包来源认证、访问控制、抗数据重发攻击(Protection of Replay)以及一定程度上的数据流量私有性(Traffic Flow Confidentiality)等。这些安全服务是通过ESP(Encapsulating Security Payload)和AH(Authentication Header)这两个安全协议来实现的。同时,除安全协议外,还有一系列与IPSec相关的技术标准,如加密算法及实现数据完整性的Hash算法的规范、密钥的交换标准IKE(Internet Key Exchange)、安全关联(SA)等。

  2.1 安全关联与安全关联数据库

   安全关联是IPSec的基础,ESP和AH协议都要通过它来实现安全服务。安全关联是用来描述和实现连接安全的,可用三元组来标识:<安全参数索引(SPI),安全协议,目的IP地址>,其中安全协议只能是ESP或AH中的一种。SA的工作方式分为两种:传输模式和隧道模式。传输模式用于两个主机间的连接,而隧道模式用于两个网关之间的连接。SA的安全功能体现在它所采用的安全协议:ESP或AH。由于每个SA只能提供ESP或AH中的一种服务,因此有时为了同时实现数据的私有性和完整性,对一个连接可能采用多个SA的组合来实现相应的安全。

   安全关联数据库(SAD)用来存放安全关联,每一安全关联都在安全关联数据库中有唯一的记录,而每个安全关联可通过SPI、目的IP地址和安全协议来定位。除了这3个域外,安全关联数据库中的记录主要还包括以下与安全处理相关的内容:包序列号、AH采用的算法及密钥、ESP采用的算法及密钥、安全关联的生命周期等,其中,包序列号用来防止数据包的重发攻击。

  2.2 安全策略数据库

   安全策略数据库(SPD)用来存放和管理用户的安全策略,对所有进出IP包的处理都需要查询安全策略数据库,以确定下一步的具体处理方法。安全策略库由安全策略的有序列表组成,类似于包过滤防火墙的过滤规则。每条策略由IP包的一些属性如源IP地址、目的IP地址、源端口号、目的端口号,以及一些命名字符串(如用户名、域名)和安全关联等组成,通常这些属性也用来在安全策略数据库中定位对相应IP包进行处理的安全策略。

  2.3 IPSec的工作原理

  IPSec既可以在网关上实现,也可以在主机上实现。无论是哪种情况,当IP数据包进入或离开支持IPSec的接口时,IPSec模块将根据安全策略库决定对该IP包进行何种处理(见图1)。对IP包的处理方式分为3种:抛弃、旁路、根据安全关联进行IPSec处理。因此利用安全策略数据库和这种处理方式,可以很容易地实现类似于IPv4中防火墙的访问控制安全。


图1 IPSec工作原理

   当某接口收到一IP包后,根据该IP包的属性及制订的一些安全设置,在安全关联数据库中寻找相应的安全关联,对该IP包进行解密等处理,然后在安全策略库中寻找相应的安全策略。如果不存在与该IP包相对应的安全策略,则将该IP包抛弃并作日志。在找到相应的安全策略后,如果策略规定要抛弃该包,则将该IP包抛弃并作好日志;如果策略规定要旁路该IP包,则不对该IP包作更多处理,让它通过;如果策略说明要对该IP包进行IPSec处理,则该策略里应包含对该IP包进行处理的一个或多个安全关联指针,通过安全关联指针可以在安全关联数据库中找到相应的安全关联,如果该安全关联与刚才找到的安全关联不一致的话,也要将该IP包抛弃。

   在IPv6中,对进入的IP包与出去的IP包的处理是有所区别的,比如对安全关联的定位、寻找的方法是不相同的。当接口收到某IP包后,从该IP包中可以提取出安全关联索引、目的IP地址和安全协议,根据该3项内容即可在本地的安全关联数据库中唯一地确定出一个安全关联,从而作进一步的处理;在发送时,如根据安全策略需对该IP包进行IPSec处理,IPSec模块将根据该IP包的属性,在安全策略库中找到相应的对该IP包进行处理的一个安全关联(也可能是多个),并将该安全关联的索引号填入待发送的IP包中,以提供给接收方用来确定相应的安全关联。

  2.4 IP认证协议??AH

  AH主要提供IP包的数据完整性服务,防止数据在传输过程中被第3方篡改,同时AH也提供对IP包来源的认证,以防止数据重发攻击。AH不仅对IP包的包头进行认证,而且还要对IP包的内容进行认证,但由于IP包中的部分域如包存活周期(IPv6中称为“跳数”,即IPv4中的TTL)、校验等是要变化的,因此AH只对在传输过程中不变的内容或可以预测变化的内容进行认证。

   IPv6对IPv4的包格式进行了简化,并取消了原IP包头中的选择项域,代之以单独的扩展头,在IPv6中目前已定义了6种扩展头,而AH和ESP是其中的两种。这些扩展头紧随在IPv6的头部后面,并在上层协议数据(TCP数据)之前,当有多个扩展头同时存在时,以一定的顺序排列,构成一个扩展头列表,每一个扩展头的类型由头标记(Next Header)来标识,如图2所示。


图2 IPv6包中的扩展头

  AH作为IPv6中的一个扩展头,其格式如图3所示:头标记用来标记下一个扩展头的类型;长度域表示认证数据的长度;保留域在计算认证数据时,必须设为0;安全参数索引用来标识安全关联;序列号域用来防止IP包的重发攻击,收发双方同时保留一个序列号计数器,每收发一个IP包,序列号将递增1,在递增到232后复位,接收方可以根据接收到的IP包序列号来判断该IP包是否为重发包,若是则将其抛弃;认证数据域的长度可变,并由长度域来指明,认证数据是通过将传输过程中变化的域和认证数据域置0后,对其余所有数据进行完整性计算后得到的,目前计算认证数据的算法有MD5算法和SHA-1算法等。


图3 AH头格式

  2.5 IP加密安全协议

  ESP作为IPv6中的一种扩展头,提供IP包的数据加密功能,此外也提供数据来源认证、基于无连接的数据包完整性、防止重发攻击以及数据流量的私有性等功能。其中,ESP提供的数据包完整性与AH提供的数据包完整性有所区别,AH提供对整个IP包,包括包头和包内容的完整性认证,而ESP提供的完整性则只关心IP包的内容部分。为了防止网络上的黑客利用侦听器来记录和分析发生在特定IP地址之间的流量情况,从中找出一些与安全有关的蛛丝马迹并进行攻击,ESP可以提供数据流量私有性功能,但只是在隧道模式下才能实现。因为在隧道模式下,黑客只能侦听到发生在隧道两端的IPv6网关之间的流量,而内部的整个IP包都已被加密,黑客无法知道该IP包是属于那个连接的。图4为采用ESP加密前后的IPv6包结构。在IPv6中,有的扩展头位于ESP前面,而有的扩展头则位于ESP后面,图4只考虑了位于ESP前面时的情况。


图4 ESP加密前后的IPv6包结构

   图5是ESP包的格式。其中,安全参数索引用来标识安全关联,说明ESP采用的安全参数,如密钥、加密算法等,接收方在收到ESP包后,将根据安全参数索引、目的地址及安全协议来定位处理该IP包的安全关联,取得安全参数,然后将ESP包解密;序列号用来防止包的重发攻击。在ESP中,目前要求至少支持DES-CBC加密算法。


图5 ESP包格式

  2.6 密钥交换协议(IKE)

   在IPSec中进行密钥交换有两种方法:一种是使用IKE协议进行自动地密钥交换,一种是手工模式。手工模式只适用于小规模的或者用硬件实现的IPSec,大多数情况下都需要使用IKE协议通过公用网络进行密钥交换。

  IKE的功能包括加密算法和密钥协商、密钥生成、交换及管理。IKE是ISAKMP[6],Okaley[7]和SKEME 3个协议揉和而成的一个协议。ISAKMP协议只规定了一个认证和密钥交换的框架,与具体的密钥交换方法相独立。Okaley和SKEME协议则描述了具体的密钥交换方法,其中Okaley协议给出了一系列的密钥交换过程,而SKEME协议则提供了一种通用的密钥交换技术。

  3 结束语

  IPv6利用新的网络安全体系结构IPSec,通过AH和ESP两个安全协议分别为IP协议提供了基于无连接的数据完整性和数据私有性,加强了IP协议的安全性,克服了原有IPv4协议在安全方面的不足。

  本文研究课题是国家“863”课题“IPv6示范系统”的一部分,由清华大学、东北大学等几所大学共同承担,已于2000年底完成。通过该项目的建设,已在CERNET的几个地区中心建立了纯IPv6的试验网络,并通过IPv4隧道实现了互连互通。东北大学在该项目中负责IPv6的安全部分,我们根据IPSec标准,设计与实现了文中描述的AH,ESP协议与简化的密钥交换协议,并在CERNET IPv6示范网上进行了测试。

  目前,国际上一些主要网络和通信公司、研究机构也展开了对IPv6的研究,如法国INRIA、日本KAME、美国NRL等研究机构,IBM,Sun,微软,Trumpet等公司分别研制开发出了基于不同平台上的IPv6系统软件与应用软件,思科、北电、诺基亚等硬件厂商目前也已经开发出了IPv6路由器产品。

  从Internet发展角度看,IPv6技术的关键在于实用化,在于研究与开发体现IPv6优越性的特色应用。基于IPv6的安全特色实现的网络安全应用包括防火墙和VPN(虚拟专用网络)等。由于IPSec是基于安全策略库来实现安全需求的,因此可以容易地基于安全策略将这些不同的安全应用集成在一起,实现具有整体安全性的网络安全系统。

  参考文献

1 Soh B C, Young S. Network system and World Wide Web security. Computer Communication, 1997,20(2):1431?1436
2 Jason P, Rudin H. Computer Network Security. Computer Network, 1999,31(1):785?786
3 Tanembuam A S. Computer networks. 3rd ed. New York: Prentice-Hall, 1996
4 Harris B, Hunt R.TCP/IP security threats and attack methods. Computer Communications, 1999,(20):885-897
5 ISO DIS 7498-2.ISO Information Processing Systems: Open System Interconnection Reference Model, Part 2: Security Architecture, Geneva, 1988
6 Maughan D, Schertler M, Schneider M, et al. Internet Security Association and Key Management Protocol (ISAKMP). RFC 2408, 1998
7 Orman H. The OKALEY Key Determination Protocol. RFC 2412, 1998

[摘要] 文章对IPv4协议安全方面的一些缺点进行了分析,讨论了OSI的网络安全体系结构,给出IPv6新的网络安全机制,详细描述了IPSec所提供的网络安全服务与实现原理,并对IPSec的两个安全协议??AH和ESP作了较深入的阐述。

[关键词] 安全体系结构;IP版本6;IP安全标准;AH协议;ESP协议

[Abstract] Based on the analysis of security deficiency in IPv4 protocol, and the discussion on the traditional network security architecture, the paper introduces a new kind of security architecture adopted by the IPv6 network, and then details the network security services provided by IPSec,and their implementation mechanism. Emphasis is put on two security protocols: AH (Authentication Header) and ESP (Encapsulating Security Payload).

[Keywords] Security architecture; IPv6; IPSec standard; Authentication header protocol; Encapsulating security payload protocol