互联网密钥交换协议IKE(Internet Key Exchange) IPSec VPN执行协商任务的协议叫做互联网密钥交换协议IKE。IKE主要完成如下3各方面的任务: 1、对建立IPSec的双方进行认证(需要预先协商认证方式); 2、通过密钥交换,产生用于加密和HMAC的随机密钥; 3、协商协议参数(加密协议、散列函数、封装协议、封装模式和密钥有效期); IKE协商完成后的结果就叫做安全关联SA,也可以说IKE建立了安全关联。SA一共有两种类型,一种叫做IKE SA,另外一种叫做IPSec SA。 IKE SA:维护安全防护(加密协议、散列函数、认证方式、密钥有效期等)IKE协议的细节。 IPSec SA:维护安全防护实际用户流量(通信点之间的流量)的细节 IKE由三个协议组成 1、SKEME:决定IKE的密钥交换方式,IKE主要使用DH来实现密钥交换。 2、Oakley:决定IPSec的框架设计,让IPSec能够支持更多的协议。 3、ISAKMP:IKE的本质协议,它决定了IKE协商包的封装格式,交换过程和模式的切换。 IKE与ISAKMP ISAKMP是IKE的核心协议,我们经常会把IKE与ISAKMP这两个术语互换使用,我们配置IPSec VPN时候主要配置内容也是ISAKMP,SKEME和Oakley没有任何配置内容。IKE能够决定密钥交换的方式,但是ISAKMP只能够为密钥交换来交换数据包,不能决定密钥交换实现的方式。 IKE的2个阶段与3个模式 IKE第一阶段:协商主要目的就是对建立IPSec的双方进行认证,以确保只有合法的对等体(peer)才能够建立IPSec VPN,协商的结果就是IKE SA。 IKE第二阶段:主要目的就是根据需要加密的实际流量(感兴趣流),来协商保护这些流量的策略,协商的结果就是IPSec SA。
主模式 主模式IKE1-2包交互 主模式数据包1-2交互的主要任务负责完成2个任务: 1、通过核对收到ISAKMP数据包的源IP地址,确定收到的ISAKMP数据包为合法对等体。 2、协商IKE策略。 IKE1-2包交互的过程中,IKE策略协商是最主要的任务,策略包含5项内容:加密策略、散列函数、DH组、认证方式、密钥有效期,这个策略绝对不是用于加密实际通信点之间的流量的策略。发起方会把本地配置的所有策略一起发送给接收方,由接收方从中挑选一个可以接收的策略,并且通过第二个IKE包回送给发送方,指明自己所选择的策略。IKE策略协商完成之后,在交换IKE3-4和5-6包时候,就可以使用这套策略来处理了。 注意:ISAKMP数据包是使用UDP进行传输的,源端口号和目的端口号都是500 主模式IKE3-4包交互 IKE1-2包交互已经协商出了IKE策略,但是保护IKE数据还缺少密钥,加密和HMAC都需要密钥。3-4包通过一系列的密钥衍生算法,得到加密和HMAC处理IKE信息的密钥。 主模式IKE5-6包交互 IKE第一阶段的主要任务就是认证,IKE5-6包交换就是在安全环境下进行认证(从IKE主模式的第5-6包开始往后都使用IKE1-2包交换所协商的加密与HMAC算法进行安全保护) IKE1-2包交换为认证准备好策略,IKE3-4包交互为保护5-6包的安全算法提供密钥资源。 主动模式(积极模式、野蛮模式) 主动模式使用的是类似TCP3次握手的信息交换模式。交换的是3条信息。首先由sa的发起者发送一条信息给sa的接受者,sa的接受者收到第一条信息以后,会将自己的sa协商消息附上电子签名认证信息后发回给sa的发起者,这是第二条信息,第三条信息再由sa的发起者发送给sa的接受者,这条信息中包含了sa的发起者的签名认证信息。对于DH组,双方没有协商就进行了DH信息的交换,是固定的。由于其在第一条信息交换时就发送了对应的ID信息,sa的接收方可以根据该ID信息匹配对应的预共享密钥,从而计算对应的SKEYID。因此主动模式是可以使用除IP地址以外的域名来进行对等体标识的。但是由于主动模式中,是在加密身份信息的安全sa建立之前就进行了身份信息的交换,所以交换的消息都是明文的,ID信息也是明文的。 主模式也主动模式的区别 1、主动模式协商比主模式协商要快,主模式需要交互6个消息报文,主动模式则只需要交互3个消息报文。 2、主模式协商比主动模式更安全,主模式在5-6包中对ID信息进行了加密。而主动模式在1-2包中ID信息是以明文方式进行交互的。主模式对对端身份进行了保护,主动模式没有。 3、主模式只能基于IP地址来确定预共享密钥,主动模式是基于IP信息(主机名和IP地址)来确定预共享密钥。 IPSec VPN认证方式 1、预共享密钥 发起方根据接收方IP地址查询本地IPSec配置,找到与其对应的预共享秘钥 发起方把预共享密钥和IKE策略内容、DH计算的密钥资源、还有其他一些接收双方都知道的内容一起进行散列计算,得到的结果就是“认证散列值”。 发起方把“认证散列值”和本地加密点IP放入第5个IKE数据包中,加密后发送给接收方。 接收方首先对收到的第5个IKE数据包进行解密,提前出发起方的IP地址,并且基于发起方的IP地址查询本地IPSec配置,找出对应的预共享密钥。 接收方把查询到的预共享密钥,和其他双方已知内容一起计算散列值,得到“认证散列值”。 接收方把从第5个IKE数据包中提取出来的“认证散列值”和第五步的“认证散列值”进行比较,相等,接收方就成功认证了发起方。当然接收方还要通过相同的办法来发送第6个IKE数据包,让发起方认证接收方。
2、证书认证 3、RSA加密随机数认证 第一阶段小结 第一阶段的主要任务就是相互认证,第一阶段完成,不仅表示收发双方认证通过,并且还会建立一个双向的ISAKMP/IKE安全关联(SA),这个SA维护了处理ISAKMP/IKE流量的相关策略(注意:这些策略不会处理实际感兴趣流),而对等体双方还会继续使用这个SA,来保护后续的IKE快速模式1-3包交换。
快速模式 快速模式数据包1-3报的交换 快速模式中,1-3包交换的主要目的就是在安全环境下,基于感兴趣流协商处理这个感兴趣流的IPSec策略,包括:感兴趣流、加密策略、散列函数、封装协议、封装模式、密钥有效期。 IKE快速模式的第1个数据包中,发起方会把感兴趣流相关的IPSec策略一起发送给接收方,并由接收方来选择适当策略,这个过程与在IKE主模式1-2包交换时,由接收方来选择策略的工作方式相同。 策略协商完毕后就会产生相应的IPSec SA,我们发现在IKE快速模式第2个和第3个数据包中都出现了安全参数索引(SPI)这个字段,这个字段简单的说是一个字串,用于唯一标识一个IPSec SA。 注意:第一阶段协商的IKE SA是一个双向的SA,但是第二阶段协商的IPSec SA则是一个单向的SA,也就是存在一个IPSec SA用于保护发起方到接收方的流量,标识这个IPSec SA的SPI出现在快速模式的第二个数据包中。还存在另外一个IPSec SA用来保护接收方到发起方的流量,而标识这个IPSec SA的SPI出现在快速模式的最后一个数据包中。 Cisco的IPSec VPN可以通过配置启用PFS特性,一旦启用,在IKE快速模式1-2包交换就会在进行一次DH交换。 第二阶段小结 第二阶段的主要任务就是基于具体的感兴趣流来协商相应的IPSecSA,IKE快速模式交换的三个数据包都得到了安全保护(加密、完整性校验和源认证)。另外需要注意的就是SPI和PFS。SPI用于唯一标识一个单向的IPSec SA,SPI的值是由目的设备决定的,PFS在Cisco的IPSec VPN中默认是不启用的,可以通过配置来启用。
|