简介
IKE是个协议族,它包括三大协议: ISAKMP、Oakley和SKEME。
ISAKMP主要定义了IKE对等体之间的合作关系,建立IKE SA。
Oakley是一个产生和交换IPsec密钥材料并协商IPsec参数的框架,支持哪些安全协议。
SKEME协议决定了IKE密钥交换的方式,主要采用DH算法。
IKEv1版本最终生成IPsec SA需要经过两个阶段,分别用来建立IKE SA和IPsec SA。
- 第一阶段
主模式
预共享密钥
第一个RTT:
对等体之间交换彼此的IKE安全策略,只有双方的安全策略相同,双方才能识别对端的加密数据,并对对方身份进行认证;
SA是一个带有一个或多个提案的SA协商有效负载。发起者可以提供多个谈判建议;响应者必须只回复一个。
HDR是一个ISAKMP报头,其交换类型是模式。当写入为HDR*时,它表示有效负载加密。
第一个包:
第二个包:
发送方发送一个或者多个IKE安全提议,包括5元组:认证方法、加密算法、哈希算法、DH组、IKE SA的生存周期,相应方在本地查找最先收到的匹配的安全提议,并将安全提议返回给发起方,这些IKE策略直接提供对第二阶段的IPsec SA协商的加密保护。
第二个RTT:
对等体通过DH算法交换彼此的密钥生成所需参数(DH公开值和随机数nonce),用于建立两端相同的一系列共享密钥,主要包括用于在第二阶段协商的身份认证密钥和协商数据的加密密钥;
KE是密钥交换有效载荷,它包含在DH交换中交换的公共信息。
Nx是一次性的有效负载;x可以是:i或r分别为ISAKMP发起方和响应方。
KE是DH交换的材料,DH算法是密钥交换的一种实现,nounce是随机值;IKE SA和IPsec SA的密钥都是以这些为原材料计算出来的。
第三个包:
第四个包:
第三个RTT:
用前面创建好的加密密钥彼此发送各自的身份(如对等体的IP地址和名称)和认证数据(所采用的身份认证中的密钥或者证书数据等) 。这个过程受前面生成的加密密钥进行保护的。认证成功后,对等体的IKE SA就建立成功了。第二阶段协商IPsec SA的安全通道就会立即建立,两端的VPN设备就可用第一阶段协商的安全策略对第二阶段协商的IPsec SA进行安全加密和认证。
第五条报文和第六条报文都是密文,需要通过wireshark解密,strongswan打印cookie和密钥,以及如果解密ike报文,在别的地方单独说明。
第五个包:
第六个包:
- 第二阶段
IKEv1版本的第二阶段就是要在第一阶段基础上最终建立一对IPsec SA,它只有一种模式,即快速模式。快速模式的协商是受IKE SA保护的,整个协商流程如下:
同理,快速模式的包也是密文,前面ike解密后,第5,6,7,8,9条报文都自然解密了。在快速模式的协商过程中主要完成以下IPsec SA安全策略的确定:
- 使用哪种IPsec安全协议:AH或ESP
- 使用哪种HASH算法:MD5或SHA
- 使用哪种IPsec工作模式:隧道模式或传输模式
- 是否要求加密,若是,选择加密算法:3DES或DES 可选支持PFS
第七个包:
第八个包:
第九个包: