IKE工作过程

一、数据存储完整性校验
  • 校验机制:使用HASH算法对数据做完整性校验,确保数据在存储过程中未被篡改

  • 密钥应用:采用加密密钥对数据进行加解密处理,同时在数据存储前需通过身份认证,认证过程同样依赖密钥机制

二、对称key的产生、传递、管理 
1. 对称key的传递 
1)DH算法 
  • 核心原理:通过非对称加密传递对称密钥,具体流程包含:

    • 双方各自生成公私钥对

    • 交换公钥

    • 使用对方公钥与己方私钥通过特定函数计算

    • 双方独立计算出相同的对称密钥(Secret_Key_X)

  • VPN应用特点:在IPSec VPN中仅使用前4个步骤,对称密钥始终不在网络中传输,通过本地计算验证

  • 安全优势:实现"纵向不同"原则——加解密(KEY1)、完整性校验(KEY2)、身份认证(KEY3)使用不同密钥,增强安全性

  • DH密钥组

    • 组别定义:通过数字组别区分算法类型和密钥长度,关键组别包括:

      • 组2:1024位直线算法

      • 组5:1536位直线算法(思科支持的最安全组)

      • 组14:2048位直线算法

      • 组15:3072位直线算法(最安全但不被思科支持)

    • 算法特性:

      • 椭圆曲线算法(如组3/4/7)密钥长度较短(155-185位)但安全性高

      • 直线算法需要更长的密钥长度(768-3072位)保证安全

    • 选择原则:根据安全需求选择组别,密钥长度与算法复杂度共同决定安全性

2. 思考
  • 多隧道管理:设备可同时建立多条VPN隧道,每条隧道具有独立的:

    • 加密算法/验证算法

    • 密钥体系(KEY1/KEY2/KEY3)

    • 保护模式(AH/ESP)

  • 数据隔离性:不同隧道传输的数据网段严格隔离,避免地址重叠

  • 安全关联(SA):作为管理单元包含所有隧道参数(算法选择、密钥管理、保护模式),实现:

    • 流量识别:匹配特定规则的数据包进入对应隧道

    • 策略隔离:区分不同对等体的保护策略

    • 参数管理:维护加密/验证算法等协商结果

三、SA概述 
  • 保护要素:加密算法、验证算法、加密密钥、验证密钥、AH/ESP等要素都包含在安全关联(Security Association)中

  • 核心功能:解决设备间算法选择、密钥同步、保护方式确定等关键问题

1. 安全关联
  • 定义:两个IPSec实体(主机/安全网关)间协商建立的协定

  • 包含内容:

    • 协议类型(AH或ESP)

    • 运行模式(传输模式/隧道模式)

    • 验证算法

    • 加密算法

    • 加密密钥

    • 密钥生存期

    • 抗重放窗口

    • 计数器等

  • 单向性:

    • 入方向(inbound)SA处理接收数据包

    • 出方向(outbound)SA处理发送数据包

    • 每个通信方需两种SA构成SA束(SA Bundle)

  • 数量关系:

    • 每个VPN连接对应两组SA(四个SA)

    • 实体A出方向SA与实体B入方向SA为一组

    • 实体B出方向SA与实体A入方向SA为另一组

2. SA如何产生 
1)手工配置 
  • 实现方式:管理员手工指定和维护SA内容

  • 特点:

    • 配置参数永不过期(除非手动删除)

    • 需两端设备配置完全一致

  • 优缺点:

    • 优点:适合实验室测试特定算法功能

    • 缺点:

      • 维护困难易出错

      • 密钥长期使用存在安全隐患

      • 实际项目几乎不使用

  • 应用场景:

    • 新算法开发测试

    • 特定功能验证(如仅测试完整性校验)

2)IKE自动管理 
  • 协议性质:互联网密钥交换协议(协议族)

  • 工作机制:

    • 自动建立SA

    • 动态维护和删除SA

    • SA具有生命周期

  • 触发条件:当需要建立安全连接但无对应SA时自动启动

  • 优势:

    • 避免手工配置错误

    • 定期更新密钥提高安全性

    • 适应网络拓扑变化

  • 生命周期:

    • 类似动态路由、ARP表等网络协议

    • 自动过期更新机制保障安全

四、IKE工作过程 
1. IKE概述
  • 协议全称: Internet Key Exchange(互联网密钥交换)

  • 核心功能: 动态建立、维护和删除安全关联(SA)

  • 协议性质:

    • 属于混合型协议

    • 基于ISAKMP框架(RFC2408)

    • 整合了Oakley和SKEME协议的部分功能

    • 定义了两种自有密钥交换方式

1)组成协议
  • SKEME协议

    • 核心机制: 使用公开密钥加密实现认证

    • 关键技术:

      • 定义Diffie-Hellman(DH)密钥交换方式

      • 提供密钥刷新和密钥传递机制

  • Oakley协议

    • 核心功能: 使IPSec对等体达成相同加密密钥

    • 特点:

      • 支持多种加密模式

      • 兼容新型加密技术

      • 不定义具体交换信息内容

  • ISAKMP协议

    • 标准文档: 互联网安全联盟密钥管理协议白皮书

    • 核心贡献:

      • 定义完整的消息交换体系结构

      • 规范分组格式和状态转换机制

      • 明确协商包交换方式(类似DHCP四步交互)

    • 工作特点:

      • 过程严格固定化

      • 定义对等体间完整的报文交互流程

      • 包含状态机转换规则(收到X报文必须回复Y报文)

2. ISAKMP协议 
1)ISAKMP报文格式 
  • 协议定义:ISAKMP(Internet Security Association Key Management Protocol)是定义在RFC2408中的协议,用于协商、建立、修改和删除安全联盟(SA)。

  • 框架特性:

    • 提供通用协商框架,但不定义具体SA格式

    • 与密钥交换协议独立,可被不同密钥交换协议使用

  • 传输方式:

    • 默认使用UDP协议,端口号为500(思科设备)

    • 不同厂商端口可能不同(如深信服使用5000端口)

  • 报文结构:

    • 包含IP头部、UDP头部(源/目的端口均为500)、ISAKMP头部和数据部分

  • NAT穿越:

    • 通过添加UDP封装实现,使一个公网IP可通过不同端口区分多个隧道

    • 未使用UDP封装时,一个公网IP只能对应一个隧道

  • 密钥管理IKE任务

    • 阶段一任务:

      • 建立双向ISAKMP SA(IKE SA)

      • 安全参数协商:包括加密算法、HASH算法、DH组、身份认证方式、生命周期

      • 密钥计算:

        • 通过DH算法交换公钥和随机数

        • 生成

          K_{DH}

          及衍生密钥(身份认证密钥、数据加解密密钥等)

      • 身份认证:支持预共享密钥、RSA签名证书、加密随机数三种方式

    • 阶段二任务:

      • 建立两个单向IPSec SA

      • 参数协商:安全协议(ESP/AH)、工作模式(传输/隧道)、加密算法、HASH算法、生命周期

      • 密钥生成:为实际数据传输生成专用密钥

    • 保护关系:

      • 阶段一的ISAKMP SA用于保护阶段二协商

      • 阶段二的IPSec SA用于保护最终数据

  • IKE协商的两个阶段

    • 阶段一模式:

      • 主模式:6条ISAKMP消息交互,提供完整身份保护

      • 野蛮模式:3条ISAKMP消息交互,适用于特殊网络环境

    • 阶段二模式:

      • 快速模式:固定3条ISAKMP消息交互

    • 报文总数:

      • 主模式+快速模式共9个报文

      • 野蛮模式+快速模式共6个报文

    • SA复用:

      • 一个阶段一的ISAKMP SA可保护多个阶段二的IPSec SA协商

      • 典型案例:A公司可与B/C/D三家公司分别建立隧道,共享相同的阶段一协商

    • 协议层特性:

      • ESP协议号50,AH协议号51

      • 网络层协议,不影响传输层(NAT设备无法读取加密后的传输层信息)

