互联网密钥交换协议 IKE(Internet Key Exchange),对建立 IPSec的双方进行认证(需要预先协商认证方式);通过密钥交换,产生用于加密和 HMAC 的随机密钥;协商协议参数(加密协议、散列函数、封装协议、封装模式和密钥有效期)。协商完成后的结果就叫做安全关联(SA)。SA 一共有两种类型,IKE SA,ipsec SA。
一. IKE组成
SKEME(安全密钥交换机制):主要使用DH来实现密钥交换。
Oakley:决定了IPSec的框架设计,让IPSec能够支持更多的协议。
ISAKMP: IKE的本质协议,它决定了IKE协商包的封装格式,交换过程和模式的切换。
二. 两个阶段
- 第一阶段协商
对建立IPSec的双方进行认证,以确保对等体的合法性。
主要任务:相互认证
第一阶段完成,不仅表示收发双方认证通过,并且还会建立一个双向的 ISAKMP/IKE SA, 这个 SA 维护了处理 ISAKMP/IKE 流量的相关策略,而对等体双方还会继续使用这个 SA,来安全保护后续第二阶段的 IKE 快速模式1-3包交换。
(1)主模式 IKE 1-2包交换
加密策略
散列函数
DH 组
认证方式
密钥有效期
(2)主模式 IKE 3-4包交换
密钥交互
使用DH产生
密码学(二战),g和p较大时,已知a求A CPU计算速度很快,已知A求a几乎不可能,g和p的由1-2包交换的DH组大小决定
DH详解:
发起方首先随机产生g、p、a,用离散对数函数计算得出A。把 g、p、A 发送给接收方。
接收方收到后,随机产生b,使用接收到的g和p,用离散对数函数计算得到 B。然后把 B 回送给发起方。
接收方通过 A^b mod p 得到的结果, 等于发起方通过 B^a mod p 计算得到的结果,也等于 g^ab mod p。
通过 DH 算法得到了一个共享秘密 g^ab mod p。
(3)主模式数据包 5-6交换
在安全的环境下进行认证:预共享密钥认证,证书认证,RSA加密随机数认证。
第5-6包开始往后,都使用IKE 1-2包交换所协商的加密与HMAC算法进行安全保护
具体流程:
二. 第二阶段协商
- 快速模式 1-3包交换
(1)在安全的环境下,基于感兴趣流协商处理其IPSec的策略
感兴趣流
加密策略
散列函数
封装协议
封装模式
密钥有效期
(2)策略协商完毕以后就会产生相应的 IPSec SA
- 主要任务
基于具体的感兴趣流来协商相应的 IPSec SA,IKE 快速模 式交换的三个数据包都得到了安全保护(加密、完整性校验和源认证)