IKE工作过程
1. IKE概述
2. ISAKMP协议

3. IPSec协议工作原理
IPSec协商建立分为两个阶段:管理连接的建立和数据连接的建立。(1)阶段一(管理连接的建立)的任务/步骤:目的:生成1个双向的ISAKMP SA用来保护阶段二。①安全参数协商(加密算法、HASH算法、DH组、身份认证、生命周期)并建立“初始化”SA;②DH算法(交换公钥、随机数)计算出Key DH、生成许多密钥;③对等体/设备身份认证(Pre-shared、rsa-sig证书、加密随机数)。(2)阶段二(数据连接的建立)的任务/步骤:目的:生成2个单向的IPSec SA用来保护数据。①协商安全参数(安全协议ESP或AH,工作模式、加密算法、HASH算法、生命周期)并建立“初始化”SA;②为数据传输生成密钥;③对等体/设备身份认证(Pre-shared、rsa-sig证书、加密随机数)。
对比维度 | ISAKMP SA | IPSec SA |
---|---|---|
定义与作用 | IKE 第一阶段建立,双向安全通道,为后续 IPSec SA 协商提供安全环境 | IKE 第二阶段建立,单向数据保护规则,定义 IP 数据加密、认证的具体方式 |
建立阶段 | IKE 协商第一阶段,先于 IPSec SA 建立 | IKE 协商第二阶段,依赖 ISAKMP SA 已建立的安全通道 |
安全参数侧重 | 保障 IKE 控制消息安全,含加密 / 认证算法(如 AES、HMAC - SHA1 )、DH 组、身份认证方式(预共享密钥 / 证书) | 保护实际 IP 数据,含协议(AH/ESP )、工作模式(隧道 / 传输)、加密 / 认证算法(如 AES - 256、HMAC - SHA256 )、密钥周期等 |
生命周期管理 | 独立生命周期(时间 / 流量触发),过期后需重新走 IKE 第一阶段协商 | 独立生命周期(时间 / 流量触发),过期后需重新走 IKE 第二阶段协商重建 |
数据保护范围 | 仅保护IKE 协商的控制消息,确保协商过程安全可信 | 直接保护实际传输的 IP 数据包,实现数据加密、认证、抗重放等 |
方向特性 | 双向(单条 SA 覆盖双端通信) | 单向(入站、出站需分别建立 SA ) |
两个IPSec实体之间的IKE协商分为两个阶段:第一阶段:建立ISAKMP SA(也可称为IKE SA)• 两种模式:– 主模式(main mode):6条ISAKMP消息交互– 野蛮模式(aggressive mode):3条ISAKMP消息交互• ISAKMP SA是为第二阶段的ISKMP消息提供安全保护第二阶段:建立IPSec SA• 一种模式:– 快速模式(quick mode):3条ISAKMP消息交互• IPSec SA是为IP数据提供安全保护,即前面概念中介绍的SA
ISAKMP SA(阶段一相同)可以用来保护多个第二阶段IPSec SA协商的通信过程。
ISAKMP SA 保护多个第二阶段 IPSec SA 协商的核心条件可总结为:
- 基础安全机制有效:第一阶段成功完成身份认证(预共享密钥 / 证书等方式匹配),且通过 DH 算法生成有效共享密钥,确保双方身份可信、密钥基础一致。
- 安全参数兼容稳定:ISAKMP SA 协商的加密 / 认证算法、DH 组等参数在多个 IPSec SA 协商期间保持一致且适用,生存周期设置合理以覆盖多次协商。
- 通信与策略适配:设备配置稳定(不修改核心安全参数)、网络链路通畅,且安全策略允许并支持基于同一 ISAKMP SA 进行多 IPSec SA 协商,设备具备相应管理能力。
3.1 ISAKMP报文格式
ISAKMP消息报头:
1、发起方Cookie(Initiator Cookie):64 bit
2、应答方Cookie(Initiator Cookie):64 bit
3、下一个载荷(Next Payload):4 bit

4、版本号:8 bit
5、交换类型(Exchange Type):4 bit

