由上图可知,接受端回应的消息中,匹配了发送端的一条策略,如果有一条匹配,则不需要匹配其他策略。
在消息1和消息2中报错可能出现的原因:
(a)peer路由不通(即,外层的IP地址不通,这里对应的是发送发10.1.1.3和接收方10.1.1.2这两个地址不通,这里配置简单属于直连,而实际大型组网中,中间会有很多其他网元,往往是通过配置动态路由);
(b)crypto iskmp key没有设置(即,没有配置预共享密钥);
(c)一阶段的策略不匹配(这时需要检查两端设备的策略有不一致地方么)
(3)3&4消息:密钥交换过程
消息3:由发起者(即,隧道建立的发起者)发出,但是在发出消息3之前,有个
过程必须要完成,就是Diffie-Hellman算法过程。
Diffie-Hellman算法过程目的:在消息1和消息2中所协商的算法,它们必须需要一个KEY(即,共享密钥中设置的密码),这个KEY在两个对等体上必须一样,但同时这个KEY不能在链路中传递,因为传递KEY是一个不安全的手段。所以,该过程的目的是分别在两个对等体间独立地生成一个DH公共值,该公共值有什么作用?因为两个对等体上都生成该DH公共值后,它们会在接下来的消息3和消息4中传送给对方,打个比方,A收到了B的DH公共值,B收到了A的DH公共值。当A、B都收到了对方的该公共值后,问题就好解决了。因为有一个公式在数学中被论证成立,那么现在借助公式,就可以在两个对等体上生成一个只有它们两个对等体知道的相同的KEY,该公式为:
发起者密钥=(Xb)amod p = (Xa)bmod p=响应者密钥 note:这个密钥不是最终算法中使用的KEY,但两个对等体通过该KEY材料来生成另外三个密钥,分别是:
SKEYID_d——此密钥被用于计算后续IPSec密钥资源;
SKEYID_a——此密钥被用于提供后续IKE消息的数据完整性以及认证; SKEYID_e——此密钥被用于对后续IKE消息进行加密;
所以,由发起者发起的第三条消息主要是向对等体发送自己的DH公共值和Nonce随机数;
实际报文如下:
由上述报文可知,发送方开始向接收方发送自己的DH公共值以及随机数;
对端收到后,可以根据“消息1&消息2”中协商的DH算法,以及发送端在消息3中给出的DH和nonce值来生成SKEYID_d、SKEYID_a、SKEYID_e三个密钥;
消息4:同消息3,告知发送端自己的DH公共值和Nonce随机数;
报文如下:
由上述报文可知,接受方开始向发送方发送自己的DH公共值以及随机数;
对端收到后,可以根据“消息1&消息2”中协商的DH算法,以及接受端在消息4
中给出的DH和nonce值来生成SKEYID_d、SKEYID_a、SKEYID_e三个密钥;
(3)5&6消息:用于双方彼此验证。由“于消息1&消息2”的算法,以及“消息3&消息4”生成的三个KEY,所以在后续的“消息5&消息6”就能被加密传送,这个过程是受SKEYID_e加密保护的。
预共享密钥的作用:为了正确生成密钥,每一个对等体必须找到与对方相对应的预共享密钥,当有许多对等体连接时,每一对对等体两端都需要配置预共享密钥,每一对等体都必须使用ISAKMP分组的源IP来查找与其对等体对应的预共享密钥(此时,由于ID还没到,彼此先用HASH来彼此验证对方)HASH认证成分——SKEYID_a、cookieA、cookieB、preshare_key、SA payload、转换集和策略。
消息5:由发起者向响应者发送,主要是为了验证对端自己就是自己想要与之通信
的对端。这可以通过预共享、数字签名、加密临时值来实现。
消息6:由响应者向发起者发送,主要目的和第五条一样:
在消息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网
关设备地址(当通信点不等于加密点时使用隧道模式);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库IPSecVPN两个阶段协商过程分析-李心春(2)在线全文阅读。
相关推荐: