IKE协议

2024-05-20

IKE协议(共4篇)

IKE协议 篇1

0 引言

在开放性的网络体系中, 进行秘密、敏感信息传递时, 首先要求通信双方拥有共享密钥, 才能够按照安全性需求对数据进行机密性、完整性和身份认证保护。为了应对Internet密钥交换协议面临的复杂多样的网络威胁和攻击手段, 本文详细分析了IKE协议的基本思想和主要存在的四个方面的安全缺陷, 为采取更加有效的信息安全技术和方法, 堵塞可能的安全漏洞和隐患提供帮助, 从而满足日益增长的网络安全应用要求。

1 IKE协议的基本思想

IKE协议吸取ISAKMP协议、OAKLEY协议和SKEME协议各自的特点组合而成[1], 同时还重新定义了两种密钥交换方式[1]。

一次典型的IKE密钥协商交换可描述如下 (第一阶段采用主模式和公钥签名身份验证) :

(1) SA载荷交换, 协商认证算法、加密算法等, 交换Cookies对; (2) KE载荷, Nonce载荷交换, 提供计算共享密钥的有关参数信息。 (3) 通信双方分别计算共享密钥参数。 (4) 通信双方进行身份验证, 构建IKE SA; (5) 进行IPSec SA载荷和选择符信息交换, 协商IPSec SA的验证算法、加密算法, 计算IPSec SA密钥参数, 构建IPSec SA。

由上可知, IKE协议在两个通信实体间之间实现密钥协商的过程实际上分为2个阶段。第一阶段构建IKE SA, 第二阶段构建IPSec SA。

在第一阶段, 使用主模式或者积极模式, 建立IKE SA, 为通信实体之间建成安全的通信信道, 为第二阶段的密钥协商提供安全保护服务。

第二阶段, 使用快速模式, 依托第一阶段创建的IKE SA通信信道, 构建IPSec SA, 为通信双方之间的数据传输提供机密性、完整性和可靠性服务。

两个阶段的IKE协商相对增加了系统的初始开销, 但是由于第一阶段协商建立的SA可以为第二阶段建立多个SA提供保护, 从而简化了第二阶段的协商过程, 结合第二阶段SA协商总体数量较多的实际, 仍然是节约了系统的资源。

在第一阶段, 当需要对协商双方提供身份保护时使用主模式相对安全一些, 而积极模式实现起来简单一些, 却无法提供身份保护服务;第二阶段使用的快速模式, 在一个IKE SA的保护下可以同时进行多个协商;新组模式允许通信双方根据安全性要求协商私有Oakley组, 但新组模式既不属于第一阶段也不属于第二阶段, 且必须在第一阶段完成后方可进行。

2 IKE协议的交互流程

第一阶段主模式或积极模式中, 都支持数字签名、预共享密钥和公钥加密等身份认证方法。不同的身份认证方式, 身份认证的原理不同, 传递的密钥协商交换消息也有所不同。其中, 数字签名认证是利用公钥加解密原理, 由通信双方生成数字签名信息, 再由另一方对数字签名信息进行解密、比较, 实现对通信双方的身份认证;预共享密钥认证是利用对称密钥加解密原理, 由通信双方利用私钥对认证内容计算hash值, 再将hash值发送给对方进行解密、比较, 完成身份认证;公钥加密认证仍然是利用了公钥加解密原理, 与数字签名认证不同的是, 由通信双方利用对方的公钥分别加密身份识别负载和当前时间负载的数据部分, 然后根据对方返回的结果以确定对方的身份。公钥加密认证方式有两种, 区别在于加解密的次数不同。

下面, 我们以数字签名为例, 说明2个阶段的具体协商流程。

2.1 第一阶段密钥生成

使用数字签名验证的主模式描述如下:

使用数字签名认证的积极模式描述如下:

在主模式和积极模式中, SIG_X (X取I或R) 是对HASH_X应用协商的数字签名算法所产生的数字签名数据。

2.2 第二阶段密钥生成

每个快速模式可交换一个KE载荷生成D-H密钥, 为实体间的数据流提供保护。快速模式交换的信息必须由IKE SA保护——即除了ISAKMP报头外, 所有的负载都要加密, 在IKE SA保护下, 快速模式能够提供完美向前保密服务, 即PFS (Perfect Forward Secrecy) 服务:指当攻击者得到一个泄漏的密钥时, 只能破解使用这个密钥加密的数据。快速模式, 主要用于衍生新的密钥和协商IPSec SA的共享策略。

快速模式消息交换过程如下:

