当前位置: 首页 > news >正文

IPSec 与 IKE 核心知识点总结

一、IPSec 安全基础

IPSec 是保障 IP 数据传输安全的核心协议,其核心围绕密钥管理安全策略约定展开,具体包括以下关键内容:

1. 对称密钥的作用与要求

对称密钥是 IPSec 实现加密、验证的基础,主要用于三个场景:

  • 加密 / 解密算法(KEY1):对 IP 数据进行加密,确保数据机密性;

  • HASH 算法(KEY2):用于数据完整性校验(如 HMAC),防止数据被篡改;

  • 身份认证(KEY3):验证通信双方的合法性,防止身份伪造。

密钥要求

  • 横向一致:通信双方的同功能密钥必须相同(如 A 的 KEY1 与 B 的 KEY1 一致,否则无法解密);

  • 纵向独立:同一设备的 KEY1、KEY2、KEY3 必须不同(避免一个密钥泄露导致所有安全机制失效)。

举例:类似两人通信,A 加密用的钥匙(KEY1)和 B 解密用的钥匙必须一样(横向一致),但 A 的加密钥匙(KEY1)不能和自己的校验钥匙(KEY2)相同(纵向独立),否则小偷拿到一把钥匙就能破解所有保护。

2. DH 算法:对称密钥的安全交换

Diffie-Hellman(DH)算法是在不安全信道上生成共享对称密钥的核心技术,其工作流程如下:

  1. 生成公私钥对:通信双方(PeerA、PeerB)各自生成私有密钥(不传输)和公开密钥(可传输);

  2. 交换公钥:双方将公开密钥发送给对方;

  3. 计算共享密钥:PeerA 用自己的私钥 + PeerB 的公钥计算,PeerB 用自己的私钥 + PeerA 的公钥计算,最终得到相同的共享密钥(Secret_Key_X);

  4. 加密对称密钥:用共享密钥加密实际使用的对称密钥(如 KEY1、KEY2、KEY3)并传输,对方用相同共享密钥解密。

举例:DH 算法类似两人约定用 “公开的配方”(DH 组)各自在家做 “面团”(私钥),然后交换 “面团样本”(公钥);双方用自己的面团和对方的样本混合,最终得到完全相同的 “共享面团”(共享密钥)。即使别人拿到样本,也无法还原出相同的混合面团。

DH 密钥组:不同组定义了密钥长度和算法,影响安全性和性能,例如:

  • 组 5(1536 位,直算法):Cisco 支持的最安全组;

  • 组 15(3072 位,直算法):理论最安全,但 Cisco 不支持;

  • 组 3/4/7:基于椭圆曲线算法,密钥长度短但安全性高(如组 3 仅 155 位)。

3. 安全关联(SA):IPSec 的 “安全策略约定”

SA 是 IPSec 实体(主机、网关)之间的核心约定,决定了 “如何保护数据”,是 IPSec 的基础。

(1)SA 的核心内容

包含保护 IP 数据的所有参数:

  • 协议选择(AH 或 ESP);

  • 运行模式(传输模式或隧道模式);

  • 加密算法(如 3DES、AES)、验证算法(如 MD5、SHA);

  • 加密密钥、验证密钥;

  • 密钥生存期、抗重放窗口等。

(2)SA 的单向性

一个VPN连接有一对SA,通信是双向的,所以A的出方向的的SA和B的入方向是一对SA(这一对是一样的),B的出方向和A的入方向是一对SA

SA 是单向的:

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

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

  • 通信双方需各有一对 SA(入 + 出),构成 “SA 束”,且双方的 SA 参数必须一致。

举例:SA 类似两人约定的 “快递规则”:A 寄给 B(出方向 SA)和 B 收 A 的(入方向 SA)是两套规则,但内容必须一致(如都用 ESP 加密、传输模式、AES 算法),否则 B 无法正确接收 A 的包裹。

(3)SA 的产生方式
  • 手工配置:管理员手动指定 SA 参数,无生命周期(永不过期),易出错且存在安全隐患(密钥长期不变),实际中几乎不用;使用时间越长就越不安全,且物理距离较远

  • IKE 自动管理:通过 IKE 协议动态协商、维护 SA,有生命周期(到期自动更新,会更安全),是主流方式。如果安全策略要求建立安全、保密的连接,但又不存在与该连接相应 的SA,IPSec会立刻启动IKE来协商SA。

