互联网密钥交换协议IKE(Internet Key Exchange)
IPSec VPN需要预先协商加密协议.散列函数.封装协议.封闭模式和密钥有效期等内容,具体执行协商任务的协议叫做互联网密钥交换协议IKE.IKE主要完成如下3个方面的任务:
- 对建立IPSec的双方进行认证(需要预先协商认证方式)
- 通过密钥交换,产生用于加密和HMAC的密钥
- 协商协议参数(加密协议.散列函数.封装协议.封装模式和密钥有效期)
协商完成后的结果就叫做安全关联SA,也就是说IKE建立了安全关联,SA一共有两种类型,一种叫做IKE SA,另一种叫做IPSec SA. IKE SA维护了安全防护(加密协议.散列函数.认证方式.密钥有效期等)IKE协议的细节.IPSec SA则维护了安全防护实际用户流量(通信点之间流量)的细节.
IKE由三个协议组成,如下图:
- SKEME决定了IKE的密钥交换方式,IKE主要使用DH来实现密钥交换
- Oakley决定了IPSec的框架设计,让IPSec能够支持更多 的协议
- ISAKMP是IKE的本质协议,它决定了IKE协商包的封装模式,交换过程和模式的切换.
IKE的2个阶段与3个模式
IKE协商分为两个不同阶段:第一阶段和第二阶段.第一阶段协商使用6个包交换的主模式或3个包交换的主动模式来完成,第一阶段协商的主要目的就是对建立IPSec的双方进行认证,以确保只有合法的对等体(peer)才能够建立IPSec VPN,协商得到的结果就是IKE SA.第二阶段总是使用3个包交换的快速木工来完成,第二阶段的主要目的就是根据需要加密的实际流量(感觉兴趣流),来协商保护这些流量的策略.协商的结果就是IPSec SA.
主模式一共要交换6个ISAKMP数据包,这个过程可以分为1-2, 3-4和5-6这三次数据包交换.
主模式IKE 1-2包交换
主模式IKE 1-2包交换主要负责完成2个任务:第一是通过核对收到ISAKMP数据包的源IP地址,来确认收到的ISAKMP数据包是否源自于合法的对等体(peer);第二个任务就是协商IKE策略.
主模式IKE 1-2包交换的过程中,IKE策略协商才是它主要的任务,策略包含 如下5项内容:
- 加密策略
- 散列函数
- DH组
- 认证方式
- 密钥有效期
既然叫IKE策略,表示它是对IKE数据包进行处理的策略.以加密策略为例 ,它决定了加密主模式(MM)的5-6个数据包和快速模式(QM)的1-3个数据包的策略.但是这个策略绝对不是用于加密实际通信点之间流量(感兴趣流)的策略.通信的双方会在第二阶段的快速 模式中协商另外一个加密策略,而这个在快速 模式中协商的策略才会用于处理 感兴趣流.在第一个数据包内,发起方会所本地配置 的所有策略一起发送给接收方,由接收方从中挑出一个可以接收的策略.并且通过第二个IKE包回送给发送方,向发送方指明它选择的那个策略.
主模式IKE 3-4包交换
IKE 1-2包交换已经协商出了IKE策略,但是指望和这些加密策略和散列函数来保护IKE数据还缺少一个重要的内容-密钥.加密和HMAC都需要密钥,这个密钥是根据Diffie-Hellman算法产生的.
主模式IKE 5-6包交换
IKE第一阶要任务就是认证,IKE 5-6包交换就是在安全的环境下进行认证(从IKE主模式的第5-6包开始往后,都使用IKE 1-2包交换所协商的加密与HMAC算法地安全保护),IKE 1-2和IKE 3-4包交换,只是在为IKE 5-6包交换的认证做铺垫.IKE 1-2包交换为认证准备好策略(例如,认证策略.加密策略和散列函数等),IKE 3-4包交换为保护IKE 5-6包的安全算法提供密钥资源.
IPSec VPN的认证方工有3个,分别是预共享密钥认证.证书认证和RSA加密随机数认证.
快速模式 数据包1-3包交换
快速模式中,1-3包换的主要目的就是在安全的环境下,基于感兴趣流协商处理这个感兴趣流的IPSec策略,这些策略包含 如下6项内容:
- 感兴趣流
- 加密策略
- 散列函数
- 封装协议
- 封装模式
- 密钥有效期