以上交换的hash函数分别是:

3 IKE协议的安全缺陷

目前针对IKE协议的安全性分析结果非常多, 已发现的安全问题和隐患也非常多, 归纳起来主要有以下几类。

3.1 拒绝服务 (Do S) 攻击

拒绝服务 (Do S) 攻击是一种针对某些服务可用性的攻击, 是一种通过耗尽CPU、内存、带宽以及磁盘空间等系统资源, 来阻止或削弱对网络、系统或应用程序的授权使用的行为[2]。更加形象直观的解释, 是指攻击者产生大量的请求数据包发往目标主机, 迫使目标主机陷入对这些请求数据包的无效处理之中, 从而消耗目标主机的内存、计算资源和网络带宽等有限资源, 使目标主机正常响应速度降低或者彻底处于瘫痪状态。Do S攻击是目前黑客常用的攻击方式之一。在Internet密钥交换协议中, 由于响应方要占用CPU和内存等进行大量的密集的模幂等复杂运算, 而其存储和计算能力是有限的, 鉴于这一瓶颈问题的制约, 极易遭到Do S攻击。

虽然Internet密钥交换协议采用了Cookie机制, 可在一定程度上防止Do S攻击, 但Cookie数据的随机性又极大的制约了其作用的发挥[3]。同时, 更有分析认为Internet密钥交换协议的Cookie机制会导致更加严重的Do S攻击。因为协议规定Internet密钥交换的响应方必须对已经验证过的合法Cookie建立SA请求予以响应, 攻击者可以利用这一规定, 直接复制以前的ISAKMP消息, 不更改其Cookie数值并发送给响应方, 而响应者需要大量CPU时间的运算后才能判别出发起者是非法的, 从而无法从根本上防止Do S攻击。

3.2 中间人攻击

中间人攻击是指通信实体在通信时, 第三方攻击者非法介入其中并与通信双方建立会话密钥, 作为真实的通信实体间消息通信的中转站, 从而共享通信实体双方的秘密信息。中间人攻击的方法主要是对消息进行篡改、窃听, 重定向消息以及重放旧消息等[4], 是一种攻击性很强的攻击方式, 属于主动攻击方式的一种[5]。

图3.1详细描述了中间人攻击[6], 当Initiator与Responder进行D-H算法密钥交换时, Initiator计算并发送公钥X, Attacker窃取X, 并假冒Responder发送公钥Z给Initiator, 从而完成一次D-H密钥交换, 双方之间共享了一个密钥。同理, Attacker和Responder之间也可以共享一个密钥。这样, 当真正的通信双方进行信息交换时, 所有数据都经由Attacker中转, 而不会被发觉。

IKE协议的身份验证机制可以有效防止中间人攻击, 但仍有一些缺陷。

3.3 身份隐藏保护缺陷

IKE协议第一阶段有两种模式、四种认证方式, 其中一个主要目的就是要能够提供发起方和响应方的身份隐藏保护功能, 但是在积极模式下的数字签名认证和预共享密钥认证, 以及主模式下的数字签名认证都无法提供身份隐藏保护。例如, 在第一阶段主模式协商的数字签名认证方式中, 一个主动攻击者就可以伪装响应方的地址并与发起方协商D-H公开值, 从而获得发起方的身份信息[7]。

一般来说, 在无法同时保护通信双方身份的情况下, 要优先考虑隐藏发起方的身份。因为绝大多数的响应方在IKE交换中都是作为服务的一方, 而服务器的身份信息一般是公共的, 所以可以认为保护发起方的身份要比保护响应方的身份要更为重要[8]。

3.4 其它安全缺陷

除了以上的安全缺陷外, IKE机制还存在一些其它的问题, 如难以抗重放攻击、新组模式定义多余等。

重放攻击是指攻击者采取网络数据包提取等技术手段, 对发起方和接收方之间的通信数据进行窃听或者截取, 获得通信双方之间的任意消息, 然后将该消息重新发送给接收方, 从而消耗网络资源, 甚至瘫痪通信网络。在整个Internet密钥交换过程当中, 通信双方都需要保存部分交换信息用来记录数据交换情况, 同时, 当Cookies对建立以后, 数据状态信息可以用来表示数据交换状态。此时, 第三方攻击者利用网上截获的正常数据包进行重新发送, 或者攻击者截获Cookies对后伪造假消息, 由于该Cookies对是真实的, 通信实体双方仍然会对伪造的假消息进行处理, 甚至再次解密消息, 或者由于无法正常解密, 从而发现消息不真实。这样会使系统被迫处理大量无效的操作, 降低处理效率, 浪费大量系统计算和存储资源。