二、IKE 工作过程:动态建立 SA 的核心协议

IKE(互联网密钥交换协议)是动态建立 SA 的协议,基于 ISAKMP 框架,融合了 Oakley 和 SKEME 的技术,实现 SA 的自动协商与管理。IKE不是一个单独协议,是一个协议簇,包含很多不同协议,都可以完成SA或密钥的协商,利用协议协商的都会有生命周期

1. IKE 的核心构成

  • ISAKMP:定义 SA 协商的框架(消息格式、状态转换),是 IKE 的基础; 

  • Oakley:提供密钥交换的模式(如 DH 算法的应用方式),并没有 具体的定义交换什么样的信息;

  • SKEME:提供身份认证机制(如预共享密钥、证书)。

举例:IKE 像一个 “项目组”:ISAKMP 是 “项目管理流程”(规定如何沟通),Oakley 是 “技术方案模板”(规定如何生成密钥),SKEME 是 “成员身份验证方法”(确保参与方合法)。

ISKMP协议:(安全联盟密钥管理协议)

  • 定义了协商、建立、修改和删除SA的过程和包格式。

  • ISAKMP只是为协商、修改、删除SA的方法提供了一个通用的框架,并没有定义具体的SA格式。这个通用的框架是与密钥交换独立的,可以被不同的密钥交换协议使用。

  • ISAKMP报文可以利用UDP,端口都是500(思科500,深信服5000),一般情况下常用 UDP协议。IKE使用ISAKMP消息来协商并建立SA。 如果不用这个,需要多个VPN隧道就需要多个公网地址。在IP头部后面加装了一个UDP头部

2. IKE 协商的两个阶段

IKE 通过两阶段协商建立 SA,确保通信安全:

第一阶段:建立 ISAKMP SA(IKE SA)

需要完成的任务:协商出一个双向的ISAKMP SA,用于保护阶段二

包含三个部分:

        1.协商安全参数:加密算法、HASH算法、DH组、身份认证、生命周期,建立一个初始化的SA

        2.交换计算密钥的材料:DH算法(交换公钥,随机数),计算出各种密钥

        3.对对等体做身份认证,认证成功后进入阶段二

作用:生成一个 “安全信道”,保护第二阶段的协商过程。 有两种模式:

  • 主模式(Main Mode):6 条 ISAKMP 消息交互,安全性高(身份信息加密);

  • 野蛮模式(Aggressive Mode):3 条 ISAKMP 消息交互,速度快但安全性较低(身份信息可能明文传输)。

主模式详细流程

  1. 第 1-2 条消息:交换 SA 载荷,协商安全参数(加密算法、HASH 算法、DH 组、认证方式、生存期等),双方需达成一致;

  2. 第 3-4 条消息:交换 DH 公钥(KE 载荷)和随机数(Nonce 载荷),双方基于 DH 算法计算共享密钥,并生成 SKEYID 系列密钥(用于后续加密和认证);

  3. 第 5-6 条消息:交换身份载荷(如 IP 地址)和 HASH 载荷(验证身份),确保对方拥有相同的预共享密钥(或证书),完成身份认证。

举例:主模式类似两人 “先悄悄商量见面规则”(1-2 条消息),再 “交换信物生成钥匙”(3-4 条消息),最后 “验证身份确认对方是自己人”(5-6 条消息),全程私密,不易被偷听。

第二阶段:建立 IPSec SA

主要完成任务:2个单向的IPSEC sa 用于保护数据

步骤:

1.协商安全参数(安全协议(ESP或AH),工作模式(传输模式或隧道模式),保护数据用的加密算法,保护数据用的HASH算法,保护数据用的密钥的生命周期)

2.交换计算密钥的材料,然后生成密钥

3.进行身份认证

作用:在第一阶段的安全信道中,协商用于保护实际 IP 数据的 SA。 仅有一种模式:快速模式(Quick Mode),3 条 ISAKMP 消息交互,所有消息均被第一阶段的 ISAKMP SA 加密保护。

快速模式流程

  1. 第 1 条消息:发起方发送 SA 载荷(包含 IPSec 策略,如 ESP/AH、模式、算法)、KE 载荷(可选,用于 PFS 密钥交换)、Nonce 载荷和 HASH 载荷(验证消息完整性);

  2. 第 2 条消息:响应方验证消息后,返回匹配的 SA 载荷及相关参数;

  3. 第 3 条消息:发起方确认,完成 IPSec SA 协商。