2)ISAKMP报文携带的载荷 
  • ISAKMP消息报头

    • Cookie机制:

      • 作用:64位的发起方Cookie和应答方Cookie用于确认报文来源真实性,防止DOS攻击

      • 生成方式:通过散列算法计算(源IP+源端口+随机数+当前时间),取哈希值前64位

      • 特性:散列算法不可逆且结果不完整(即使使用256位算法也只取64位),双重保障安全性

      • 协商过程:首次协商时发起方Cookie为设备自身值,应答方Cookie置0;后续报文中位置固定不变

    • 报文结构比喻:

      • 火车头比喻:报头相当于火车头,后面连接的载荷如同车厢,每节车厢携带不同类型数据

      • 动态性:车厢数量不固定,可根据需求灵活增减(类似IPv6扩展头结构)

  • 载荷类型

    • 载荷多样性:

      • 共定义13种标准载荷类型(SA载荷、建议载荷、变换载荷等)

      • 选择性使用:并非所有载荷都会出现在报文中,例如证书载荷仅在证书认证时出现

      • 私有扩展:类型值128-255保留给私有用途使用

  • 版本号

    • 组成结构:

      • 8位字段分为4位主版本号+4位次版本号

      • 当前常见版本为1.0(主版本1,次版本0)

  • 交换类型

    • 阶段标识:

      • 4位字段专门标识IKE阶段一的协商模式

      • 主模式:值为2(Identity Protection),需要6个报文完成协商

      • 野蛮模式:值为4(Aggressive),仅需3个报文

    • 其他类型:

      • 信息交换(值5)用于传输通知、错误消息等管理信息

  • 标志

    • 位字段含义:

      • 加密位(最低位):1表示载荷加密,0表示明文

      • 提交位:确保SA协商完成前不发送受保护数据

      • 纯验证位:主要为政府/公安等机构提供密钥恢复机制支持

    • 安全警示:即使建立VPN隧道,具备密钥恢复能力的机构仍可解密通信

  • 报文ID

    • 阶段区分:

      • 阶段一协商时固定为0

      • 阶段二由发起方生成随机值,用于唯一标识协商状态

  • 载荷头部

    • 通用结构:

      • 下一载荷:8位字段指示后续载荷类型,末端载荷该字段为0

      • 载荷长度:16位字段记录当前载荷总长度(含头部)

    • 链表结构:通过"下一载荷"字段形成载荷链,类似火车车厢连接方式

3)一个完整的ISAKMP报文结构 
  • 典型组成:

    • 固定报头(含Cookie、版本等字段)

    • 密钥交换载荷(KE载荷)

    • Nonce载荷(随机数)

    • 厂商特定载荷(Vendor ID)

  • 动态扩展:实际报文可能包含更多/更少载荷,取决于具体协商需求

3. IKE协商第一阶段过程分析 
1)IKE协商第一阶段目的及任务 
  • 核心目的: 协商建立ISAKMP SA(也可称为IKE SA)

  • 三大任务:

    • 加密套件协商: 确定安全通信参数

    • 密钥材料交换: 生成共享密钥

    • 身份认证: 验证通信双方身份

2)加密套件 
  • 组成要素:

    • 加密算法: 如AES、3DES等

    • 哈希算法: 如MD5、SHA等

    • DH组: 密钥交换的参数组

    • 身份认证方式: 如预共享密钥等

    • 生命周期: SA的有效时长

  • 策略概念: 一个加密套件对应一个策略配置

3)交换密钥计算材料,生成密钥 
  • 关键区别: 交换的是密钥计算材料而非密钥本身

  • 过程特点:

    • 通过DH交换生成共享密钥

    • 材料交换后本地计算最终密钥

4)身份认证 

  • 执行时机: 在密钥生成完成后进行

  • 认证方式: 预共享密钥等(具体方式由加密套件确定)

5)主模式六个报文 
  • 报文分组:

    • 前两个报文: 协商加密套件

      • 包含发起方Cookie(i_cookie)

      • 发起方发送所有支持的加密套件

    • 中间两个报文: 交换DH材料

    • 最后两个报文: 完成身份认证

  • 通信角色:

    • I(Initiator): 发起方

    • R(Responder): 应答方

6)加密套件的选择 
  • 选择原则:

    • 应答方从双方都支持的套件中选择

    • 当存在多个匹配套件时,选择策略号最小的

  • 安全考量:

    • 算法强度:密钥长度越长越安全

    • 哈希算法:长度影响安全性

    • 生命周期:越短越安全(需定期更新)

7)第1、2个ISAKMP报文 
  • 主模式协商过程

    • 功能:交换并协商保护ISAKMP消息的安全参数及对等体验证方式

    • 包含内容:

      • 加密算法(如3DES、AES)

      • 验证算法(如MD5、SHA)

      • 验证方式(如预共享密钥)

      • ISAKMP SA生存时间

      • DH组选择

    • 策略选择机制:

      • 响应方收到发起方的ISAKMP安全策略后,返回本地与之匹配的策略

      • 若存在多条匹配策略,选择序号最小的策略

      • 重要原则:越安全的策略序号应设置越小

8)第3、4个ISAKMP报文
  • 密钥材料交换

    • 交换内容:

      • KE载荷:DH公钥信息

      • Nonce载荷:随机数信息(发起方用N_I 表示,响应方用N_R表示)

    • DH算法关键点:

      • 基于离散对数问题

      • 需要预先定义质数p和基数g(通过group配置)

      • 每端选择随机私数(a和b),计算产生公共值A和B

      • 私数a和b不会在网络上传输

  • 密钥计算过程

    • 预共享密钥要求:

      • 发起方和响应方配置必须相同

      • 若不一致将导致协商失败

    • 密钥生成步骤:

      • 通过DH算法生成共享密钥
        K=g^{ab} mod_p

      • 结合随机数
        N_I 和N_R

        计算最终密钥材料

      • 使用预共享密钥进行身份验证

10)身份认证密钥 
  • 计算要素:使用预共享密钥(pre-shared key)和双方随机数作为输入材料

  • 算法:通过伪随机函数(PRF)算法计算得出

  • 中间密钥:计算过程中会生成s_key_ID_d作为中间材料

    • 组成:由身份认证密钥(s_key_ID)、DH对称密钥、发起方和应答方的cookie共同计算

    • 用途:专门用于后续加密密钥和完整性校验密钥的计算

  • 特性:计算时会添加长度乘数,不同算法使用的乘数不同

11)完整性认证密钥和数据加解密密钥 
  • 计算基础:

    • 必须包含s_key_ID和s_key_ID_d作为基础材料

    • 需要DH对称密钥参与计算

  • 密钥分类:

    • 完整性认证密钥:用于数据完整性校验

    • 数据加解密密钥:用于数据加密/解密

  • 算法特性:

    • 采用固定算法计算,不同算法会添加不同的长度乘数

    • 要求两个密钥的长度必须不同

  • 密钥体系:

    • 共包含5个核心密钥:身份认证密钥、中间材料密钥(s_key_ID_d)、完整性校验密钥、数据加密密钥

    • 各密钥用途明确区分,不可混用

12)身份认证过程 
  • 主模式身份认证机制

    • 认证数据组成:包含SA信息、身份信息、Cookie值等参数,通过身份认证密钥和散列算法生成哈希值

    • 加密方式:使用SkeyID−e密钥加密身份认证数据包(包含哈希值和发起方身份ID)

    • 双向认证:先由应答方验证发起方身份,再由发起方验证应答方身份,通过[HASH(R),ID(R)]

      结构返回响应

  • 密钥生成过程

    • 基础密钥:

      K(DH)=DH私钥I+DH公钥RK(DH)=DH私钥I+DH公钥RK(DH)=DH私钥I+DH公钥R

      K(DH)=DH私钥R+DH公钥IK(DH)=DH私钥R+DH公钥IK(DH)=DH私钥R+DH公钥I

    • 派生密钥:

      • SkeyID=prf(pre−share−key+N(I)+N(R))

        :用于身份认证

      • SkeyID−d=prf(SkeyID+K(DH)+C(I)+C(R)+0)

        :衍生密钥基础

      • SkeyID−a=prf(SkeyID+SkeyID−d+K(DH)+C(I)+C(R)+1)

        :完整性校验密钥

      • SkeyID−e=prf(SkeyID+SkeyID−a+K(DH)+C(I)+C(R)+2)

        :数据加密密钥

13)阶段一与阶段二的关系 
  • 阶段转换机制

    • 密钥继承:阶段一生成的SkeyID−e和SkeyID−a将用于阶段二的通信加密

    • 模式区别:主模式(6个报文)完成IKE SA建立,快速模式(3个报文)协商IPsec SA

    • 安全关联:阶段一建立的安全通道为阶段二的IPsec SA协商提供保护

14)阶段二:快速模式 
  • 协商内容差异

    • 核心参数:

      • 安全协议选择(AH/ESP)

      • 工作模式(传输模式/隧道模式)

      • 加密算法与校验算法

    • 密钥更新:基于阶段一的密钥材料生成新的会话密钥

    • 报文特征:所有快速模式报文都经过加密(使用阶段一生成的SkeyID−e)

  • ISAKMP报文结构

    • 关键字段:

      • Initiator cookie/Responder cookie:64位随机数标识SA

      • Exchange type:标识交换模式(主模式值为2)

      • Flags:包含3个有效位

        • 加密位(0×01):1表示载荷加密

        • 提交位(0×02):确保SA协商完成

        • 纯验证位(0×04):支持密钥恢复机制

15)阶段二:快速模式任务 
  • 协商特点:快速模式仅使用3个报文完成协商,相比阶段一的6个报文更为精简

  • 核心任务:

    • 安全参数协商:确定ESP/AH协议、工作模式(传输/隧道)、加密算法、校验算法和生命周期

    • 密钥生成:交换密钥计算材料并生成最终数据传输密钥

    • 身份认证:完成对等体验证

16)阶段二:安全参数 

  • 参数内容:

    • 协议选择:AH或ESP协议

    • 工作模式:传输模式或隧道模式

    • 算法组合:加密算法(如AES)和校验算法(如SHA)

    • 生命周期:SA的有效时间参数

  • 协商特点:

    • 所有参数通过单个报文集中发送

    • 报文受阶段一生成的KEY保护(SKEYID−e加密,SKEYID−a校验)

    • 包含DH公钥和随机数等密钥材料

  • 实现机制:

    • 密钥材料:使用新的DH公钥(非阶段一的DH组)和随机数

    • 身份保护:身份ID嵌入第一个报文

    • 效率优化:将阶段一需要多个报文完成的任务压缩到3个报文内完成

4. IKE协商第二阶段过程分析
1)阶段二主要任务
  • 核心目标:建立2个单向的IPSec SA(安全关联)

  • 关键协商参数:

    • 安全协议选择(ESP或AH)

    • 工作模式(传输模式或隧道模式)

    • 加密算法(如3DES、AES等)

    • 哈希算法(如SHA-HMAC)

    • 生命周期参数

2)报文交互过程
  • 第一个ISAKMP报文

    • 载荷组成:

      • SA载荷:包含提议的IPSec保护策略

      • 身份载荷:标识通信双方

      • KE载荷:用于PFS(完美前向保密)的DH公钥

      • Nonce载荷:随机数值

      • HASH载荷:使用
        HASH=prf(SKEYID_a,Mid∣SAi∣Ni∣A∣IDi∣IDr)

        计算

        • 完整性验证:使用阶段一生成的完整性校验密钥

        • 作用范围:对整个加密数据做完整性认证

    • 参数协商内容:

      • 协议选择:明确使用ESP还是AH协议

      • 模式确认:确定采用传输模式还是隧道模式

      • 算法组合:包括加密算法和验证算法的具体选择

      • 数据流保护:定义受保护的数据流特征

      • PFS支持:通过KE载荷实现密钥材料更新

  • 关键参数说明

    • HASH载荷生成:

      • 计算依据:基于阶段一生成的SKEYID

      • 包含要素:消息ID(Message ID)、SA提议、随机数Nonce等

    • KE载荷作用:

      • 密钥更新:提供新的DH公钥用于密钥材料生成

      • PFS保障:确保即使主密钥泄露也不会影响历史通信安全

五、IPSec协议概述
1. IPSec协议保护IP数据的方式
  • AH协议保护:

    • 传输模式:在原IP头部后添加AH头部,结构为IP头部|AH头部|数据部分

    • 隧道模式:新增外层IP头部,结构为新IP头部|AH头部|原IP头部|数据部分

  • ESP协议保护:

    • 传输模式:结构为IP头部|ESP头部|加密数据|ESP验证

    • 完整性校验:通过HMAC-MD5或HMAC-SHA1生成哈希值进行验证

    • 加密过程:使用DES/3DES/AES加密原IP头部+数据部分+ESP尾部

  • 发送方处理流程:

    • 数据填充:对原IP头部+数据部分+ESP尾部进行填充

    • 加密处理:使用Key1进行DES/3DES/AES加密

    • 哈希计算:使用Key2生成HMAC-MD5/SHA1哈希值

    • 封装结构:最终格式为新IP头部|ESP头部|加密数据|ESP验证哈希值

2. 密钥计算材料与身份认证 
  • 快速模式三要素:

    • 安全参数协商:

      • 保护协议(AH/ESP)

      • 工作模式(传输/隧道)

      • 加密算法(如AES)

      • 校验算法(如SHA1)

      • 生命周期

    • 密钥材料交换:

      • 包含DH公钥和随机数N(I)/N(R)

      • 通过SkeyID-e和SkeyID-a进行加密保护

    • 双向身份认证:

      • 使用HASH(I)/HASH(R)验证身份

      • 携带ID(I)/ID(R)身份标识

3. 密钥计算与安全参数确认
  • 密钥派生过程:

    • SkeyID-a = prf(SkeyID + SkeyID-d + K(DH) + C(I) + C(R) + R)

    • SkeyID-e = prf(SkeyID + SkeyID-a + K(DH) + C(I) + C(R) + SkeyID-a)

  • 应答方处理:

    • 收到第二个报文后能计算全部五个密钥

    • 可重新生成SkeyID-d等衍生密钥

    • 通过DH公钥和随机数验证密钥材料

4. 身份认证与密钥保护 
  • 报文交互逻辑:

    • 第一个报文:发起方发送安全参数提案和DH公钥

    • 第二个报文:应答方确认参数并返回自己的DH公钥

    • 第三个报文:完成双向身份认证

  • 安全特性:

    • 阶段二所有参数均被阶段一的密钥加密保护

    • 实际通信中无法直接查看协商参数

    • 身份认证载荷包含HASH(R)和ID(R)等关键信息

5. 实验平台与隧道模式
  • 实验注意事项:

    • 隧道模式实际通过GRE over IPSec实现

    • ESP验证哈希值由应答方完成校验

    • 密钥计算需包含C(I)和C(R)等交换参数

  • 调试技巧:

    • 可通过抓包验证阶段一和阶段二的协商过程

    • 注意区分传输模式和隧道模式的报文结构差异

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值