4 结论

本文详细分析了IKE协议的基本思想和主要存在的四个方面的安全缺陷, 认为必须深入分析Internet密钥交换协议面临的复杂多样的网络威胁和攻击手段, 采取更加有效的信息安全技术和方法, 不断改进Internet密钥交换协议, 堵塞可能的安全漏洞和隐患, 从而满足日益增长的网络安全应用要求。

参考文献

[1]D.Harkins, D.Carrel.Internet key exchange.RFC 2409, Nov 1998.

[2]William Stallings, Lawrie Brown.计算机安全原理与实践.北京:机械工业出版社, 2008:166~180.

[3]黄永锋.IKE协议改进及其实现框架[硕士论文].镇江:江苏大学.2005.

[4]张红旗.信息网络安全.北京:清华大学出版社, 2002:106~107.

[5]William Stallings著.网络安全要素——应用与标准.北京:人民邮电出版社, 2000.

[6]陈文贵.IKE协议分析与实现[硕士论文].成都:西南交通大学.2005.

[7]王文煜.IKE协议研究与实现[硕士论文].成都:电子科技大学.2003.

[8]谢方军, 谢春利, 高志.IKE协议分析及改进.通信技术.2003 (11) :103~104.

IKE协议 篇2

在网络安全系统中作为IPSec的一个配套组件,密钥交换协议IKE通常负责处理管理相关命令并将结果反馈给用户,同时与进行通信的两端进行商榷处理密码系统PFS(即perfect forward secrecy的缩写)进行交互并构建出适合当地配置情况的安全控制规则,这样的管理性质就决定了密钥管理是网络安全系统中最为重要的一个环节,同时也是最容易遭受到攻击的一个环节,密钥管理过程中从产生,到分配,到载入,到分组,到数据更替,乃至注销的种种运行步骤无一不是网络安全防护中的重点所在。

1 IKE协议基础概念理论归纳

在IPSec密钥协议的整体运行中,IKE的最终目的是建立起相对安全的关联信道,并维护这条安全信道的安全运行,这条信道通常被称做安全关联,简称为SA,即security association的缩写,也可以把SA简单理解为IKE协议构成的最基本单位。SA是通过某种安全协定或某种安全规则为连接的双方提供的一种连接模式,常见的有:密钥加密人证方式,协议数据保护,IPSec类型加密计算等等。在自动(IKE协议自动建立)或手动建立起的SA中,流量数据是安全的,但这个安全范围是有方向性的,也就是说,一条完整的SA是拥有载入和输出两条各自独立的两条信道的。而当SA建成后,关于SA所建成的安全协定或安全规则都会分别备份在连接双方各自的安全关联数据库内,而这个安全关联数据库被称为SADB,即Secruity Association Database的缩写。而在一套完整的IKE协议构成时都会同时存在着若干条SA,这些SA是通过安全参数索引,简称为SPI,即Security Parameters Index的缩写来进行排序分辨的,为了更清晰明确的注释每条SA的源头和所包含的相关协议,每条SPI的注释基本都是32比特(即32bit,每个字节等于8bit,在二进制传输过程中每个二进制数中所囊括的数据量被记做1bit)的整数倍.而在常规的IKE协议体系中,会存在一个比较尴尬的问题,就是在IPSec建立的初始阶段密钥被盗取或被破解[1],那么由它发起的一系列IKE密钥体系都会被逐步瓦解,为了解决这一可能行,通常会采用一种分阶段生成密钥的方式来提高整体IKE体系的安全等级,这样每个阶段的密钥都是相对独立的,通常把这种密钥生成方式称为“完美向前保密”,简称为PFS,即perfect forward secrecy的缩写。

2 IKE协议工作职能及结构分析

在IPSec协议中密钥管理协议IKE通常是充当“守护者”的职能,其具体工作包括如下:第一、在安全的环境下分配管理通信双方的处理指令并将相应的结果反馈给双方;第二、与通信双方达成共识,建立一套完成的SA体系;第三、完成安全关联数据库SADB中对应SA细则的标识,并完成与安全参数索引SPI的相互关联;第四、对一切囊括在IKE信道中所产生的相关信息流进行比对处理;第五、根据实际情况构建适宜的密钥控制规则及对策。

从以上归纳的五点IKE主要工作职能来看,通常的IKE协议结构中至少要包含以下部分:总系统控制版块、相关信息流验证版块、相关信息流控制版块、对IKE协议进行高端控制(比如更新,细节查询,细节协议更改等)的统一通道、与SADB进行互通信息的通道。

3 关于IKE协议协商方式的分析

在IPSec协议中密钥管理协议IKE的协议协商通常是通过两个阶段来完成的。首先,由IKE协议提出一个以双方安全为目的的协议验证通道,在这个SA建立完成后,其他相关的协议协商问题都可以通过它来完成,而在其中由IKE提出的这个协议严整通道,我们通常称为主模式交换通道,即Main mode sa,简称MMS,这被看成IKE密钥生成的第一阶段[2];其次,由预备通信的双方(或其中之一)发起一个以安全服务为目的的通道,当SA完成后主要用来维护整体IPSsec的安全性,这被看成IKE密钥生成的第二阶段。

4 IKE协议的安全基理分析

4.1 针对IPSec的攻击类型分析

针对IPSec层面的攻击模式通常可归纳为拒绝服务类型攻击,攻击方通常会在IP层面上完成部分的状态转移攻击动作,而承载攻击方会被暂时性或永久性的孤立,这样就达到了攻击方大量消耗目标系统资源的攻击目的。当攻击效应叠加到一定程度时,可达到目标系统内所有正常用户无法进行正常操作的效果。而由于各系统的资源量(内存和CPU的资源总和)存在数量等级上的差异,所以攻击方往往是以尽量高的消耗目标资源方式进行的。常见的攻击方法有两种。第一种:攻击方跟踪SA的发起方传输出的数据流到达接收方,从而获取到接收方的位置以及双方的通信协议,然后对获取的通信协议包进行伪装(内容通常为随机产生的),当接收方对发起方的数据流进行反馈后,攻击方对反馈数据流进行跟踪,而在发起方再次回复信息之前,攻击方将伪造好的数据包提前传输给接收方,接收方会误以为是发起方的反馈信息而接受,攻击完成[3];第二种,攻击方模拟任意IP与接收方进行申请建立SA连接,当接收方进行验证时,攻击方取消申请协议而进入当机状态,然后高速重复这一步骤,在申请→取消→当机的环节中无限循环,由于系统对所建立的SA数量是有严格限制的,所以当这样的操作垒加到一定湖量后,常规用户就无法进行正常的连接服务。

4.2 IKE应对基理分析

针对上述这样通过消耗系统资源而完成拒绝服务类型的攻击来说,IKE协议通常采用的应对策略如下,第一种应对策略,也就是最常规的应对方式,就是采用在第二阶段的信息流中多加出一条认证信息码,这条认证码是用来解读响应方的私钥程序的,这样响应速度虽然受到一些影响,但响应方只需要存储少量的私钥验证参数进行对非法攻击信息流的辨别;同时在只后的信息流交换过程中,从响应方反馈出的信息流中也同样加入私钥认证码,用这样分阶段,独立的密钥结构来从根本上防护攻击方对某一阶段密钥的破译;第二种应对策略,如前文所说,针对攻击方的攻击点总是在SA认证的过程、通过“消耗”的手段来使响应方的常规请求处在处理中或等待状态这一攻击特性,IKE协议会采用在某一点的主服务器上记录响应方和发起方的状态参数,这种不在目标点的服务器上保存交换信息参数的方式,通常被称为“无状态连接方式”。在这个过程中对目标点服务器进行私钥加密的仍然是一个发起方和响应方所共知的密钥,但进行相互的信息交换并非是通过双方的直接连线完成的,而是重复通过第三方服务器进行消息存储→消息提取的工作,这样则大大提高了IPSec的安全程度。

5 结论

文章对密钥管理中IKE协议的安全基理进行了剖析,虽然IKE协议只是IPSec中的一个组成部分,但从网络安全的角度来看,IKE协议有很大脱离集成,成为“独立”软件的趋势,因此本研究对网络通信的完善具备极其现实的意义。

参考文献

[1]肖现华,石风刚.基于密钥管理和安全认证的网络预付费系统研究[J].微计算机信息,2011.3.

[2]张斌,高波.Linux网络编程[M].清华大学出版社,2004.

IKE协议 篇3

