IKE协议与实现_第1页
IKE协议与实现_第2页
IKE协议与实现_第3页
IKE协议与实现_第4页
IKE协议与实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、IKE协议与实现一、IKE的作用当应用环境的规模较小时,可以用手工配置SA;当应用环境规模较大、参与的节点位置不固定时,IKE可自动地为参与通信的实体协商SA,并对安全关联库(SAD)维护,保障通信安全。二、IKE的机制IKE属于一种混合型协议,由Internet安全关联和密钥管理协议(ISAKMP)和两种密钥交换协议OAKLEY与SKEME组成。IKE创建在由ISAKMP定义的框架上,沿用了OAKLEY的密钥交换模式以及SKEME的共享和密钥更新技术,还定义了它自己的两种密钥交换方式。IKE使用了两个阶段的ISAKMP:第一阶段,协商创建一个通信信道(IKE SA),并对该信道进行验证,为双

2、方进一步的IKE通信提供机密性、消息完整性以及消息源验证服务;第二阶段,使用已建立的IKE SA建立IPsec SA(如图1所示)。IKE共定义了5种交换。阶段1有两种模式的交换:对身份进行保护的“主模式”交换以及根据基本ISAKMP文档制订的“野蛮模式”交换。阶段2 交换使用“快速模式”交换。IKE自己定义了两种交换:1为通信各方间协商一个新的DiffieHellman组类型的“新组模式”交换;2在IKE通信双方间传送错误及状态消息的ISAKMP信息交换。1主模式交换主模式交换提供了身份保护机制,经过三个步骤,共交换了六条消息。三个步骤分别是策略协商交换、DiffieHellman共享值、n

3、once交换以及身份验证交换(如图2所示)。2野蛮模式交换野蛮模式交换也分为三个步骤,但只交换三条消息:头两条消息协商策略,交换DiffieHellman公开值必需的辅助数据以及身份信息;第二条消息认证响应方;第三条消息认证发起方,并为发起方提供在场的证据(如图3所示)。3快速模式交换快速模式交换通过三条消息建立IPsec SA:头两条消息协商IPsec SA的各项参数值,并生成IPsec 使用的密钥;第二条消息还为响应方提供在场的证据;第三条消息为发起方提供在场的证据(如图4所示)。4新组模式交换通信双方通过新组模式交换协商新的Diffie Hellman组。新组模式交换属于一种请求/响应交

4、换。发送方发送提议的组的标识符及其特征,如果响应方能够接收提议,就用完全一样的消息应答(如图5所示)。5ISAKMP信息交换参与IKE通信的双方均能向对方发送错误及状态提示消息。这实际上并非真正意义上的交换,而只是发送单独一条消息,不需要确认(如图6所示)。三、IKE的安全1机密性保护IKE使用DiffieHellman组中的加密算法。IKE共定义了五个DiffieHellman组,其中三个组使用乘幂算法(模数位数分别是768、1024、1680位),另两个组使用椭圆曲线算法(字段长度分别是155、185位)。因此,IKE的加密算法强度高,密钥长度大。2完整性保护及身份验证在阶段1、2交换中,

5、IKE通过交换验证载荷(包含散列值或数字签名)保护交换消息的完整性,并提供对数据源的身份验证。IKE列举了四种验证方法:1预共享密钥;2数字签名;3公钥加密;4改进的公钥加密。3抵抗拒绝服务攻击对任何交换来说,第一步都是cookie交换。每个通信实体都生成自己的cookie,cookie提供了一定程度的抗拒绝服务攻击的能力。如果在进行一次密钥交换,直到完成cookie交换,才进行密集型的运算,比如DiffieHellman交换所需的乘幂运算,则可以有效地抵抗某些拒绝服务攻击,如简单使用伪造IP源地址进行的溢出攻击。4防止中间人攻击中间人攻击包括窃听、插入、删除、修改消息,反射消息回到发送者,重

