IKE的协商过程

IPSec协商分为两个阶段:第一阶段协商对对方的身份进行认证,并且为第二阶段的协商提供一条安全可靠的通道。第二阶段主要对IPSEC的安全性能进行协商,产生真正可以用来加密数据流的密钥。

第一阶段主模式(IKE SA 阶段):

发送cockie包,用来标识唯一的一个IPSEC会话。

IKE阶段一(主模式):发送消息1    initiator====>responsor

     isakmp header

     sa payload

     proposal payload

     transform payload

     定义一组策略:

            加密方法:DES

            认证身份方法:预共享密钥

            认证散列:MD5

            存活时间:86400秒

            Diffie-Hellman group:1

IKE阶段二(主模式):发送消息2    initiator<====responsor

    同上

IKE阶段三(主模式):发送消息3    initiator====>responsor

   通过DH算法产生共享密钥

     KE(Key Exchang) Payload

     nonce(暂时) Payload

DH算法:

    A:  P(较大的质数)                          B: P(较大的质数)

          G                                                  G

          PriA(随机产生)                             PriB(随机产生)   

          PubA=G^PriA mod P                      PubB=G^PriB mod P

          交换PubA和PubB

          Z=PubB^PriA mod P                        Z=PubA^PriB mod P

     Z就是共享密钥,两个自我产生的Z应相同,它是用来产生3个SKEYID的素材。

IKE阶段四(主模式):发送消息4    initiator<====responsor

      同上

     主模式第3、4条消息其实就是DH算法中需要交换的几个参数,然后路由器再通过DH算法计算出的公共密钥计算出以下3个参数(这是在发送第5、6个消息前完成的):

     SKEYID_d:留在在第二阶段用,用来计算后续的IKE密钥资源;

     SKEYID_a:散列预共享密钥,提供IKE数据完整性和认证;

     SKEYID_e:用来加密下一阶段的message,data, preshared key,包括第二阶段。

IKE阶段五(主模式):发送消息5    initiator====>responsor

     Identity Payload:用于身份标识

     Hash Payload:用来认证

     以上2个负载都用SKEYID_e加密

IKE阶段六(主模式):发送消息6    initiator<====responsor

     同上

      消息5、6是用来验证对等体身份的。至此IKE协商第一阶段完成。

第二阶段快速模式(IPSec SA 阶段):

    首先判断是否启用了PFS(完美转发安全),若启用了则重新进行DH算法产生密钥,若没有启用则是用第一阶段的密钥。

IPSec阶段一(快速模式):发送消息1    initiator====>responsor

    同样定义一组策略,继续用SKEYID_e加密:

            Encapsulation— ESP

            Integrity checking— SHA-HMAC

            DH group— 2

            Mode— Tunnel

IPSec阶段二(快速模式):发送消息2   initiator<====responsor

    同上,主要是对消息1策略的一个确认。

   在发送消息3前,用SKEYID_d,DH共享密钥,SPI等产生真正用来加密数据的密钥。

IPSec阶段三(快速模式):发送消息3    initiator====>responsor

    用来核实responsor的liveness。

   至此,整个IPSec协商的两个过程已经完成,两端可以进行安全的数据传输

总结如下: 9个包的来回,前6个为主模式,后3个为快速模式.

相关参数---相关参数----DH算法----DH算法(产生3个SKEYID的素材)-----身份认证-----身份认证-----组策略-------组策略确认------核实responsor的liveness

因特网密钥交换协议(IKE)是一份符合因特网协议安全(IPSec)标准的协议。它常用来确保虚拟专用网络VPN(virtual private network)与远端网络或者宿主机进行交流时的安全。对于两个或更多实体间的交流来说,安全协会(SA)扮演者安全警察的作用。每个实体都通过一个密钥表征自己的身份。因特网密钥交换协议(IKE)保证安全协会(SA)内的沟通是安全的。 因特网密钥交换协议(IKE)是结合了两个早期的安全协议而生成的综合性协议。它们是:Oakley协议和SKEME协议。因特网密钥交换协议(IKE)是基于因特网安全连接和密钥管理协议ISAKMP(Internet Security Association and Key Management Protocol)中TCP/IP框架的协议。因特网安全连接和密钥管理协议ISAKMP包含独特的密钥交换和鉴定部分。Oakley协议中指定了密钥交换的顺序,并清楚地描述了提供的服务,比如区别保护行为和鉴定行为。SKEME协议说明了密钥交换的具体方法。尽管没有要求因特网密钥交换协议(IKE)符合因特网协议安全(IPSec)的内容,但是因特网密钥交换协议(IKE)内的自动实现协商和鉴定、否则重发服务(请参考否则重发协议)、凭证管理CA(Certification Authority)支持系统和改变密码生成方法等内容均得益于因特网协议安全(IPSec)。

