文章编号:1009-6868(2001)05-0026-05 文献标识码:A 中图分类号:TN918.91
*国家自然科学基金资助项目(批准号:19931010)
1 IPSec的作用
1997年,CERT(Computer Emergency Response Team)在其年度报告中列举了150 000个站点的2 500多个安全事故,其中最为严重的有两类:第1类是IP欺骗,即入侵者以虚假IP地址建立数据包,以欺骗基于IP认证的应用程序;第2类是各种类型的窃听和数据包嗅探,以获取合法用户的登录信息和其他数据。因此安全的IP协议应有必要的认证和加密功能。
IPSec通过在IP层对所有业务流加密和认证,保证了所有分布应用程序(包括远程登录、客户机/服务器、电子邮件系统、文件传输、Web访问等)的安全性,因此可提供网络内(包括局域网、广域网等)或网际间的安全通信。例如:
(1)公司可在因特网或公用广域网上建立自己的安全虚拟专用网,从而可节省建立和管理自己专用网的支出。
(2)配备有IPSec系统的终端用户,可在本地呼叫因特网服务提供商(ISP)以获取对某一公司网络的安全访问。
(3)IPSec不仅能用于建立内部网中的连接,而且也能用于建立与外部网的安全连接。
(4)某些Web应用程序和电子商务应用程序即使已有自己的安全协议,但使用IPSec可增加它们的安全性。
图1是IPSec应用示例,图中有一个用户系统和两个LAN。LAN内的通信未考虑安全性,然而从用户系统和LAN发出通信业务流时,都需在网际设备中使用IPSec协议。网际设备指路由器或防火墙等设备,用于将LAN连接到外部网中。网际设备对发往WAN的业务流进行加密和压缩,对来自WAN的业务流进行解密和解压缩。以上运算对LAN上的工作站和服务器来说都是透明的。
图1 IPSec应用示例
IPSec的使用场合和作用为:
IPSec除了支持终端用户、保护系统和网络外,还在网络互联所需的路由结构中起着重要的作用。IPSec能保证:路由通告(新路由器用于向外界通告自己)来自一个被授权的路由器;邻居通告(路由器用于建立或维护与其他路由域中路由器的邻居关系)来自一个授权的路由器;重新定向的消息来自于数据包上次到达的路由器;路由的更新不被伪造。
2 IPSec的结构
IPSec在IP层提供安全业务的方式是让系统选择所要求的安全协议、决定所需的算法和密钥。安全协议有两个:一是由协议的报头,即认证报头(AH)指定的认证协议;二是由协议数据包格式,即封装的安全负载(ESP)指定的将加密和认证结合起来的协议。安全业务有访问控制、无连接的完整性、数据源的认证性、对重放数据包的拒绝、保密性、受限的业务流保密性。
表1显示AH指定的协议(简称AH协议)和ESP指定的协议(简称ESP协议)所能提供的安全业务,其中ESP又分为仅加密和加密认证结合两种情况。
表1 IPSec的安全业务
AH |
ESP(有加密) |
ESP(有加密和认证) |
|
访问控制 |
|||
无连接的完整性 |
|
||
数据来源的认证 |
|
||
对重放数据的拒绝 |
|||
保密名性 |
|
||
受限业务流的保密性 |
|
本节介绍IPSec结构中的两个主要概念:安全关联和模式。
2.1 安全关联
安全关联(SA)是指由IPSec提供安全服务的业务流的发方到收方的一个单向逻辑关系,用来表示IPSec为SA所承载的数据通信提供安全服务。其方式是使用AH或ESP之一,一个SA不能同时使用AH和ESP保护。因为SA是单向的,所以两个系统之间的双向通信需要两个SA,每个方向一个。
一个SA可由3个参数惟一地表示为:
<安全参数索引,目标IP地址,安全协议标识符>
3个参数的含义分别为:
所以对任何IP数据包,通过IPv4或IPv6报头中的目标地址以及封装扩展报头(AH或ESP)中的SPI,对SA惟一地识别。
2.2 AH和ESP的两种使用模式
AH和ESP的两种使用模式分别是传输模式和隧道模式,这里先介绍两种模式的一般概念,具体使用方式在下节。
(1)传输模式
传输模式主要用于对上层协议的保护,即将其保护推广到IP数据包的负载,如TCP数据段、UDP数据段或ICMP(Internet Control Message Protocol)数据包。传输模式典型地用于两个主机的端?端通信。在IPv4中,负载指位于IP报头之后的数据。在IPv6中,负载指IP报头和扩展报头(除目标地址选项)之后的数据,而目标地址选项也和负载一起受到保护。
(2)隧道模式
隧道模式用于对整个IP数据包的保护,它是将一个数据包用一个新的数据包包装,即给原数据包加一个新的报头,称为外部报头,这样原数据包就成为新数据包的负载。因此原数据包在整个传送过程中就像在隧道中一样,传送路径上的路由器都无法看到原数据包的报头。由于封装了原数据包,新数据包的源地址和目标地址都与原数据包不同,从而增加了安全性。
隧道模式用于SA关系中至少一方是安全的网关,如实现IPSec的防火墙或路由器。通过网关进入局域网中的通信则无需使用IPSec予以保护,而从局域网通过网关发出的数据包则由网关中的IPSec软件建立起隧道模式的安全关联,并以隧道模式发送。
3 认证报头
认证报头(AH)用于保证IP数据包的数据完整性、认证性,并用于防地址欺骗攻击、消息重放攻击等。其认证性由消息认证码(MAC)实现,因此要求通信双方有共享的密钥。
认证报头有以下数据字段(如图2所示):
图2 认证报头格式
所以,AH总长为96bit固定部分加上认证数据的可变长部分。AH报头中的“序列号”字段用于防止敌手截获已经过认证的数据包后实施重放攻击。认证报头(AH)中,字段“认证数据”的值称为完整性校验值。ICV是由MAC算法产生的消息认证码或截短的消息认证码。当前规定的算法为HMAC-MD5-96或HMAC-SHA-1-96,表示MAC算法为HMAC,所用杂凑算法分别为MD5和SHA,96表示“认证数据”的默认字段长,因此由HMAC产生出的消息认证码还需被截短,截短方式为取前96bit。
AH有两种使用模式:传输模式和隧道模式。
4 封装安全负载
封装安全负载(ESP)用于提供保密性业务,包括对消息内容的保密和有限的通信流量的保密。ESP也提供作为可选项的认证业务。
(1)ESP数据包格式
如图3所示,ESP数据包包括以下字段:
图3 ESP数据包格式
(2)ESP所用的加密算法和认证算法
ESP保密业务为负载数据、填充、填充长度、下一报头4个字段提供加密。如果加密算法需要初始向量,则将初始向量以明文形式放在负载数据头部。ESP要求支持CBC模式的DES,同时支持的加密算法还有:3个密钥的三重DES、RC5、IDEA、CAST、Blowfish等。
和AH一样,ESP支持的消息认证码默认长度为96bit,支持的算法为HMAC-MD5-96和HMAC-SHA-1-96。
(3)填充
填充的作用有:
(4) ESP的使用模式
与AH一样,ESP的两种使用模式也为传输模式和隧道模式。
5 SA的组合
一个SA能够实现AH协议或ESP协议,但却不能同时实现这两种协议。然而有些业务流可能要求同时实现两种协议,即要求在主机间和网关间都实现IPSec业务。这时就要求建立起多个SA以实现所需的IPSec业务,称这种多个SA序列为SA束,同一束上的SA的端点可以相同也可不同。
创建SA束的方式有以下两种:
以上两种方式可以结合起来使用,例如两个网关之间的SA使用重复隧道方式,而在网关之间的部分路段上的主机之间的SA使用传输相邻方式。
6 密钥管理
IPSec的密钥管理包括密钥的确定和密钥的分布,分为手工密钥管理和自动密钥管理:手工方式指系统管理员以手工方式为每一系统配置该系统自己的密钥和其它系统的密钥,该方式仅在相对稳定的小环境中才有实际价值;自动方式是指系统能够自动地按要求为SA产生密钥,该方式对分布式、大系统的密钥管理极为方便。
IPSec默认的自动密钥管理协议称为ISAKMP/Oakley。该协议包括两部分:
ISAKMP本身并未指定密钥交换算法,而是由一些消息类型构成,这些消息类型分别指定了不同的密钥交换算法。Oakley是初版ISAKMP使用的指定密钥交换算法。
7 IPSec的研究前景
今天,很难预料IPSec技术以什么样的形式在网上得到广泛的应用。市场驱动着技术的使用;同样,已使用的IPSec技术又改变着市场在选择下一个应用范围时的意向。要使IPSec更好地工作,系统集成或者分离的IPSec产品(或者两者)的下列研究领域将很重要:
参考文献
1 RFC2401: Security Architecture for the Internet Protocol
2 RFC2402:IP Authentication Header
3 RFC2406:IP Encapsulating Security Payload (ESP)
4 RFC2408:Internet Security Association and Key Management Protocol (ISAKMP)
[摘要] IPSec提供IP层的安全服务,通常是通过让系统选择所需的安全协议,确定服务所需算法,加载密钥以提供所需服务来实现这一目的。IPSec可用于保护主机间、安全网关间或安全网关?主机间的一条或多条路径。文章介绍了IPSec的作用与结构,并对其基本构件进行了详细的阐述。
[关键词] IPSec 安全关联 认证报头 封装安全负载 密钥管理
[Abstract] IPSec provides security services at the IP layer by enabling a system to select required protocols, determine the algorithms to use for the services, and put in place any cryptographic keys required to provide the requested services. IPSec can be used to protect one or more “paths” between a pair of hosts, between a pair of security gateways, or between a security gateway and a host.
The structure and the application of IPSec are discussed and the fundamental components of the IPSec architecture are introduced in this paper.
[Keywords] IPSec Security association Authentication header Encapsulating security payload Key management