前言

经过前面几篇的学习,我们已了解了lPSec框架所提供的主要服务,即IPSec VPN需要预先协商加密协议,散列函数,封装协议,封装模式和密钥有效期等内容,具体执行协商任务的协议叫做互联网密钥交换协议lKE。

IKE

IPsec使用IKE协议协商并建立安全的站点到站点或远程访问虚拟专用网络(VPN)隧道。IKE协议也称为互联网安全关联和密钥管理协议(ISAKMP)(仅在思科中)。

IKE有两个版本:

  • IKE v1:在RFC 2409中定义,Internet密钥交换
  • IKE v2(IKEv2):在RFC 4306,Internet密钥交换(IKEv2)协议中定义

IKE主要完成如下3个方面的任务

  • 对建立IPSec的双方进行认证(需要预先协商认证方式)
  • 通过密钥交换, 产生用于加密和HMAC的随机密钥
  • 协商协议参数(加密协议、散列函数、封装协议、封装模式和密钥有效期)

协商完成后的结果就叫做安全关联SA,也可以说IKE建立了安全关联。

SA一共有两种类型,一种叫做IKE SA,另一种叫做IPSec SA。

IKE SA维护了安全防护(加密协议、散列函数、认证方式、密钥有效期等) IKE 协议的细节。

IPSec SA则维护了安全防护实际用户流量(通信点之间流量)的细节。

IKE的三大组成协议

IKE由三个协议组成,如下图

IKE三个协议组成图

  • SKEME决定了IKE的密钥交换方式,IKE 主要使用DH来实现密钥交换。
  • Oakley决定了IPSec的框架设计,让IPSec能够支持更多的协议。
  • ISAKMP是IKE的本质协议,它决定了IKE协商包的封装格式,交换过程和模式的切换。

IKE与ISAKMP

ISAKMP是IKE的核心协议,所以我们经常会把IKE与ISAKMP这两个术语互换使用。

例如,IKE SA也经常被说成ISAKMP SA。在配置IPSec VPN的时候,主要的配置内容也是ISAKMP。另外,SKEME和Oakley没有任何相关的配置内容,因此很多网络技术人员常常会认为IKE和ISAKMP是相同的概念。如果一定要对IKE和ISAKMP进行区分的话,那么由于SKEME的存在,因此IKE能够决定密钥交换的方式,但是ISAKMP只能够为密钥交换来交换数据包,但却不能决定密钥交换实现的方式。

IKE协商的两个阶段和三个模式

下图是IKE协商示意图,从该图中,我们可以看到IKE协商分为两个不同阶段:第一阶段和第二阶段。第一阶段协商分别可以使用6个包交换的主模式或者3个包交换的主动模式来完成,第一阶段协商的主要日的就是对建立IPSec的双方进行认证,以确保只有合法的对等体(peer) 才能够建立IPSec VPN。协商得到的结果就是IKESA。第二阶段总是使用3个包交换的快速模式来完成,第二阶段的主要目的就是根据需要加密的实际流量(感兴趣流),来协商保护这些流量的策略。协商的结果就是IPSec SA。

IKE的两个阶段三个模式

我们对这一过程做一个简单的比喻:IKE协商过程就像两个公司做生意的过程。两个公司在具体合作之前需要相互了解,最简单的方法可能就是核查对方公司的工商牌照、公司营业和信誉状况。也很有可能是约一个地点,坐下来面对面地进行介绍和了解。不管怎么样,目的就是相互进行认证,建立基本的信任关系。这个过程其实就是IKE第一个阶段需要完成的任务。第一阶段完成后,信任关系建立了,相应的IKE SA也就建立了。紧接着的主要任务就是基于具体的项目来签订合同。

对于IPSec VPN而言,具体的项目就是安全保护通信点之间的流量,具体处理这些流量的策略(IPSec SA)就是合同。IKE 第二阶段的任务就是基于需要被加密的流量(A到B)协商相应的IPSecSA。一旦双方在第一阶段建立起了信任关系,它们就没有必要重复进行认证了。接下来,双方的议题就是根据第一阶段建立的IKE SA,给两个站点之间的很多需要被加密的流量协商不同的第二阶段策略(IPSec SA)。

现在我们回头说说第一阶段的两种模式。既然第一阶段既可以使用主模式,也可以使用主动模式来完成,那么什么情况应该使用主模式,什么情况应该使用主动模式呢?

以Cisco 的IPSec VPN为例,只有在一种情况下, 第一阶段才会使用3数据个包交换的主动模式来完成,这就是通过预共享密钥认证的远程访问VPN (Cisco 的技术名叫做EzVPN),换言之,使用证书认证的EzVPN也是通过6个数据包交换的主模式来完成的。

IKE主模式的6个数据包和快速模式3个数据包在这里不做详细的探讨,感兴趣可以参考《Cisco IPSec VPN实战指南》3.3.2。

小结

  • IPsec是使用IKE协议协商并建立的安全的站点到站点或远程访问虚拟专用网络(VPN)隧道。
  • IKE第一阶段的主要任务是相互认证。
  • IKE第二阶段的主要任务就基于具体的感兴趣流来协商相应的IPsec SA,IKE快速模式交换的三个数据包都得到了安全保护(加密、完整性校验和源认证)。

参考资料

《了解IPsec IKEv1协议》Cisco

《Cisco IPSec VPN 实战指南》秦柯

《IPSec VPN设计》