IKE以受保护的方式为通信双方实行SA的协商过程并提供经认证的密钥信息, 它是一种混合协议, 建立在由Internet安全联盟和密钥管理协议 (ISAKMP) 定义的一个框架上, 同时使用了部分的Oakley和SKEME密钥交换协议。Oakley是一种自由形态的协议, 允许通信各方根据本身的速度来改进协议状态。IKE借鉴了Oakley不同“模式”的思想, 并对其进行规范, 形成了正规的密钥交换协议。SKEME则是另外一种密钥交换协议。IKE直接借用了其“公共密钥加密认证”方法, 同时也借用了快速密钥刷新的概念, 只是没有涉及“完美前向保护 (PFS) ”。因此, ISAKMP、Oakley和SKEME三个协议共同构成了IKE的基础, 使得IKE形成了独自的认证加密材料生成技术和协商共享策略。

IKE利用ISAKMP语言来定义密钥交换, 它是一种对安全服务进行协商的一种手段。事实上, IKE定义了许多交换方式, 以及相关的选项。IKE交换的最终结果是一个通过认证的密钥以及建立在双方认可基础上的安全服务, 即“安全关联 (SA) ”。IKE使用了两个阶段的ISAKMP。第一阶段建立IKE SA, 第二阶段利用这个既定的SA, 为IPSec VPN协商具体的SA。在第一阶段中, IKE定义了两种交换模式, 分别称为“主模式”和“野蛮模式”。无论是哪种模式, 它们都将完成如下事情:建立一个保密和认证无误的通信通道, 即IKE SA, 和经认证的密钥, 它为通信双方的IKE通信提供机密性、消息完整性、消息源认证服务。在IKE第一阶段的实现中, 贯穿于整个交换的关键选择是“认证方法”, 认证方法决定了通信双方如何交换载荷以及在何时交换。认证的最主要目的是为了避免与未经过认证的用户建立传输隧道连接。为了通过认证, IKE通信设备使用标准认证ID类型进行认证:IPv4或IPv6地址、主机名 (完全合格域名 (FQDN) ) 、电子邮件地址 (User FQDN) 、X.500识别名 (Distinguished Name (DN) ) 。在一个点对点的VPN中, 认证使我们及时发现伪装为VPN网关的攻击者。在远程访问VPN中, 认证使我们及时禁止伪装成合法用户的入侵者访问。IKE可以接受的认证方法包括:预共享密钥 (PSK) 、基于数字签名的认证、基于标准的公钥加密认证和基于修订过的公钥加密认证。下面针对IKE两种交换模式结合具体的认证方法来分析不同认证方式的安全性问题及如何选择认证方式。

1 主模式交换

主模式交换总共用了三个步骤、六条消息, 最终建立了IKE SA。这三个步骤分别是模式协商, 一次Diffie-Hellman交换和nonce交换、双方身份的认证。主模式设计的意图是将密钥交换信息与身份、认证信息分离。这种分离保护了身份信息, 避免了中间人窃听双方身份的行为, 满足了通信双方希望隐藏自己身份的安全要求。身份信息通过生成的DiffieHellman共享密钥得以保护。认证方法会影响交换载荷的结构甚至会影响它们在交换信息中的位置。

(1) 若采用“预共享密钥 (PSK) ”认证方式, 则主模式交换的消息如下图所示:

第一回合的交换, 双方协商IKE SA的各项参数, 包括加密算法、散列算法、认证方法以及Diffie-Hellman组。所有协商的参数被称为“保护套件”。在第二回合的交换中, 双方相互交换Diffie-Hellman公共值 (生成共享密钥的材料) 以及伪随机数nonce。这个交换回合的结果, 使得双方能生成用以加密消息的公共密钥并生成SKEYID状态.。对“预共享密钥”认证方式来说, SKEYID=PRF (预共享密钥, Ni|Nr) , 其中的PRF通常是双方协商好的散列函数的HMAC版本。由SKEYID, 可得如下数据:

在第三回合的交换中, 双方相互给对方传递身份信息和散列值, 身份信息和散列值用第二回合中生成的SKEYID_e加密。在整个三回合的交换中, 前面两个回合的四条消息都是明文传递, 而最后回合的两条消息是加密的。在采用“预共享密钥”的主模式交换中存在一个被公认的局限性, 即在使用“预共享密钥”做认证时, 只能建立在对方的IP地址的基础之上, 这是因为“预共享密钥”是一种带外携带密钥, SKEYID_e必须在身份消息交换之前使用, 通信双方必须为通过IP地址已知的对方维护该预共享密钥。当通信双方彼此都已知对方IP地址的连接状态下, 该局限性不会构成问题。但在远程访问的通信状态下, 协议连接的发起者来自一个IP地址, 而该IP地址事先是无法知道的, 这样便会出现一个问题, 即响应者不可能为事先尚不知道的对方维护一个“预共享密钥”。所以, 在远程访问的连接情况下, 可以使用其它认证方式而不是使用“预共享密钥”认证。如果一定要使用“预共享密钥”认证, 则可以在第一阶段交换模式中考虑使用“野蛮模式”。