6、标志(Flags):4 bit
7、报文ID(Message ID):32 bit
8、报文长度(length):32位
一个完整的ISAKMP报文结构:
3.2 IPSec协议工作过程
情况一(主模式+快速模式):
阶段一(主模式):
·目的:ISAKMP SA/IKE SA
1、协商加密套件(加密算法、HSAH算法、DH组、身份认证方式、生命周期)
① 发起方I -> 应答方R:I的Cookie,支持所有加密套件(加密算法、HASH算法、DH组、身份认证方式、生命周期)
② 发起方I <- 应答方R:I和R的Cookie,选出一套加密套件(选序号最小的策略)
2、交换密钥计算材料,生成密钥
① 发起方I -> 应答方R:I和R的Cookie,DH算法交换公钥I、随机数I
② 发起方I <- 应答方R:I和R的Cookie,DH算法交换公钥R、随机数R
·交换完材料后计算密钥:
① 首先发起方I和应答方R都配置了相同的pre-share key(预共享密钥)
② K(DH)(DH密钥):
发起方:用公钥R和私钥I通过DH算法计算K(DH);
应答方:用公钥I和私钥R通过DH算法计算K(DH)
注意:只要双方的DH组是相同的,DH算法算出来的Key(DH)就相同。
③ SkeyID(身份认证密钥):
用pre-share-key、随机数I、随机数R通过PRF算法计算SkeyID;
用SkeyID、Key DH、I和R的Cookie、0(常数)通过PRF算法计算SkeyID-d【SkeyID-d密钥仅仅做加密密钥、完整性密钥的材料使用】
④ SkeyID-a(完整性校验密钥):
用SkeyID、SkeyID-d、K(DH)、I和R的Cookie、1(常数,且与上面的常数不相同)通过PRF算法计算SkeyID
⑤ SkeyID-e(数据加解密密钥):
用SkeyID、SkeyID-a、K(DH)、I和R的Cookie、2(常数,且与上面的常数不相同)通过PRF算法计算SkeyID
3、身份认证(这两个报文都是加密的)
① 发起方I -> 应答方R:SkeyID-a完整性校验{ SkeyID-e加密(HASH(I)和I的身份ID)}
② 发起方I <- 应答方R:SkeyID-a完整性校验{ SkeyID-e加密(HASH(R)和R的身份ID)}
阶段二(快速模式):
目的:IPSec SA
1、安全参数(保护的协议AH/ESP,工作模式传输/隧道,加密算法、校验算法,生命周期)
发起方I -> 应答方R:{ I和R的Cookie,[ 安全参数(保护的协议AH/ESP,工作模式传输/隧道,加密算法、校验算法,生命周期),DH公钥I,随机数I,I的身份ID ]SkeyID-e }SkeyID-a
2、交换密钥计算材料,生成密钥
发起方I <- 应答方R:{ I和R的Cookie,[ 确认安全参数(保护的协议AH/ESP,工作模式传输/隧道,加密算法、校验算法,生命周期),DH公钥R,随机数R,R的身份ID,R的身份认证HASH载荷 ]SkeyID-e }SkeyID-a
3、身份认证
发起方I -> 应答方R:{ I和R的Cookie,[ I的身份认证HASH载荷 ]SkeyID-e }SkeyID-a
情况二(野蛮模式+快速模式):
阶段一(野蛮模式):
目的:ISAKMP SA/IKE SA
1、加密套件(加密算法、HSAH算法、DH组、身份认证方式、生命周期)
发起方I -> 应答方R:I的Cookie,加密套件(加密算法、HASH算法、DH组、身份认证方式、生命周期),DH公钥I,随机数I,I的身份ID
2、交换密钥计算材料,生成密钥
发起方I <- 应答方R:I和R的Cookie,确认加密套件(加密算法、HASH算法、DH组、身份认证方式、生命周期),DH公钥R,随机数R,R的身份ID,R的身份认证HASH载荷
3、身份认证
发起方I -> 应答方R:{ I和R的Cookie,[ I的身份认证HASH载荷 ]SkeyID-e }SkeyID-a
阶段二(快速模式):
目的:IPSec SA
1、安全参数(保护的协议AH/ESP,工作模式传输/隧道,加密算法、校验算法,生命周期)
发起方I -> 应答方R:{ I和R的Cookie,[ 安全参数(保护的协议AH/ESP,工作模式传输/隧道,加密算法、校验算法,生命周期),DH公钥I,随机数I,I的身份ID ]SkeyID-e }SkeyID-a
2、交换密钥计算材料,生成密钥
发起方I <- 应答方R:{ I和R的Cookie,[ 确认安全参数(保护的协议AH/ESP,工作模式传输/隧道,加密算法、校验算法,生命周期),DH公钥R,随机数R,R的身份ID,R的身份认证HASH载荷 ]SkeyID-e }SkeyID-a
3、身份认证
发起方I -> 应答方R:{ I和R的Cookie,[ I的身份认证HASH载荷 ]SkeyID-e }SkeyID-a