IPSecVPN两个阶段协商过程分析-李心春 下载本文

在消息5和消息6中报错可能出现的原因: (1)crypto iskmp key设置错了;(即,两端的预共享密钥值设置的不一样)

(五) 第二阶段:

第2阶段用三个消息来完成,目标是协商IPSec SA,而且只有一种模式,快速模式(Quick Mode),快速模式的协商是受IKE SA保护的。

对应设备上需要配置的参数(以R202i-VM为例):

(1)1&2消息:发送IPSec SA的属性,协商IPSec SA

消息1:发起者会在第一条消息中发送IPSec SA的转换属性。其中包含:HASH、IPSec

策略提议、Nonce可可选的DH以及身份ID。

(a)HASH:是用于给接受方作为完整性检验的,用于再次认证对等体(必须)HASH的成分和5-6阶段一样;

(b)IPSec策略提议:其中包括了安全协议(AH、ESP或AH-ESP)、SPI、散列算法、模式(隧道模式或传输模式)、IPSec SA生命周期(必选); (c)Nonce:用于防重放攻击,还被用作密码生成的材料,仅当启用PFS时用到; (d)ID:描述IPSec SA是哪些地址、协议和端口建立的,即感兴趣流中的IP地址;

(e)PFS(利用DH交换,可选):用了PFS后,就会在第二阶段重新DH出一个数据加密KEY,这个KEY和以前IKE协商出来的KEY没有任何关系,然后由这个新KEY来加密数据,只有到这个IPSec SA的生命周期后,会再次DH出新的KEY,这样,安全性就提高了(普通IPSec SA过期或密钥超时时,重新生成的数据加密密钥还是根据第一阶段DH出来的SKEYID_d衍生出来的),PFS启用后,数据加密部分使用的密钥就没有了衍生的过程。

(f)DH:重新协商IPSec SA时使用的密钥(正常情况下,IPSec阶段使用的密钥都是由SKEYID_d衍生而来的,密钥之间都有一定的关系,就算IPSec SA超时,新的KEY还是和SKEYID_d有一定的关系)。

以上数据均被加密处理;

基于以上,第二阶段有几个概念需要理清:

(a)封装模式:包括传输模式(Transport)和隧道模式(Tunnel)。

传输模式:不使用新的IP头部,IP头部中的源/目的IP为通信的两个实点(当通信点等于加密点时,使用传输模式);

隧道模式:需要封装一个新的IP头部,新的IP头部中源/目的IP为中间的VPN网

关设备地址(当通信点不等于加密点时使用隧道模式);

二者比较:

从安全性来讲,隧道模式优于传输模式,隧道模式可以完全地对原始IP数据报进行验证和加密以及可以使用IPSec对等体的IP地址来隐藏客户机的IP地址; 从性能来讲,隧道模式比传输模式占用更多带宽,一个额外的IP头; 因此,到底使用哪种模式需要按照实际的应用场景进行权衡。

(b)安全联盟生存周期:

所有在安全策略视图下没有单独配置生存周期的安全联盟,都采用全局生存周期。IKE(因特网密钥交换协议)为IPSec协商建立安全联盟(SA)时,采用本地设置的和对端提议的生存周期中较小的一个(即,当两端配置的生存周期不一致时,那么就用最小的那个值)。安全联盟生存周期的输入范围:30~604800; 所以,两端设备配置的生存周期不一致不会导致隧道无法建立。

(c)采用的安全协议:

安全提议中需要选择所采用的安全协议,用于为IP数据包提供安全。目前可选的安全协议有AH(验证报头)和ESP(封装安全有效负载),也可以指定同时使用AH和ESP(AH-ESP)。安全隧道两端所选择的安全协议必须一致。

所以,第二阶段协商不起来,两端协议是否一致是一个排查重点。

AH协议:类似于ICMP、TCP、UDP的IP协议,分配给它的协议号为51。提供如下

安全功能:数据完整性服务、提供抗数据回放攻击、不提供数据加密性(不加密)。

(note:AH是不提供数据的加密的,所以在报文中可以看到完整的DATA部分) AH报文头格式:

AH在两种模式下的封装:

ESP协议:协议号为50,提供如下功能:提供数据加密性(支持加密)、提供数据

完整性、提供抗回放攻击能力;

ESP的数据验证和完整性服务只包括ESP的头和有效载荷(不包括外部的IP头部) (note:ESP是提供加密的,所以抓取的ESP报文,是看不到原来被封装的数据部分)