(2) 若采用“基于数字签名”的认证方法, 则主模式交换的消息如下图所示。

在该方法中, 双方可以从数字证书中获得对方的公钥。IKE允许证书的相互交换, 也支持在远程访问的连接情况下, 索取对方的证书, 从而避免了“预共享密钥”认证方式的局限性。与预共享密钥不同之处在于出现了可选载荷, 认证是通过数字签名完成, 而不仅是一个散列值, 签名算法可以采用DSS或RSA。[Cert_Reg]载荷表示请求证书, [Cert]表示证书。由于数字签名是无法抵赖的, 所以通信双方只要任意一方保留了IKE交换对应的状态, 它就可以证明自己确实参与了某一个特定的通信。

(3) 若采用“标准的公钥加密”认证方法, 则主模式交换的消息如下图所示。

从图中可看出, 在第二回合的交换中, 存在{}PubKey_x, 它表示用“x”的公钥对身份信息和随即数nonce信息进行加密。在发起者一方, 就是用响应者的公钥对发起者身份信息和nonce信息进行加密;在响应者一方, 就是用发起者的公钥对响应者的身份信息和nonce信息进行加密。所以, 双方身份信息的交换在这一回合中完成并得到确认。在第三回合的交换中, 双方交换HASH_I值和HASH_R值, 从而完成对交换的认证。这两个值被第二回合交换中生成的共享密钥加密, 其中:

这种主模式交换存在一些问题:首先, 在第二回合的交换之前, 双方必须进行两次独立的开销较大的公钥加密, 降低了效率。第二, 存在容易抵赖的特性, 即通信双方对某次交换的参与行为均可以否定。其根本原因就是双方对身份信息和随机数nonce的加密都采用了对方的公钥, 而公钥对任何人来讲都可以获得。第三, 不允许证书的请求或交换, 证书的请求和交换会导致身份保护功能的失效。

(4) 若采用“修订过的公钥加密”认证方法, 则主模式交换的信息如下图所示。

在第二回合的交换中, 双方各自用对方的公钥对随即数nonce进行了一次公钥算法的加密运算, 效率比上述的“标准公钥加密认证方法”提高了一倍。针对密钥材料信息和身份信息都采用了对称密钥加密算法。Ke_i和Ke_r是两个对称加密的密钥, 它们分别来自于Ne_i和Ne_r, 其中:

此外, 作为可选项, 发起者还可向响应者出示一份证书。至于发起者如何获得响应者的证书当然需要通过IKE之外的方法。

2 野蛮模式交换

野蛮模式交换与主模式交换类似, 也在通信双方间建立一个经认证的安全关联和密钥, 随后可用IKE为其它安全协议建立安全关联。但野蛮模式交换被设计用于不需要对通信双方身份进行保护的应用场合。这个交换允许同时传送SA、密钥材料和认证相关载荷, 将这些载荷组合到一个消息中减少了来回消息的数量。由于对消息的数量进行了限制, 野蛮模式也限制了它的协商能力。这主要表现在如下几个方面, 其一, 由于发起者必须在第一条消息中提供它的SA、DiffieHellman公共值、nonce值, 响应者对此可以选择接受或拒绝。如果选择拒绝, 它将不能进一步提供不同的SA内容, 如DiffieHellman组。其二, 若双方希望在加密的nonce基础上提供认证信息, 那么nonce必然是惟一能提供的信息 (从以下的各种认证方式下的野蛮模式交换方式可看出) 。因为nonce必须先加密才能进行交换, 这就决定了响应方必须使用同样的加密算法来解密nonce, 从而计算出认证所需的散列值。其三, 若双方欲使用加密nonce的修订方法来进行身份认证, 便不能用不同的加密或散列算法选项来提供多个保护套件。

所以, 野蛮模式的功能非常有限。但是在有些特殊的应用场合下, 我们还是需要使用它的。例如, 在远程访问的应用环境下, 若通信双方皆采用“预共享密钥”的认证方式, 由于发起者的IP地址是动态获得的, 事先不可能被响应者知道, 因而响应者不可能为一个预先并不知道的IP地址维持一个预共享密钥。在这种情况下, 尽管可以使用其它认证方式, 但如果必须使用预共享密钥认证方式, 那么野蛮模式就是一种惟一可行的交换方法。此外, 如果发起者事先已知响应者的安全策略, 那么利用这种交换方式, 它们就能快速地创建IKE SA。

