IPSEC概述(转)

IPSec概述
本章将详细介绍secpath防火墙ipsec功能的配置,此时的secpath完全可以等同为路由器来看待,在文中我们将沿用路由器方面的术语和标识来描述secpath,即本章所提及的路由器均可使用secpath来取代。

    3.1.1 ipsec协议简介

    ipsec(ip security)协议族是ietf制定的一系列协议,它为ip数据报提供了高质量的、可互操作的、基于密码学的安全性。特定的通信方之间在ip层通过加密与数据源验证等方式,来保证数据报在网络上传输时的私有性、完整性、真实性和防重放。

    私有性(confidentiality)指对用户数据进行加密保护,用密文的形式传送。

    完整性(data integrity)指对接收的数据进行验证,以判定报文是否被篡改。

    真实性(data authentication)指验证数据源,以保证数据来自真实的发送者。

    防重放(anti-replay)指防止恶意用户通过重复发送捕获到的数据包所进行的攻击,即接收方会拒绝旧的或重复的数据包。

    ipsec通过ah(authentication header,认证头)和esp(encapsulating security payload,封装安全载荷)两个安全协议实现了上述目标。为简化ipsec的使用和管理,ipsec还可以通过ike(internet key exchange,因特网密钥交换协议)进行自动协商交换密钥、建立和维护安全联盟的服务,以简化ipsec的使用和管理。

    (1)ah协议

    ah是报文头验证协议,主要提供的功能有数据源验证、数据完整性校验和防报文重放功能;然而,ah并不加密所保护的数据报。

    (2)esp协议

    esp是封装安全载荷协议。它除提供ah协议的所有功能外(但其数据完整性校验不包括ip头),还可提供对ip报文的加密功能。

    ah和esp可以单独使用,也可以同时使用。对于ah和esp,都有两种操作模式:传输模式和隧道模式。工作模式将在后文介绍。

    (3)ike协议

    ike协议用于自动协商ah和esp所使用的密码算法,并将算法所需的必备密钥放到恰当位置。

    ike协商并不是必须的,ipsec所使用的策略和算法等也可以手工协商。关于两种协商方式的比较,将在后文介绍。

    3.1.2 ike协议简介

    1. ike协议

    ipsec的安全联盟可以通过手工配置的方式建立,但是当网络中节点增多时,手工配置将非常困难,而且难以保证安全性。这时就要使用ike(internet key exchange,因特网密钥交换)自动地进行安全联盟建立与密钥交换的过程。

    ike协议是建立在由internet安全联盟和密钥管理协议isakmp(internet security association and key management protocol)定义的框架上。它能够为ipsec提供了自动协商交换密钥、建立安全联盟的服务,以简化ipsec的使用和管理。

    ike具有一套自保护机制,可以在不安全的网络上安全地分发密钥、验证身份、建立ipsec安全联盟。

    2. ike的安全机制

    dh(diffie-hellman)交换及密钥分发。diffie-hellman算法是一种公共密钥算法。通信双方在不传送密钥的情况下通过交换一些 数据,计算出共享的密钥。加密的前提是交换加密数据的双方必须要有共享的密钥。ike的精髓在于它永远不在不安全的网络上直接传送密钥,而是通过一系列数 据的交换,最终计算出双方共享的密钥。即使第三者(如黑客)截获了双方用于计算密钥的所有交换数据,也不足以计算出真正的密钥。

    完善的前向安全性(perfect forward secrecy,pfs)。pfs是一种安全特性,指一个密钥被破解,并不影响其他密钥的安全性,因为这些密钥间没有派生关系。pfs是由dh算法保障的。

    身份验证。身份验证确认通信双方的身份。对于pre-shared key验证方法,验证字用来作为一个输入产生密钥,验证字不同是不可能在双方产生相同的密钥的。验证字是验证双方身份的关键。

    身份保护。身份数据在密钥产生之后加密传送,实现了对身份数据的保护。

    3. ike的交换阶段

    ike使用了两个阶段为ipsec进行密钥协商并建立安全联盟:第一阶段,通信各方彼此间建立了一个已通过身份验证和安全保护的通道,此阶段的交换建立了 一个isakmp安全联盟,即isakmp sa(也可称ike sa);第二阶段,用在第一阶段建立的安全通道为ipsec协商安全服务,即为ipsec协商具体的安全联盟,建立ipsec sa,ipsec sa用于最终的ip数据安全传送。

    从下图我们可以看出ike和ipsec的关系。

   

    具体安全联盟的建立过程如下图所示:

   

    (1)当一个报文从某接口外出时,如果此接口应用了ipsec,会进行安全策略的匹配。

    (2)如果找到匹配的安全策略,会查找相应的安全联盟。如果安全联盟还没有建立,则触发ike进行协商。ike首先建立阶段1的安全联盟,即ike sa。

    (3)在阶段1安全联盟的保护下协商阶段2的安全联盟,即ipsec sa。

    (4)使用ipsec sa保护通讯数据。

    4. ike的协商模式

    在rfc2409(the internet key exchange)中规定,ike第一阶段的协商可以采用两种模式:主模式(main mode)和野蛮模式(aggressive mode)。

    主模式被设计成将密钥交换信息与身份、认证信息相分离。这种分离保护了身份信息;交换的身份信息受已生成的diffie-hellman共享密钥的保护。但这增加了3条消息的开销。

    野蛮模式则允许同时传送与sa、密钥交换和认证相关的载荷。将这些载荷组合到一条消息中减少了消息的往返次数,但是就无法提供身份保护了。

    虽然野蛮模式存在一些功能限制,但可以满足某些特定的网络环境需求。例如:远程访问时,如果响应者(服务器端)无法预先知道发起者(终端用户)的地址、或 者发起者的地址总在变化,而双方都希望采用预共享密钥验证方法来创建ike sa,那么,不进行身份保护的野蛮模式就是唯一可行的交换方法;另外,如果发起者已知响应者的策略,或者对响应者的策略有全面的了解,采用野蛮模式能够更 快地创建ike sa。

    3.1.3 ipsec基本概念

    1. 安全联盟

    ipsec在两个端点之间提供安全通信,端点被称为ipsec对等体。

    ipsec能够允许系统、网络的用户或管理员控制对等体间安全服务的粒度。例如,某个组织的安全策略可能规定来自特定子网的数据流应同时使用ah和esp 进行保护,并使用3des(triple data encryption standard,三重数据加密标准)进行加密;另一方面,策略可能规定来自另一个站点的数据流只使用esp保护,并仅使用des加密。通过sa (security association,安全联盟),ipsec能够对不同的数据流提供不同级别的安全保护。

    安全联盟是ipsec的基础,也是ipsec的本质。sa是通信对等体间对某些要素的约定,例如,使用哪种协议(ah、esp还是两者结合使用)、协议的操作模式(传输模式和隧道模式)、加密算法(des和3des)、特定流中保护数据的共享密钥以及密钥的生存周期等。

    安全联盟是单向的,在两个对等体之间的双向通信,最少需要两个安全联盟来分别对两个方向的数据流进行安全保护。同时,如果希望同时使用ah和esp来保护对等体间的数据流,则分别需要两个sa,一个用于ah,另一个用于esp。

    安全联盟由一个三元组来唯一标识,这个三元组包括spi(security parameter index,安全参数索引)、目的ip地址、安全协议号(ah或esp)。spi是为唯一标识sa而生成的一个32比特的数值,它在ah和esp头中传输。

    安全联盟具有生存周期。生存周期的计算包括两种方式:

    以时间为限制,每隔指定长度的时间就进行更新;

    以流量为限制,每传输指定的数据量(字节)就进行更新。

    2. 安全联盟的协商方式

    可以有两种协商方式建立安全联盟,一种是手工方式(manual),一种是ike自动协商(isakmp)方式。前者配置比较复杂,创建安全联盟所需的全 部信息都必须手工配置,而且ipsec的一些高级特性(例如定时更新密钥)不被支持,但优点是可以不依赖ike而单独实现ipsec功能。而后者则相对比 较简单,只需要配置好ike协商安全策略的信息,由ike自动协商来创建和维护安全联盟。

    当与之进行通信的对等体设备数量较少时,或是在小型静态环境中,手工配置安全联盟是可行的。对于中、大型的动态网络环境中,推荐使用ike协商建立安全联盟

    3. ipsec协议的操作模式

    ipsec协议有两种操作模式:传输模式和隧道模式。sa中指定了协议的操作模式。

    在传输模式下,ah或esp被插入到ip头之后但在所有传输层协议之前,或所有其他ipsec协议之前。在隧道模式下,ah或esp插在原始ip头之前, 另外生成一个新头放到ah或esp之前。不同安全协议在传输模式和隧道模式下的数据封装形式(传输协议以tcp为例)如下图所示:

   

    从安全性来讲,隧道模式优于传输模式。它可以完全地对原始ip数据报进行验证和加密;此外,可以使用ipsec对等体的ip地址来隐藏客户机的ip地址。 从性能来讲,隧道模式比传输模式占用更多带宽,因为它有一个额外的ip头。因此,到底使用哪种模式需要在安全性和性能间进行权衡。

    4. 验证算法与加密算法

    (1)验证算法

    ah和esp都能够对ip报文的完整性进行验证,以判别报文在传输过程中是否被篡改。验证算法的实现主要是通过杂凑函数,杂凑函数是一种能够接受任意长的 消息输入,并产生固定长度输出的算法,该输出称为消息摘要。ipsec对等体计算摘要,如果两个摘要是相同的,则表示报文是完整未经篡改的。一般来说 ipsec使用两种验证算法:

    md5:md5通过输入任意长度的消息,产生128bit的消息摘要。

    sha-1:sha-1通过输入长度小于2的64次方比特的消息,产生160bit的消息摘要。

    sha-1的摘要长于md5,因而是更安全的。

    (2)加密算法

    esp能够对ip报文内容进行加密保护,防止报文内容在传输过程中被窥探。加密算法实现主要通过对称密钥系统,它使用相同的密钥对数据进行加密和解密。一般来说ipsec使用两种加密算法:

    des:使用56bit的密钥对一个64bit的明文块进行加密。

    3des:使用三个56bit的des密钥(共168bit密钥)对明文进行加密。

    无疑,3des具有更高的安全性,但其加密数据的速度要比des慢得多。

    3.1.4 ipsec的nat穿越

    1. nat穿越(nat traversal)

    ipsec的一个主要应用是建立vpn,但在实际组网应用中,有一种情况会对部署ipsec vpn网络造成障碍:如果发起者位于一个私网内部,而它希望在自己与远端响应者之间直接建立一条ipsec隧道;这就涉及到ipsec与nat的配合,主 要问题在于,ike在协商过程中如何发现两个端点之间存在nat网关,以及如何使esp报文正常穿越nat网关。

    首先,建立ipsec隧道的两端需要进行nat穿越能力协商,这是在ike协商的前两个消息中进行的,通过vendor id载荷指明的一组数据来标识,该载荷数据的定义与所采用草案(draft)版本的不同而不同。

    而nat网关发现是通过nat-d载荷来实现的,该载荷用于两个目的:在ike peer之间发现nat的存在;确定nat设备在peer的哪一侧。nat侧的peer作为发起者,需要定期发送nat-keepalive报文,以使nat网关确保安全隧道处于激活状态。

    2. ipsec穿越nat的处理

    ipsec穿越nat,简单来说就是在原报文的ip头和esp头(不考虑ah方式)间增加一个标准的udp报头。这样,当esp报文穿越nat网关时, nat对该报文的外层ip头和增加的udp报头进行地址和端口号转换;转换后的报文到达ipsec隧道对端时,与普通ipsec处理方式相同,但在发送响 应报文时也要在ip头和esp头之间增加一个udp报头。

    3.1.5 ipsec在secpath上的实现

    1. ipsec在secpath上的实现

    secpath实现了上述所介绍的ipsec的全部内容。

    其实现方式是基于下列思路:通过ipsec,对等体之间(此处是指secpath及其对端)能够对不同的数据流实施不同的安全保护(验证、加密或两者同时 使用)。其中数据流的区分通过配置acl来进行;安全保护所用到的安全协议、验证算法和加密算法、操作模式等通过配置安全提议来进行;数据流和安全提议的 关联(即定义对何种数据流实施何种保护)、sa的协商方式、对等体ip地址的设置(即保护路径的起/终点)、所需要的密钥和sa的生存周期等通过配置安全 策略来进行;最后在路由器接口上实施安全策略即完成了ipsec的配置。

    具体介绍如下:

    (1)定义被保护的数据流

    数据流是一组流量(traffic)的集合,由源地址/掩码、目的地址/掩码、ip报文承载的协议号、源端口号、目的端口号等来规定。一个数据流用一个 acl来定义,所有匹配一个访问控制列表规则的流量,在逻辑上作为一个数据流。一个数据流可以小到是两台主机之间单一的tcp连接;也可以大到是两个子网 之间所有的流量。ipsec能够对不同的数据流施加不同的安全保护,因此ipsec配置的第一步就是定义数据流。

    (2)定义安全提议

    安全提议规定了对要保护的数据流所采用的安全协议、验证或加密算法、操作模式(即报文的封装方式)等。

    secpath支持的ah和esp安全协议,两者既可单独使用,也可联合使用。其中,ah支持md5和sha-1验证算法;esp协议支持md5、sha-1验证算法和des、3des加密算法。secpath支持的操作模式包括传输模式和隧道模式。

    对同一数据流,对等体两端必须设置相同的协议、算法和操作模式。另外,对于两个安全网关(例如路由器间)实施ipsec,建议采用隧道模式,以隐藏实际通信的源和目的ip地址。

    因此,请先根据需要配置好一个安全提议,以便下一步将数据流和安全提议相关联。

    (3)定义安全策略或安全策略组

    安全策略规定了对什么样的数据流采用什么样的安全提议。一条安全策略由“名字”和“顺序号”共同唯一确定。安全策略分为手工安全策略和ike协商安全策 略,前者需要用户手工配置密钥、spi、sa的生存周期等参数,在隧道模式下还需要手工配置安全隧道两个端点的ip地址;后者则由ike自动协商生成这些 参数。

    安全策略组是所有具有相同名字、不同顺序号的安全策略的集合。在同一个安全策略组中,顺序号越小的安全策略,优先级越高。

    (4)接口实施安全策略

    在接口上应用安全策略组,安全策略组中的所有安全策略同时应用在这个接口上,从而实现对流经这个接口的不同的数据流进行不同的安全保护。

    2. ike在secpath上的实现

    secpath支持ike的主模式和野蛮模式,并基于rfc2408、rfc2409实现,能够与大多数主流设备厂商互通。

    目前,secpath上的ipsec,如果需要进行nat穿越,则ike第一阶段协商应采用野蛮模式,对端id类型为对端名称,并在配置ipsec的安全提议时,安全协议采用esp,还需要以隧道模式(tunnel)封装报文。

    secpath上ike的实现步骤如下:

    设置ike交换过程中所使用的本地id;

    指定对端(ike peer)的一系列属性(包括ike协商模式、预共享密钥值、对端地址或对端id、是否需要进行nat穿越等属性),以保证ike协商阶段的正确性;

    创建ike安全提议,以确定ike交换过程中算法的强度,即安全保护的强度(包括身份验证方法、加密算法、验证算法、dh组等):不同的算法的强度不同,强度越高的算法,受保护数据越难被破解,但消耗的计算资源越多。一般来说,密钥越长的算法强度越高;

    此外,除上述基本步骤外,ike还具有keepalive机制,可以判断对端是否能够正常通讯,因此还可配置keepalive的“interval”和“timeout”两个参数。当配置了ipsec的nat穿越时,还可配置发送nat更新报文的时间间隔。

    当上述ike配置完毕后,需要在ipsec的安全策略视图下引用ike peer,以完成了自动协商的ipsec的配置。(ipsec引用ike peer已经在上一章中介绍)

    3.1.6 ipsec在加密卡硬件上的实现

    1. ipsec在加密卡硬件上的实现

    ipsec加密卡在实现了上述全部功能的基础上,还扩展了部分功能。

    如ipsec加密卡的加密算法,采用aes,即使用128bit的密钥对明文进行加密。

    上述特性涉及的配置命令完成的功能只在加密卡硬件存在时生效,对于无加密卡或者用户指定使用纯软件处理ipsec特性时,不提供上述功能。

    加密卡进行加密/解密的工作过程是:

    (1)防火墙主机将需要加密/解密的数据发送给加密卡

    (2)加密卡对数据进行加密/解密运算

    (3)加密卡将完成加密/解密的数据发送回主机

    (4)主机对加密卡处理后的数据进行后续处理

    目前的加密卡,是即插即用型。当加密卡被拔出或失效后,便会自动切换回软件处理加密/解密。

    加密卡与vrp主体软件ipsec模块对数据的处理机制完全相同,区别仅仅在于加密卡是通过硬件实现加密/解密处理,而ipsec模块是通过软件实现加/解密处理。

    2. ike在加密卡硬件上的实现

    ipsec加密卡在实现软件的所有功能基础上,还扩展了部分功能。

    secpath防火墙在ipsec高速加密卡中提供rsa加密nonce的身份验证方法。

    上述特性涉及的配置命令完成的功能只在加密卡硬件存在时生效,对于无加密卡或者用户指定使用纯软件处理ipsec特性时,不提供上述功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值