2.4.1 IKEv2 的协商过程
IKEv2 协商包括三种交互过程:
• 初始交换:通过四条消息协商出 IKEv2 SA 和 IPsec SA。
• 创建子 SA 交换:当一个 IKEv2 SA 需要创建多个 IPsec SA 时,使用创建子 SA 交换来协商
多于一个的 IPsec SA,另外还可用于进行 IKEv2 SA 的重协商功能。
• 通知交换:用于传递控制信息,例如错误信息或通告信息。
下面简单介绍一下 IKEv2 协商过程中的初始交换过程。
如图 7 所示,IKEv2 的初始交换过程包含四条消息。
(1) 第一对消息:完成 IKEv2 SA 参数的协商以及密钥交换;
(2) 第二对消息:完成通信对等体的身份认证以及 IPsec SA 的创建。
这两个交换过程顺序完成后,可以建立一个 IKEv2 SA 和一对 IPsec SA。
2.5 IPsec运行机制
如图 8 所示,IPsec 基本运行机制如下:
(1) 定义需要 IPsec 保护的数据流,可以通过配置路由或 ACL 规则来实现,具体请参加定义保护
数据流的方法。
(2) 通信两端通过如下方式确认数据保护及认证策略(主要包括安全协议、认证算法、加密算法、
共享密钥以及密钥的生存时间等),并建立 IPsec 隧道:
静态手工方式:通过手工方式配置 IPsec 隧道的所有信息,配置完成后,隧道即建立。
IKEv1 自动协商方式:通过 IKEv1 动态协商 IPsec 策略,完成 IKEv1 配置后,由发送的数
据流触发建立隧道。
IKEv2 自动协商方式:通过 IKEv2 动态协商 IPsec 策略,完成 IKEv2 配置后,由发送的数
据流触发建立隧道。
(3) IPsec 发送方使用加密算法和密钥对需要保护的报文进行加密,加密后的报文通过认证算法和
认证密钥生成签名,封装在报文中进行发送。
(4) 响应方通过相同的认证算法和认证密钥,对收到的加密报文重新生成新的签名,然后再与报
文中的签名进行对比,若签名不相同则认为报文非法,丢弃该报文;若签名相同则认为报文合法。合法的报文通过解密算法和密钥进行解密,最终响应方得到原始报文。
2.6 定义保护数据流的方法
IPsec 只对特定的数据流进行保护,至于什么样的数据是需要 IPsec 保护的,可以通过以下两种方式定义。
ACL 方式
只要接口发送的报文与该接口上应用的 IPsec 安全策略中的 ACL 的 permit规则匹配,就会
受到出方向 IPsec SA 的保护并进行封装处理。
接口接收到目的地址是本机的 IPsec 报文时,首先根据报文头里携带的 SPI 查找本地的入方向 IPsec SA,由对应的入方向 IPsec SA 进行解封装处理。缺省情况下,解封装后的 IP 报文
只有与 ACL 的 permit规则匹配才会采取后续处理,否则被丢弃。若关闭解封装后 IPsec 报文的 ACL 检查功能,则解封装后的 IP 报文与 ACL 的 permit规则不匹配时,该报文不会被丢弃。
路由方式
(1) Device 将从入接口接收到的 IP 明文送到转发模块进行路由处理;
(2) 转发模块依据路由查询结果,将 IP 明文发送到隧道接口进行封装:原始 IP 报文加密后被封装
在一个新的 IP 报文中,新 IP 头中的源地址和目的地址分别为隧道接口的源端地址和目的端地址。
(3) 隧道接口完成对 IP 明文的封装处理后,将 IP 密文再次送到转发模块进行路由处理;
(4) 转发模块根据新 IP 头中的目的 IP 地址进行第二次路由查询后,将 IP 密文通过隧道接口的实
际物理出接口转发出去。
如图 10 所示,隧道接口对报文进行解封装的过程如下:
(1) Device 将从入接口接收到的 IP 密文送到转发模块进行路由处理;
(2) 转发模块识别到此IP 密文的目的IP地址为本设备隧道接口源端地址且IP 协议号为AH 或ESP
时,会将 IP 密文送到相应的隧道接口进行解封装:将 IP 密文的外层 IP 头去掉,对内层 IP 报文进行解密处理。
(3) 隧道接口完成对 IP 密文的解封装处理之后,将 IP 明文重新送回转发模块进行路由处理;
(4) 转发模块根据 IP 明文的目的 IP 地址进行第二次路由查询后,将 IP 明文从隧道的实际物理出
接口转发出去。