举例:快速模式类似两人 “在已上锁的会议室里”(第一阶段的安全信道),商量 “具体的文件传输规则”(IPSec SA),确保规则只有双方知道。

可以用一个阶段一保护多个阶段二

3. ISAKMP 报文格式

IKE 消息基于 ISAKMP 报文格式,核心结构包括:

Cookie:

  • 发起方Cookie(Initiator Cookie):64 bit – 常用的一个生成Cookie的方法是对下述信息进行HASH(MD5、 SHA1或其他HASH算法)之后,取结果的前64位:

    • 源IP地址+目的IP地址+UDP源端口+UDP目的端口+随机数 +当前日期+当前时间

  • 报头例如:A发给B

    • 含发起方 Cookie(64 位)

      • 第一个报文中不知道应答方Cookie,置为0,在应答方收到后,发送第二个报文,发起方Cookie是A,应答方Cookie是B,在整个VPN协商中,只能由发起方发送第一个报文,所以发起方是固定的

    • 应答方 Cookie(64 位,用于防止 DOS 攻击)

    • 下一个载荷(指示后续内容类型,报文相当于一个火车头,下一个载荷代表第一节车厢后带的数据

    • 交换类型(主模式 / 野蛮模式等)标识阶段一,只有阶段一有两种模式

    • 标志(如是否加密)只有后三位有用:加密位:置为1,代表头部后面的载荷都是加密的,置为0,表示是明文,没有加密;提交位:确保发送数据之前完成Sa协商;纯验证位:能够为恢复密钥机制的机构使用

    • 报文 ID(第二阶段用于标识协商):在第一阶段全为0,在第二阶段是发起方的随机值,可以标识第二阶段的状态

    • 长度(报文总字节数):头部加载荷的总长度

  • 载荷:携带具体内容,如 SA 载荷(安全参数)、KE 载荷(DH 公钥)、身份载荷(IP 地址 / 域名)、HASH 载荷(身份验证)等,共 13 种类型。

举例:Cookie 类似 “验证码”,每次协商生成唯一值,收到与之前不同的 Cookie 就丢弃报文,避免攻击者发送大量假消息瘫痪系统。

工作过程

阶段一:主模式

三个部分:

1.协商安全参数:加密算法、HASH算法、DH组、身份认证、生命周期,建立一个初始化的SA

2.交换计算密钥的材料:DH算法(交换公钥,随机数),计算出各种密钥

3.对对等体做身份认证

计算密钥:

阶段二:快速模式

http://www.dtcms.com/a/343404.html

相关文章:

  • 使用Python 创建虚拟环境的两种方式
  • 订单簿数据深度学习方法在大单发现应用
  • 让医学数据更直观——MedCalc 23.1.7 最新版使用体验
  • sageattention低比特量化注意力机制,比FlashAttention快5 倍
  • DeepSeek-V3.1 Claude Code: 革命性的AI编码助手详解与应用指南
  • 论文图片在要求dpi下,压缩尺寸
  • ES_预处理
  • java18学习笔记-Simple Web Server
  • 美国联邦调查局警告俄罗斯针对思科设备的网络间谍活动
  • 残差神经网络(ResNet)
  • 矫平机与纵剪:一条钢卷“变身”的全过程
  • 【UE5-Airsim】Windows10下安装UE5-Airsim的仿真环境
  • leetcode 1658 将x减到0的最小操作数
  • 同题异构解决leetcode第3646题下一个特殊回文数
  • Linux网络socket套接字(上)
  • linux 之virtio 的驱动框架
  • Motocycle 智能仪表盘
  • 白光干涉测量系统的复合相移三维重建和多视场形貌拼接的复现
  • 【自然语言处理与大模型】微调与RAG的区别
  • JavaScript基础语法five
  • 【Protues仿真】基于AT89C52单片机的数码管驱动事例
  • 力扣905:按奇偶排序数组
  • 2025-08-21 Python进阶4——错误和异常
  • 开发者中使用——控制台打印数据
  • 爬虫基础学习-基本原理和GET请求
  • JavaScript 基本语法
  • 智慧城市SaaS平台/市政设施运行监测系统之空气质量监测系统、VOC气体监测系统、污水水质监测系统及环卫车辆定位调度系统架构内容
  • 学习嵌入式之驱动
  • 3.2.6 混凝土基础施工
  • Chrome 内置扩展 vs WebUI:浏览器内核开发中的选择与实践