Intenet密钥交换协议(IKE)是用于交换和管理在VPN中使用的加密密钥的.到目前为止,它依然存在安全缺陷.基于该协议的重要的现实意义,简单地介绍了它的工作机制,并对它进行了安全性分析;对于抵御中间人攻击和DoS攻击,给出了相应的修正方法;还对主模式下预共享密钥验证方法提出了新的建议;最后给出了它的两个发展趋势:JFK和IKEv2.

Internet key exchange (IKE) is the protocol used to set up a security association in the IPsec protocol suite, which is in turn a mandatory part of the IETF IPv6 standard, which is being adopted (slowly) throughout the Internet. IPsec (and so IKE) is an optional part of the IPv4 standard. But in IPv6 providing security through IPsec is a must.

Internet密钥交换(IKE)解决了在不安全的网络环境(如Internet)中安全地建立或更新共享密钥的问题。IKE是非常通用的协议,不仅可为IPsec协商安全关联,而且可以为SNMPv3、RIPv2、OSPFv2等任何要求保密的协议协商安全参数。

一、IKE的作用当应用环境的规模较小时,可以用手工配置SA;当应用环境规模较大、参与的节点位置不固定时, IKE可自动地为参与通信的实体协商SA,并对安全关联库(SAD)维护,保障通信安全。二、IKE的机制IKE属于一种混合型协议,由Internet安全关联和密钥管理协议(ISAKMP)和两种密钥交换协议OAKLEY与SKEME组成。IKE创建在由ISAKMP定义的框架上,沿用了OAKLEY的密钥交换模式以及SKEME的共享和密钥更新技术,还定义了它自己的两种密钥交换方式。IKE使用了两个阶段的ISAKMP:第一阶段,协商创建一个通信信道(IKE SA),并对该信道进行验证,为双方进一步的IKE通信提供机密性、消息完整性以及消息源验证服务;第二阶段,使用已建立的IKE SA建立IPsec SA(如图1所示)。 IKE共定义了5种交换。阶段1有两种模式的交换:对身份进行保护的“主模式”交换以及根据基本ISAKMP 文档制订的“野蛮模式”交换。阶段2 交换使用“快速模式”交换。IKE 自己定义了两种交换:1为通信各方间协商一个新的DiffieHellman 组类型的“新组模式”交换;2在IKE 通信双方间传送错误及状态消息的ISAKMP信息交换。1.主模式交换主模式交换提供了身份保护机制,经过三个步骤,共交换了六条消息。三个步骤分别是策略协商交换、DiffieHellman共享值、nonce交换以及身份验证交换(如图2所示)。2.野蛮模式交换野蛮模式交换也分为三个步骤,但只交换三条消息:头两条消息协商策略,交换DiffieHellman公开值必需的辅助数据以及身份信息;第二条消息认证响应方;第三条消息认证发起方,并为发起方提供在场的证据(如图3所示)。 3.快速模式交换快速模式交换通过三条消息建立IPsec SA:头两条消息协商IPsec SA的各项参数值,并生成IPsec 使用的密钥;第二条消息还为响应方提供在场的证据;第三条消息为发起方提供在场的证据(如图4所示)。 4.新组模式交换通信双方通过新组模式交换协商新的Diffie-Hellman组。新组模式交换属于一种请求/响应交换。发送方发送提议的组的标识符及其特征,如果响应方能够接收提议,就用完全一样的消息应答(如图5所示)。 5.ISAKMP信息交换参与IKE通信的双方均能向对方发送错误及状态提示消息。这实际上并非真正意义上的交换,而只是发送单独一条消息,不需要确认(如图6所示)。  三、IKE的安全1.机密性保护IKE使用DiffieHellman组中的加密算法。IKE共定义了五个DiffieHellman组,其中三个组使用乘幂算法(模数位数分别是768、1024、1680位),另两个组使用椭圆曲线算法(字段长度分别是155、185位)。因此,IKE的加密算法强度高,密钥长度大。2.完整性保护及身份验证在阶段1、2交换中,IKE通过交换验证载荷(包含散列值或数字签名)保护交换消息的完整性,并提供对数据源的身份验证。IKE列举了四种验证方法:1预共享密钥;2数字签名;3公钥加密;4改进的公钥加密。3.抵抗拒绝服务攻击对任何交换来说,第一步都是cookie交换。每个通信实体都生成自己的cookie,cookie提供了一定程度的抗拒绝服务攻击的能力。如果在进行一次密钥交换,直到完成cookie交换,才进行密集型的运算,比如DiffieHellman交换所需的乘幂运算,则可以有效地抵抗某些拒绝服务攻击,如简单使用伪造IP源地址进行的溢出攻击。4.防止中间人攻击中间人攻击包括窃听、插入、删除、修改消息,反射消息回到发送者,重放旧消息以及重定向消息。ISAKMP的特征能阻止这些攻击成功。5.完美向前保密完美向前保密(PFS),指即使攻击者破解了一个密钥,也只能还原这个密钥加密的数据,而不能还原其他的加密数据。要达到理想的PFS,一个密钥只能用于一种用途,生成一个密钥的素材也不能用来生成其他的密钥。我们把采用短暂的一次性密钥的系统称为“PFS”。如果要求对身份的保护也是PFS,则一个IKE SA只能创建一个IPsec SA。四、IKE的实现IKE是一个用户级的进程。启动后,作为后台守护进程运行。在需要使用IKE服务前,它一直处于不活动状态。可以通过两种方式请求IKE服务:1当内核的安全策略模块要求建立SA时,内核触发IKE。2当远程IKE实体需要协商SA时,可触发IKE。1.IKE与内核的接口内核为了进行安全通信,需要通过IKE建立或更新SA。IKE 同内核间的接口有:1同SPD通信的双向接口。当IKE得到SPD的策略信息后,把它提交给远程IKE对等实体;当IKE收到远程IKE对等实体的提议后,为进行本地策略校验,必须把它交给SPD。2同SAD通信的双向接口。IKE 负责动态填充SAD,要向SAD发送消息(SPI请求和SA实例),也要接收从SAD返回的消息(SPI 应答)。2.IKE 对等实体间接口IKE为请求创建SA的远程IKE对等实体提供了一个接口。当节点需要安全通信时,IKE与另一个IKE对等实体通信,协商建立IPsec SA。如果已经创建了IKE SA,就可以直接通过阶段2 交换创建新的IPsec SA;如果还没有创建IKE SA,就要通过阶段1、2交换创建新的IKE SA及IPsec SA。

ESP、AH用来对IP报文进行封装、加/解密、验证以达到保护IP报文的目的,而IKE和ISAKMP/Oakley/SKEME则是通信双方用来协商封装形式、加/解密算法及其密钥、密钥的生命期、验证算法的。

ISAKMP/Oakley/SKEME是为IKE的协商提供服务的,它提供了实现IKE的框架、密钥交换模式和方法、密钥的更新方法。ISAKMP是“Internet安全关联和密钥管理协议”的简称,即Internet Security Associationand Key Management Protocol。ISAKMP对验证和密钥交换提出了结构框架,但没有具体定义。ISAKMP被设计用来独立的进行密钥交换,即被设计用于支持多种不同的密钥交换。Oakley描述了一系列被称为“模式”的密钥交换,并详述了每一种提供的服务。SKEME描述了一种提供匿名,否认,和快速密钥更新的通用密钥交换技术。IKE是使用部分Oakley,部分SKEME,并结合ISAKMP的一种协议,它使用ISAKMP来得到已验证的用于生成密钥和其它安全联盟(如AH,ESP)中用于IETE IPsec DOI的材料。IKE协议是Oakley和SKEME协议的一种混合,并在由ISAKMP规定的一个框架内运作。Oakley和SKEME定义了通信双方建立一个共享的验证密钥所必须采取的步骤。IKE利用ISAKMP语言对这些步骤以及其它信息交换措施进行表述。

IKE的用途就是在IPSec通信双方之间,建立起共享安全参数及验证过的密钥,亦即建立“安全关联”关系。

图12.9 IKE的用途

IKE是一种常规用途的安全交换协议,可用于策略的磋商,以及验证加密材料的建立,适用于多方面的需求椚?/FONT>SNMPv3、OSPFv2等等。IKE采用的规范是在“解释域(DomainofInterpretation,DOI)”中制订的。针对IPSec存在着一个名为RFC2407的解释域,它定义了IKE具体如何与IPSecSA进行协商。如果其它协议要用到IKE,每种协议都要定义各自的DOI。为正确实施IKE,需遵守三份文件(文档)的规定,它们分别是:基本ISAKMP规范(RFC2408)、IPSec解释域(RFC2407)、IKE规范本身(RFC2409)。

IKE主要完成两个作用:安全关联的集中化管理,减少连接时间、密钥的生成和管理。

Oakley和SKEME各自定义了建立经过验证的密钥交换的方法。其中包括负载的构建,信息负载的运送,它们被处理的顺序以及被使用的方法。Oakley定义了“模式”,ISAKMP定义了“阶段”。两者之间的关系非常直接,IKE描述了在两个阶段中进行的不同的、称为模式的交换。

IKE建立SA分两个阶段。第一阶段,协商创建一个通信信道(IKE SA),并对该信道进行认证,为双方进一步的IKE通信提供机密性、数据完整性以及数据源认证服务,IKE定义了两个第一阶段的协商(Main Mode-主模式和Aggressive Mode-积极模式)

第一阶段协商(主模式协商)步骤:

主模式交换提供了身份保护机制,经过三个步骤,六个消息,头两个消息协商策略;下两个消息交换Diffie-Hellman的公共值和必要的辅助数据;最后的两个消息验证Diffie-Hellman交换。

图12.10 使用签名验证的主模式

策略协商交换。IKE以“保护组(Protectionsuite)”的形式来定义策略。每个保护组都至少需要定义采用的加密算法(选择DES或3DES)、散列算法(选择MD5或SHA)、Diffie-Hellman组以及验证方法(数字签名,公共密钥加密的两种验证,或者共享密钥认证)。IKE的策略数据库则列出了所有保护组(按各个参数的顺序)。由于通信双方决定了一个特定的策略组后,它们以后的通信便必须根据它进行,所以这种形式的协商是两个IKE通信实体第一步所需要做的。

Diffie Hellman共享值、nonce交换交换。虽然名为密钥交换,但事实上交换的只是一些DH算法生成共享密钥所需要的基本材料信息。在彼此交换过密钥生成材料后,两端主机可以各自生成出完全一样的共享“主密钥”,保护紧接其后的认证过程。Diffie-Hellman交换以及一个共享秘密的建立是IKE协议的第二步。

身份验证交换。IKE交换的下一个步骤便是对Diffie-Hellman共享秘密进行验证,同时还要对IKESA本身进行验证。DH交换需要得到进一步认证,如果认证不成功,通信将无法继续下去。“主密钥”结合在第一步中确定的协商算法,对通信实体和通信信道进行认证。在这一步中,整个待认证的实体载荷,包括实体类型、端口号和协议,均由前一步生成的“主密钥”提供机密性和完整性保证。一或多个证书负载在传递中是可选的。

在野蛮模式下,总共三个信息被交换。第一个信息由SA、nonce和身份组成。第二个信息是,在验证发起方并接受SA后,应答方发送nonce 和身份信息给发起方。第三个信息是,发起方验证应答方的身份以及进行被提议的信息的交换。

图12.11 带签名的野蛮模式

在Aggressive模式下,两个在第一次交换发送的身份信息是没有加密的。Aggressive 模式的优点是信息交换快速,但加密被节省了。

第二阶段建立SA(快速模式)。

这一阶段协商建立IPsec SA,为数据交换提供IPSec服务。第二阶段协商消息受第一阶段SA保护,任何没有第一阶段SA保护的消息将被拒收。

快速模式本身并不是一次完整的交换(因为它和第一阶段交换相关联),但又作为SA协商过程(第二阶段)的一部分用来衍生密钥材料和协商非ISAKMP SA的共享策略。快速模式交换的信息必须由ISAKMP SA来保护棗即除了ISAKMP报头外,所有的负载都要加密。在快速模式中,HASH负载必须立即跟随在ISAKMP报头后,SA负载必须紧跟在HASH负载之后。HASH用于验证消息,同时也提供了参与的证据。

快速模式基本上是一次SA协商和提供重放保护的nonce交换。nonce用于产生新的密钥材料并阻止通过重放攻击产生虚假的安全联盟。可选的密钥交换(KE)负载可以经交换来实现通过快速模式产生附加的Diffie-Hellman交换以及求幂运算。但是必须支持使用快速模式的密钥交换负载成为可选的。

第二阶段协商(快速模式协商)步骤:

12.12 快速模式

快速模式交换通过三条消息建立IPsec SA:头两条消息协商IPsec SA的各项参数值,并生成IPsec 使用的密钥。包括使用哪种IPSec协议(AH或ESP)、使用哪种hash算法(D5或SHA)、是否要求加密,若是,选择加密算法(DES或3DES)。在上述三方面达成一致后,将建立起两个SA,分别用于入站和出站通信。第二条消息还为响应方提供在场的证据;第三条消息为发起方提供在场的证据。

ESP、AH用来对IP报文进行加/解密、验证以达到保护IP报文的目的,而IKE则是通信双方用来协商加/解密算法及其密钥、密钥的生命期、验证算法的。IKE协议是Oakley和SKEME协议的一种混合,并在由ISAKMP规定的一个框架内运作。

IKE阶段1的目的是鉴别IPSec对等体,在对等体间设立安全通道,以便IKE交换信息。主要功能如下:鉴别和保护IPSec实体的身份;协商IKE SA;执行D-H交换;建立安全通道以便协商IKE阶段2的参数。

IKE阶段1,IKE 在两个IKE对等体间创建一个认证过的安全通道,IKE SA。安全关联(SA)是实体间的关系,它表示通信方如何使用安全服务进行安全通信。IKE SA就是IKE之间如何使用安全服务进行通信;IPSec SA就是IPSec实体间如何使用安全服务进行通信。

IKE阶段一存在两种模式:

1、Main Mode

  双方存在3次双向交换:

  第一次交换 保证IKE通信安全的算法和Hash在匹配对等体间的IKE SA被商定

  第二次交换 用D-H交换来产生共享的、用户产生共享密钥的密钥材料,同事传送nonces,对他们进行签名并返回之以确认身份。

第三次交换 用于验证对方的身份。身份值是以加密的IPSec对等体的IP地址。

IKE SA为IKE指定下列参数值:

认证方法{Pre-Share|RSA签名|RSA加密}

加密和Hash算法

D-H组

IKE SA life time

加密算法的共享密钥

2、积极模式( [size=-1]Aggressive Mode) 

在一次交换中,该模式中几乎所有的需要交换的信息都被压缩到所建议的IKE SA参数值中了。该模式速度快,但是是不安全的。PIX可以对发起积极模式交换的IPSec对等体进行相应,在一般情况下不用积极模式发起IKE交换。

IKE阶段2,协商IPSec SA,还要生产IPSec所需要的密钥。发送端提供一个或多个变换集合(Transform sets),用于指定一个被允许的交换组合。IKE阶段2 执行以下功能:协商IPSec SA参数,建立IPSec SA,周期性的重新协商IPSec SA,可选的执行一次额外的D-H交换。IKE阶段2只有一种模式,快捷模式(Quick Mode)。快捷模式协商一个共享的IPSec策略,获得共享的、用于IPSec安全算法的密钥材料,并建立IPSec SA。快捷模式也用在IPSec SA life time 过期之后重新协商一个新的IPSec SA。如果在IPSec策略里指定了完美向前保密(Perfect Forward Secrecy,PFS),在快捷模式中将执行一次额外的D-H交换。

总的来说,IKE阶段一就是协商各种IKE SA参数,从而建立一个安全的通信通道以供IKE阶段二来建立Ipsec隧道,他们只是协商确认了一些参数,但是并没有具体的实施。

IKE阶段2则是在IKE阶段一的基础上协商IPSEC SA 从而建立安全的IPSEC 隧道,这个时候开始实施具体的协议来实现IKE阶段一协商的参数,比如使用ESP或者AH协议来实现阶段一的协商好的加密和认证方法,而在阶段一只是协商好要使用哪些参数来实现一个可靠安全的ipsec 隧道,但是没有指定用哪些协议来实现,二阶段二就是真正实施阶段

Internet密钥交换(IKE)

两台IPSec计算机在交换数据之前,必须首先建立某种约定,这种约定,称为"安全关联",指双方需要就如何保护信息、交换信息等公用的安全设置达成一致,更重要的是,必须有一种方法,使那两台计算机安全地交换一套密钥,以便在它们的连接中使用。见图七。

图七、Internet密钥交换

Internet 工程任务组IETF制定的安全关联标准法和密钥交换解决方案--IKE(Internet密钥交换)负责这些任务,它提供一种方法供两台计算机建立安全关联 (SA)。SA 对两台计算机之间的策略协议进行编码,指定它们将使用哪些算法和什么样的密钥长度,以及实际的密钥本身。IKE主要完成两个作用:

·安全关联的集中化管理,减少连接时间

·密钥的生成和管理

一、什么是SA?

安全关联SA(Security Association)是单向的,在两个使用 IPSec的实体(主机或路由器)间建立的逻辑连接,定义了实体间如何使用安全服务(如加密)进行通信。它由下列元素组成:1)安全参数索引SPI;2)IP目的地址;3)安全协议。

SA是一个单向的逻辑连接,也就是说,在一次通信中,IPSec 需要建立两个SA,一个用于入站通信,另一个用于出站通信。若某台主机,如文件服务器或远程访问服务器,需要同时与多台客户机通信,则该服务器需要与每台客户机分别建立不同的SA。每个SA用唯一的SPI索引标识,当处理接收数据包时,服务器根据SPI值来决定该使用哪种SA。

二、第一阶段SA(主模式SA,为建立信道而进行的安全关联)

IKE建立SA分两个阶段。第一阶段,协商创建一个通信信道(IKE SA),并对该信道进行认证,为双方进一步的IKE通信提供机密性、数据完整性以及数据源认证服务;第二阶段,使用已建立的IKE SA建立IPsec SA。分两个阶段来完成这些服务有助于提高密钥交换的速度。 第一阶段协商(主模式协商)步骤:

1.策略协商,在这一步中,就四个强制性参数值进行协商:

1)加密算法:选择DES或3DES

2)hash算法:选择MD5或SHA

3)认证方法:选择证书认证、预置共享密钥认证或Kerberos v5认证

4)Diffie-Hellman组的选择

2.DH交换

虽然名为"密钥交换",但事实上在任何时候,两台通信主机之间都不会交换真正的密钥,它们之间交换的只是一些DH算法生成共享密钥所需要的基本材料信息。DH交换,可以是公开的,也可以受保护。在彼此交换过密钥生成"材料"后,两端主机可以各自生成出完全一样的共享"主密钥",保护紧接其后的认证过程。

3.认证 DH交换需要得到进一步认证,如果认证不成功,通信将无法继续下去。"主密钥"结合在第一步中确定的协商算法,对通信实体和通信信道进行认证。在这一步中,整个待认证的实体载荷,包括实体类型、端口号和协议,均由前一步生成的"主密钥"提供机密性和完整性保证。

三、第二阶段SA(快速模式SA,为数据传输而建立的安全关联)

这一阶段协商建立IPsec SA,为数据交换提供IPSec服务。第二阶段协商消息受第一阶段SA保护,任何没有第一阶段SA保护的消息将被拒收。

第二阶段协商(快速模式协商)步骤:

1.策略协商,双方交换保护需求:

·使用哪种IPSec协议:AH或ESP

·使用哪种hash算法:MD5或SHA

·是否要求加密,若是,选择加密算法:3DES或DES 在上述三方面达成一致后,将建立起两个SA,分别用于入站和出站通信。

2.会话密钥"材料"刷新或交换

在这一步中,将生成加密IP数据包的"会话密钥"。生成"会话密钥"所使用的"材料"可以和生成第一阶段SA中"主密钥"的相同,也可以不同。如果不做特殊要求,只需要刷新"材料"后,生成新密钥即可。若要求使用不同的"材料",则在密钥生成之前,首先进行第二轮的DH交换。

3.SA和密钥连同SPI,递交给IPSec驱动程序。

第二阶段协商过程与第一阶段协商过程类似,不同之处在于:在第二阶段中,如果响应超时,则自动尝试重新进行第一阶段SA协商。

第一阶段SA建立起安全通信信道后保存在高速缓存中,在此基础上可以建立多个第二阶段SA协商,从而提高整个建立SA过程的速度。只要第一阶段SA不超时,就不必重复第一阶段的协商和认证。允许建立的第二阶段SA的个数由IPSec策略属性决定。