6、放旧消息以及重定向消息。ISAKMP的特征能阻止这些攻击。5完美向前保密完美向前保密(PFS),指即使攻击者破解了一个密钥,也只能还原这个密钥加密的数据,而不能还原其他的加密数据。要达到理想的PFS,一个密钥只能用于一种用途,生成一个密钥的素材也不能用来生成其他的密钥。我们把采用短暂的一次性密钥的系统称为“PFS”。如果要求对身份的保护也是PFS,则一个IKE SA只能创建一个IPsec SA。四、IKE的实现IKE是一个用户级的进程。启动后,作为后台守护进程运行。在需要使用IKE服务前,它一直处于不活动状态。可以通过两种方式请求IKE服务:1当内核的安全策略模块要求建立SA时,内核触发IKE

7、。2当远程IKE实体需要协商SA时,可触发IKE。1IKE与内核的接口内核为了进行安全通信,需要通过IKE建立或更新SA。IKE同内核间的接口有:1、同SPD通信的双向接口。当IKE得到SPD的策略信息后,把它提交给远程IKE对等实体;当IKE收到远程IKE对等实体的提议后,为进行本地策略校验,必须把它交给SPD。2、同SAD通信的双向接口。IKE负责动态填充SAD,要向SAD发送消息(SPI请求和SA实例),也要接收从SAD返回的消息(SPI应答)。2IKE 对等实体间接口IKE为请求创建SA的远程IKE对等实体提供了一个接口。当节点需要安全通信时,IKE与另一个IKE对等实体通信,协商建立

8、IPsec SA。如果已经创建了IKE SA,就可以直接通过阶段2交换,创建新的IPsec SA;如果还没有创建IKE SA,就要通过阶段1、2交换创建新的IKE SA及IPsec SA。一、总体设计IPsec规定的组件包括安全协议验证头(AH)和封装安全载荷(ESP)、安全策略数据库(SPD)和安全关联数据库(SAD)、IKE密钥交换及加密和验证算法。1.总体结构如图1所示,IPsec实现的总体结构分为IPsec协议引擎、策略管理、IKE密钥交换及密码变换4个模块。其中IPsec安全协议的处理是数据流程的核心,策略管理模块为其直接提供所需参数,IKE密钥交换用于自动管理SAD,而密码算法是达

9、到安全的基本工具。2.功能分配策略管理:位于内核中,管理SPD和SAD,对数据包(要进行IPsec处理的数据报或数据包的统称)的安全保障起决定作用。功能包括SPD和SAD的管理(记录的增加、删除、修改、刷新和查询)、同IPsec协议引擎的接口和同IKE的接口。IPsec协议引擎:位于内核中,实现安全协议AH和ESP。功能包括外出数据包的处理、进入数据包的处理、同IP层和TCP层的接口。IKE密钥交换:一个用户级进程,用于动态管理SAD。功能包括IKE间的交互、同SAD和SPD的接口。密码算法:至少应实现AES、DES、3DES、HMAC-MD5、HMAC-SHA1。二、 实现策略管理模块和协议

10、引擎1.策略管理模块(1)SPD和SAD在内存中的组织和管理IPsec系统所使用的策略库一般保存在一个策略服务器中。该服务器为域中的所有节点(主机和路由器)维护策略库。各节点可将策略库拷贝到本地,也可使用轻型目录访问协议(LDAP)动态获取。从名义上说,一个IPsec系统中SPD分为进入SPD和外出SPD,均处于内核中。系统初始化时,将策略库中的每一条记录分别装入进入SPD和外出SPD中。为了确保SPD的有效性和安全性,应定期进行更新和刷新。SAD的每一条记录对应一个SA。SA经IKE协商得到,并以有序散列链表的形式组织。从名义上说,SAD也分为进入SAD和外出SAD,分别与进入散列链表和外出

11、散列链表相对应。进入散列链表用SA中的IPsec源地址计算散列值,外出散列链表用SA中的IPsec目的地址计算散列值。SA的维护视SA的建立方式而定。如采用自动方式协商SA,则根据SA生存期的状态和序号计数器的溢出标志来决定SA的有效性。生存期分为软生存期和硬生存期。软生存期状态决定发送方是否可用SA发送数据包,硬生存期状态决定接收方是否可用SA来处理收到的数据包。当一个SA的软生存期期满时,发送方不能继续用其来发送数据包,此时,可以启动或触发IKE再协商一个。使用软、硬生存机制可保证通信的持续性。如采用手工方式建立SA,则不存在生存期,仅根据序号计数器的溢出标志来决定SA的有效性。如SPD或

12、SAD过于庞大,则可将一部分置于用户空间。(2)SPD和SAD间的关系对数据包进行IPsec处理时,要查询SPD和SAD。为了提高速度,SPD的每一条记录都应有指向SAD中相应记录的指针,反之亦然。对于外出处理,先查询SPD,获得指向SA的指针,再在SAD查询进行处理所需参数。如SA未建立,则应使用IKE协商,并建立SPD和SAD间的指针。对于进入处理,先查询SAD,对IPsec包进行还原,取出指向SPD的指针,然后验证该包应用的策略与SPD中规定的是否相符。2.IPsec协议引擎(1)外出处理对于外出数据包,不论是本机产生的还是转发的,IPsec协议引擎要先调用策略管理模块,查询SPD,确定

13、为数据包应使用的安全策略。根据策略管理模块的指示,协议引擎对该数据包作出3种可能的处理(如图2所示):丢弃丢弃数据包,并记录出错信息。绕过给数据包添加IP头,然后发送。应用Ipsec调用策略管理模块,查询SAD,确定是否存在有效的SA。1存在有效的SA,则取出相应的参数,将数据包封装(包括加密、验证,添加IPsec头和IP头等),然后发送。2尚未建立SA,策略管理模块启动或触发IKE协商,协商成功后按1中的步骤处理,不成功则应将数据包丢弃,并记录出错信息。3存在SA但无效,策略管理模块将此信息向IKE通告,请求协商新的SA,协商成功后按1中的步骤处理,不成功则应将数据包丢弃,并记录出错信息。(

14、2)进入处理对于进入数据包,IPsec协议引擎先调用策略管理模块,查询SAD。如得到有效的SA,则对数据包进行解封(还原),再查询SPD,验证为该数据包提供的安全保护是否与策略配置的相符。如相符,则将还原后的数据包交给TCP层或转发。如不相符,或要求应用IPsec但未建立SA,或SA无效,则将数据包丢弃,并记录出错信息。三、分片和ICMP问题1解决分片和PMTU问题的建议外出的IP包长度如果超过网络接口的最大传输单元(MTU),则要进行分片处理。由于实施IPsec时,要增加一个或多个IPsec头,因此不能直接使用Linux中的PMTU(Path Maximum Transfer Unit)查找

15、。以下分主机实施和路由器实施2种情况来讨论分片和PMTU问题。主机实施IPsec时,可在传输层或IP层查找PMTU。由于主机不维护源路由,因此应在传输层维护端到端的PMTU信息。计算和确定IP包的长度时,要考虑IPsec的模式及AH头和ESP头的长度。对于路由器转发的数据包,如不允许分片,且长度超过了转发该数据包接口的MTU,路由器就应向始发主机发送一条控制消息协议(ICMP)不可到达消息。为有效利用网络带宽,应允许路由器决定是否可对数据包进行分片。2解决ICMP问题的建议ICMP用于Internet差错处理和报文控制。ICMP消息分为错误消息和查询消息。以端到端的方式使用IPsec时,不会影响ICMP,而以隧道模式来使用IPsec,则会影响ICMP错误消息的处理。这是因为ICMP错误消息只能发送数据包的外部IP头及其后的64比特数据,内部IP头的源地址不会在ICMP错误

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论