http://lulu1101.blog.51cto.com/4455468/817872
DH (Diffie-Hellman)交换及密钥分发。Diffie-Hellman 算法是一种公共密钥算法。通信双方在不传送密钥的情况下通过交换一些数据,计算出共享的密钥(对称密钥)。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。加密的前提是交换加密数据的双方必须要有共享的密钥。
IKE 的精髓在于它永远不在不安全的网络上直接传送密钥,而是通过一系列数据的交换,最终计算出双方共享的密钥(这里应该是另一个密钥,不是预共享密钥)。即使第三者(如黑客)截获了双方用于计算密钥的所有交换数据,也不足以计算出真正的密钥。
完善的前向安全性(Perfect Forward Secrecy,PFS)。PFS 是一种安全特性,指一个密钥被破解,并不影响其他密钥的安全性,因为这些密钥间没有派生关系。PFS 是由 DH 算法保障的。
身份验证。身份验证确认通信双方的身份。对于 pre-shared key 验证方法,验证字用来作为一个输入产生密钥,验证字不同是不可能在双方产生相同的密钥的。验证字是验证双方身份的关键。
身份保护。身份数据在密钥产生之后加密传送,实现了对身份数据的保护。
IKE 使用了两个阶段为 IPSec 进行密钥协商并建立安全联盟:第一阶段,通信各方彼此间建立了一个已通过身份验证和安全保护的通道,此阶段的交换建立了一个ISAKMP 安全联盟,即 ISAKMP SA (也可称IKE SA。安全关联(SA)是实体间的关系,它表示通信方如何使用安全服务进行安全通信。IKE SA就是IKE之间如何使用安全服务进行通信;IPSec SA就是IPSec实体间如何使用安全服务进行通信。);第二阶段,用在第一阶段建立的安全通道为 IPSec 协商安全服务,即为 IPSec 协商具体的安全联盟,建立IPSec SA,IPSec SA 用于最终的 IP 数据安全传送。
从下图我们可以看出 IKE 和 IPSec 的关系。
具体安全联盟的建立过程如下图所示:
相关配置:
因特网密钥交换协议(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为通信各方间协商一个新的DiffieHellman 组类型的“新组模式”交换;2在IKE 通信双方间传送错误及状态消息的ISAKMP信息交换。
1.主模式交换
主模式交换提供了身份保护机制,经过三个步骤,共交换了六条消息。三个步骤分别是策略协商交换、DiffieHellman共享值、nonce交换以及身份验证交换(如图2所示)。
2.野蛮模式交换
野蛮模式交换也分为三个步骤,但只交换三条消息:头两条消息协商策略,交换DiffieHellman公开值必需的辅助数据以及身份信息;第二条消息认证响应方;第三条消息认证发起方,并为发起方提供在场的证据(如图3所示)。
3.快速模式交换
快速模式交换通过三条消息建立IPsec SA:头两条消息协商IPsec SA的各项参数值,并生成IPsec 使用的密钥;第二条消息还为响应方提供在场的证据;第三条消息为发起方提供在场的证据(如图4所示)。
4.新组模式交换
通信双方通过新组模式交换协商新的Diffie-Hellman组。新组模式交换属于一种请求/响应交换。发送方发送提议的组的标识符及其特征,如果响应方能够接收提议,就用完全一样的消息应答(如图5所示)。
5.ISAKMP信息交换
参与IKE通信的双方均能向对方发送错误及状态提示消息。这实际上并非真正意义上的交换,而只是发送单独一条消息,不需要确认(如图6所示)。
三、IKE的安全
1.机密性。保护IKE使用DiffieHellman组中的加密算法。IKE共定义了五个DiffieHellman组,其中三个组使用乘幂算法(模数位数分别是768、1024、1680位),另两个组使用椭圆曲线算法(字段长度分别是155、185位)。因此,IKE的加密算法强度高,密钥长度大。
2.完整性。保护及身份验证在阶段1、2交换中,IKE通过交换验证载荷(包含散列值或数字签名)保护交换消息的完整性,并提供对数据源的身份验证。IKE列举了四种验证方法:1预共享密钥;2数字签名;3公钥加密;4改进的公钥加密。
3.抵抗拒绝服务攻击。对任何交换来说,第一步都是cookie交换。每个通信实体都生成自己的cookie,cookie提供了一定程度的抗拒绝服务攻击的能力。如果在进行一次密钥交换,直到完成cookie交换,才进行密集型的运算,比如DiffieHellman交换所需的乘幂运算,则可以有效地抵抗某些拒绝服务攻击,如简单使用伪造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描述了一系列被称为“模式”的密钥交换,并详述了每一种提供的服务。定义IKE提供了一个多样化,多模式的应用,让IKE可以用在很多场合。
SKEME描述了一种提供匿名,否认,和快速密钥更新的通用密钥交换技术。提供了IKE交换密钥的算法,如:通过DH进行密钥交换和管理的方式
IKE是使用部分Oakley,部分SKEME,并结合ISAKMP的一种协议,它使用ISAKMP来得到已验证的用于生成密钥和其它安全联盟(如AH,ESP)中用于IETE IPsec DOI的材料。IKE协议是Oakley和SKEME协议的一种混合,并在由ISAKMP规定的一个框架内运作。Oakley和SKEME定义了通信双方建立一个共享的验证密钥所必须采取的步骤。IKE利用ISAKMP语言对这些步骤以及其它信息交换措施进行表述。
IKE的用途就是在IPSec通信双方之间,建立起共享安全参数及验证过的密钥,亦即建立“安全关联”关系。
图12.9 IKE的用途
IKE是一种常规用途的安全交换协议,可用于策略的磋商,以及验证加密材料的建立,适用于多方面的需求SNMPv3、RIPv2、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,分别用于入站和出站通信。第二条消息还为响应方提供在场的证据;第三条消息为发起方提供在场的证据。
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阶段一存在两种模式: 第三次交换 用于验证对方的身份。身份值是以加密的IPSec对等体的IP地址。 IKE SA为IKE指定下列参数值: 认证方法{Pre-Share|RSA签名|RSA加密}
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均可以各自独立设置 |