四、SA生命期

第一阶段SA有一个缺省有效时间,如果SA超时,或"主密钥"和"会话密钥"中任何一个生命期时间到,都要向对方发送第一阶段SA删除消息,通知对方第一阶段SA已经过期。之后需要重新进行SA协商。第二阶段SA的有效时间由IPSec驱动程序决定。

密钥保护

一、密钥生命期

生命期设置决定何时生成新密钥。在一定的时间间隔内重新生成新密钥的过程称为"动态密钥更新"或"密钥重新生成"。密钥生命期设置决定了在特定的时间间隔之后,将强制生成新密钥。例如,假设一次通信需要1万秒,而我们设定密钥生命期为1千秒,则在整个数据传输期间将生成10个密钥。在一次通信中使用多个密钥保证了即使攻击者截取了单个通信密钥,也不会危及全部通信安全。密钥生命期有一个缺省值,但"主密钥"和"会话密钥"生命期都可以通过配置修改。无论是哪种密钥生命期时间到,都要重新进行SA协商。单个密钥所能处理的最大数据量不允许超过100兆。

二、会话密钥更新限制

反复地从同一个的"主密钥"生成材料去生成新的"会话密钥"很可能会造成密钥泄密。"会话密钥更新限制"功能可以有效地减少泄密的可能性。 例如,两台主机建立安全关联后,A先向B发送某条消息,间隔数分钟后再向B发送另一条消息。由于新的SA刚建立不久,因此两条消息所用的加密密钥很可能是用同一"材料"生成的。如果想限制某密钥"材料"重用次数,可以设定"会话密钥更新限制"。譬如,设定"会话密钥更新限制"为5,意味着同一"材料"最多只能生成5个"会话密钥"。

若启用"主密钥精确转发保密(PFS)",则"会话密钥更新限制"将被忽略,因为PFS 每次都强制使用新"材料"重新生成密钥。将"会话密钥更新限制"设定为1和启用PFS效果是一样的。如果既设定了"主密钥"生命期,又设定了"会话密钥更新限制",那么无论哪个限制条件先满足,都引发新一轮SA协商。在缺省情况下,IPSec不设定"会话密钥更新限制"。

三、Diffie-Hellman(DH)组

DH组决定DH交换中密钥生成"材料"的长度。密钥的牢固性部分决定于DH组的强度。IKE共定义了5个DH组,组1(低)定义的密钥"材料"长度为768位;组2(中)长度为1024位。密钥"材料"长度越长,所生成的密钥安全度也就越高,越难被破译。

DH组的选择很重要,因为DH组只在第一阶段的SA协商中确定,第二阶段的协商不再重新选择DH组,两个阶段使用的是同一个DH组,因此该DH组的选择将影响所有"会话密钥"的生成。

在协商过程中,对等的实体间应选择同一个DH组,即密钥"材料"长度应该相等。若DH组不匹配,将视为协商失败。

四、精确转发保密PFS(Perfect Forward Secrecy)

与密钥生命期不同,PFS决定新密钥的生成方式,而不是新密钥的生成时间。PFS保证无论在哪一阶段,一个密钥只能使用一次,而且,生成密钥的"材料"也只能使用一次。某个"材料"在生成了一个密钥后,即被弃,绝不用来再生成任何其他密钥。这样可以确保一旦单个密钥泄密,最多只可能影响用该密钥加密的数据,而不会危及整个通信。

PFS分"主密钥"PFS和"会话密钥"PFS,启用"主密钥"PFS,IKE必须对通信实体进行重新认证,即一个IKE SA只能创建一个IPsec SA,对每一次第二阶段SA的协商,"主密钥"PFS都要求新的第一阶段协商,这将会带来额外的系统开销。因此使用它要格外小心。

然而,启用"会话密钥"PFS,可以不必重新认证,因此对系统资源要求较小。"会话密钥"PFS只要求为新密钥生成进行新的DH交换,即需要发送四个额外消息,但无须重新认证。 PFS不属于协商属性,不要求通信双方同时开启PFS。"主密钥"PFS和"会话密钥"PFS均可以各自独立设置

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!
    0 条回复 A文章作者 M管理员
      暂无讨论,说说你的看法吧