以下是基于四种认证方式, 在野蛮模式下的信息交换:

(1) “预共享密钥”认证方式

(2) “基于数字签名”的认证方法

(3) “标准的公钥加密”认证方法

(4) “修订过的公钥加密”认证方法

3 为你的IPSec VPN选择认证方式

为你的IPSec VPN选择最恰当的认证方式需要考虑很多因素, 包括涉及到通信终端的数量、类型、现有的认证证书以及认证数据库 (如果有的话) , 互用性需求, 公共安全政策以及风险限度。

“预共享密钥” (PSK) 是最容易生成且最容易协调的VPN“证书”, 它类似于普通的密码, 容易受社会工程陷阱 (social engineering) 的攻击, 同时, 有效ID和PSK值很容易与攻击者共享。PSK太短或简单, 相对来说太容易被猜到, 所以类似于ikecrack的工具能够自动攻击它。显然, 用相同的PSK来认证每一对通信的终端双方是一种非常冒险的方法。所以利用较长的、随机的、仅单个管理员知道的PSK认证网关相对于认证通信的终端用户双方而言安全得多。因此如果在必须使用PSK的场合下, 尽量避免与使用野蛮模式的相关ID连接。

生成和对小型组终端 (如适度的点对点VPN) 配置原始公共密钥并不难。该方法是通过公钥加密来保证安全性, 比PSK的安全性高很多, 但是这种方法很难衡量, 为多卖家的VPN提出了交互性问题。事实上, RFC 4109因为该方法缺少部署和方案已经从“should (应当) ”降级为“may (可能) ”。

数字签名是使用证书将私人认证与公共钥匙捆绑在一起, 该证书由公共认证机构CA发放。该方法不需要另向每个终端发放公共钥匙就可保证安全性。终端仅仅需要配置有CA发放的证书即可。RSA签名被众多VPN生产商支持;DSS相对使用范围较窄。数字签名的标准性很好, 已经有许多企业拥有公开密钥基础设施 (Public Key Infrastructure) 。然而, 没有建立证书认证平台的企业——特别是远程用户可能会认为该方法的开支过大。一些VPN产品已经有内置认证中心CA (或提供在线认证服务) , 这使证书管理更为便捷。

IKE的相互认证方式非常适合点对点方式的VPN环境, 却对传统的用户认证方式如CHAP、双因素认证不提供支持, 而这些方式却广泛地应用于远程登录。继而又有了扩展协议认证, 但该认证易受中间人攻击。所以不推荐使用它, 但为了增加双因素用户认证值, 有很多方法可以降低中间人攻击对扩展认证协议攻击的风险。例如, 使用带证书的IKE主模式, 为每个VPN网关发放惟一的证书, 为用户发放组证书。接着进行Secur ID认证来来验证个体用户。这样的方法可以在不需要管理每个用户证书的情况下, 阻止VPN网关欺骗以及PSK破解。

4 结语

通信设备类型、IKE交换模式和认证方法均取决于ID类型。比如VPN网关经常使用IP地址或 (为了更灵活) 完全合格域名 (FQDN) 。VPN主机经常使用User FQDN, 除了主模式/PSK, 该模式需要创始人的IP地址。对一些产品, 远程访问具有PSK组的VPN时, 可能将一系列IP看作一个ID, 或在挑战模式中使用一个组ID (FQDN) 。X.500 DNs仅仅用于数字证书认证。证书的altSubject Name属性中必须包含一个IP地址, 一用户名或一个邮件地址。

参考文献

[1]Anderson, R., Biham, E., Knudsen, L., Serpent:A Proposal for the Advanced Encryption Standard, .http://www.nist.ogv/aes, 1998.

[2].Harkings, D., Carrel, D., The Internet Key Exchange (IKE) .Request for Comments (RFC2409) , November 1998.

[3]Hunt, Craig, TCP/IP Network Administrator.O’Reilly and Associates Inc., 2nded., 1998.

[4]Kaliski, B., PKCS#7:Cryptographic Message Syntax Version 1.5.Request for Comments (RFC 2315) , March 1998.

[5]Krawczyk, H., SKEME:A versatile Secure Key Exchange Mecha-nism for Internet.IEEE Proceedings of Symposium on Network and Distributed Systems Security.1996.

IKE协议 篇4

关键词:IKE,IPSec,SA,协议,交互

IKE (Internet Key Exchange, 因特网密钥交换) 是IPSec体系结构中的一种主要协议。它属于一种混合型协议, 定义了一个密钥交换过程, 其包含了3个不同协议的有关部分:ISAKMP (密钥管理协议) 以及两种密钥交换协议OAKLEY和SKEME。

IKE协议的主要功能是管理密钥, 明确通信实体在通信时该如何认证彼此身份、怎样协商加密算法并创建共同使用的会话密钥。之后, IKE将把结果储存到SA里面, 方便以后AH以及ESP的使用。DOI将会为通过IKE进行协商SA的协议分配统一的标识符。

就主体功能和架构而言, IKE模块是一个应用层级功能模块, 其主要的功能就是, 实现SA的动态管理和更新;其主要的处理对象是SADB, 对SADB进行动态的更新和维护, 从而保障SA的动态管理。此外, IKE还需实现的功能有:用户管理配置命令的处理, IKE相关数据报文的处理, 以及IKE载荷的验证与加密。

就具体实现而言, IKE分两种状态进行工作。在IKE未激活之前, 其作为守护进程运行;只有在系统消息触发, IKE才会被激活, 进行主体的SA动态协商功能。对于IKE的激活, 其主要有两种方式。分别为:在IPSsec发送数据而未建立SA, 或者已经建立但SA业已过期需要更新的情况;与及当与远端对等实体进行SA动态协商的情况。在这两种情况下, IKE会被激活, 进行SA的动态管理和更新。

本文依照IPSec VPN系统中IKE实现的功能进行架构设计与实现, 把IKE功能模块划分成如图1所示的子功能模块。

在整个IKE功能模块中, IKE状态库功能模块是基础;IKE消息处理模块主要负责各类消息的响应, 一旦有消息到达, 相应的模块就会启动。IKE模块的核心功能是对数据进行验证, 响应数据所提交的报文, 及其构造请求。同时, IKE模块需要对IKE在运行过程中的参数以及SA的运行记录进行管理。

同时, 基于IKE的交互对象主要为内核的SADB, 而IKE其本身是一个应用层级协议, 本系统为IKE应用协议与内核设计了一个消息交互的接口-PFKEY 2协议。

PFKEY 2协议, 作为一个新设计的SOCKET协议簇, 与普通的套接口在使用上并无差别, 主要实现了可信任的密钥管理程序和系统内核密钥管理库之间的交互。IKE模块与内核的具体交互流程如下图2所示:

首先, 系统内核经过调用pfkey id进程, 向IKE发送消息, 消息分为两种:一种是已经过期的SA消息, 另一种是由SA所发起的请求。

IKE在接到消息后, 调用pfkey handle进程对消息进行处理, 该进程处理函数位于内核处理子模块Server.c中, 并且具有针对对不同类别的消息进行处理的能力。如果所接受到的消息为已经过期的SA消息, 则会对其采用过期消息处理方式进行处理, 否则的话一律按照SA请求消息进行处理。

在SA过期消息处理时, 首先判断该过期是SA硬过期消息还是SA软过期消息, 并对两种过期消息类别进行处理。该判断过程由过期消息判断函数delete_ipsec_sa () 来完成。

如果SA所发送的信息被判断为硬过期信息, IKE会在事件处理模块中记录相关的信息, 并且通过调用pfkey2_parse.c函数中的pfkey_delete_parese () 函数, 删除相应的信息。如果SA所发送的信息被判断为软过期信息, 也就意味着该信息仍旧可用, 但是必须在其成为硬过期信息前, 重新协商, 从而产生新的SA。IKE同样会在事件处理模块中记录相关内容, 并且调用Open Swan函数中的相关函数重新协商SA。在完成新SA协商后, 调用pfkey.c中的pfkey_update_parse () 函数, 向内核发出更新SA指令。

在SA请求消息处理时, 调用用Openswan中的相关模块进行新SA协商, 从而才形成新的SA。在完成新SA协商后, 调用pfkey.c中的pfkey_add_parese () 函数, 向内核发出添加新SA的指令。

创建PFKEY套接口语句:

在完成pfKey套接口后, 密钥管理会向系统发送注册消息, 并且加载ESP。

此外, 如果IPSec所需要的SA连接不存在, 其会向系统发送新的创建请求, 当新的创建完成后, 其会向系统发送添加信息, 在系统内核中添加新的SA。

实现的关键代码如下所示:

其中process_pfkey_register_response (buf) ;过程中通过下列语句注册ESP协议:

上一篇:可持续发展的下一篇:大学发展战略