IKE协议(因特网密钥交换协议)因特网密钥交换协议(IKE)是一份符合因特网协议安全(IPSec)标准的协议。它常用来确保虚拟专用网络VPN(virtualprivatenetwork)与远端网络或者宿主机进行交流时的安全。对于两个或更多实体间的交流来说,安全协会(SA)扮演者安全警察的作用。每个实体都通过一个密钥表征自己的身份。因特网密钥交换协议(IKE)保证安全协会(SA)内的沟通是安全的。因特网密钥交换协议(IKE)是结合了两个早期的安全协议而生成的综合性协议。它们是:Oakley协议和SKEME协议。因特网密钥交换协议(IKE)是基于因特网安全连接和密钥管理协议ISAKMP(InternetSecurityAssociationandKeyManagementProtocol)中TCP/IP框架的协议。因特网安全连接和密钥管理协议ISAKMP包含独特的密钥交换和鉴定部分。Oakley协议中指定了密钥交换的顺序,并清楚地描述了提供的服务,比如区别保护行为和鉴定行为。SKEME协议说明了密钥交换的具体方法。尽管没有要求因特网密钥交换协议(IKE)符合因特网协议安全(IPSec)的内容,但是因特网密钥交换协议(IKE)内的自动实现协商和鉴定、否则重发服务(请参考否则重发协议)、凭证管理CA(CertificationAuthority)支持系统和改变密码生成方法等内容均得益于因特网协议安全(IPSec)。Intenet密钥交换协议(IKE)是用于交换和管理在VPN中使用的加密密钥的.到目前为止,它依然存在安全缺陷.基于该协议的重要的现实意义,简单地介绍了它的工作机制,并对它进行了安全性分析;对于抵御中间人攻击和DoS攻击,给出了相应的修正方法;还对主模式下预共享密钥验证方法提出了新的建议;最后给出了它的两个发展趋势:JFK和IKEv2.Internetkeyexchange(IKE)istheprotocolusedtosetupasecurityassociationintheIPsecprotocolsuite,whichisinturnamandatorypartoftheIETFIPv6standard,whichisbeingadopted(slowly)throughouttheInternet.IPsec(andsoIKE)isanoptionalpartoftheIPv4standard.ButinIPv6providingsecuritythroughIPsecisamust.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:第一阶段,协商创建一个通信信道(IKESA),并对该信道进行验证,为双方进一步的IKE通信提供机密性、消息完整性以及消息源验证服务;第二阶段,使用已建立的IKESA建立IPsecSA(如图1所示)。IKE共定义了5种交换。阶段1有两种模式的交换:对身份进行保护的“主模式”交换以及根据基本ISAKMP文档制订的“野蛮模式”交换。阶段2交换使用“快速模式”交换。IKE自己定义了两种交换:1为通信各方间协商一个新的组类型的“新组模式”交换;2在IKE通信双方间传送错误及状态消息的ISAKMP信息交换。1.主模式交换主模式交换提供了身份保护机制,经过三个步骤,共交换了六条消息。三个步骤分别是策略协商交换、共享值、nonce交换以及身份验证交换(如图2所示)。2.野蛮模式交换野蛮模式交换也分为三个步骤,但只交换三条消息:头两条消息协商策略,交换公开值必需的辅助数据以及身份信息;第二条消息认证响应方;第三条消息认证发起方,并为发起方提供在场的证据(如图3所示)。3.快速模式交换快速模式交换通过三条消息建立IPsecSA:头两条消息协商IPsecSA的各项参数值,并生成IPsec使用的密钥;第二条消息还为响应方提供在场的证据;第三条消息为发起方提供在场的证据(如图4所示)。4.新组模式交换通信双方通过新组模式交换协商新的Diffie-Hellman组。新组模式交换属于一种请求/响应交换。发送方发送提议的组的标识符及其特征,如果响应方能够接收提议,就用完全一样的消息应答(如图5所示)。5.ISAKMP信息交换参与IKE通信的双方均能向对方发送错误及状态提示消息。这实际上并非真正意义上的交换,而只是发送单独一条消息,不需要确认(如图6所示)。三、IKE的安全1.机密性保护IKE使用组中的加密算法。IKE共定义了五个组,其中三个组使用乘幂算法(模数位数分别是768、1024、1680位),另两个组使用椭圆曲线算法(字段长度分别是155、185位)。因此,IKE的加密算法强度高,密钥长度大。2.完整性保护及身份验证在阶段1、2交换中,IKE通过交换验证载荷(包含散列值或数字签名)保护交换消息的完整性,并提供对数据源的身份验证。IKE列举了四种验证方法:1预共享密钥;2数字签名;3公钥加密;4改进的公钥加密。3.抵抗拒绝服务攻击对任何交换来说,第一步都是cookie交换。每个通信实体都生成自己的cookie,cookie提供了一定程度的抗拒绝服务攻击的能力。如果在进行一次密钥交换,直到完成cookie交换,才进行密集型的运算,比如交换所需的乘幂运算,则可以有效地抵抗某些拒绝服务攻击,如简单使用伪造IP源地址进行的溢出攻击。4.防止中间人攻击中间人攻击包括窃听、插入、删除、修改消息,反射消息回到发送者,重放旧消息以及重定向消息。ISAKMP的特征能阻止这些攻击成功。5.完美向前保密完美向前保密(PFS),指即使攻击者破解了一个密钥,也只能还原这个密钥加密的数据,而不能还原其他的加密数据。要达到理想的PFS,一个密钥只能用于一种用途,生成一个密钥的素材也不能用来生成其他的密钥。我们把采用短暂的一次性密钥的系统称为“PFS”。如果要求对身份的保护也是PFS,则一个IKESA只能创建一个IPsecSA。四、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对等实体通信,协商建立IPsecSA。如果已经创建了IKESA,就可以直接通过阶段2交换创建新的IPsecSA;如果还没有创建IKESA,就要通过阶段1、2交换创建新的IKESA及IPsecSA。