百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

IPsec 中的IKE(互联网密钥交换协议)工作流程详解

haoteby 2025-08-30 21:55 12 浏览

IKE是IPsec的核心组成部分,如果说IPsec是负责给网络数据“上锁”(加密)和“验身”(认证),IKE则用于“商量怎么锁”,“怎么交换钥匙”的。它是 IPsec 的助手,负责密钥和安全规则的交换。

在讲流程前,先理解两个关键术语,后面会反复用到:

① IKE SA,专门保护“IKE 协商过程”的规范手册(确保协商过程是安全的)。我们可以将其看做是“安全屋”。

② IPsec SA:真正用于给通信数据加密的规则手册。

SA可以理解为“安全规范手册”。里面记录了双方协商好的加密算法(如 AES)、认证算法(如 HMAC-SHA)、密钥、生存期(多久换一次规则)等。IPsec要工作,必须先有SA,IKE生成两类 SA。


IKE 的流程(以最经典的 IKEv1 为例)

IKEv1 的工作分两个阶段,可以类比成“先搭建用于谈判的安全屋,再在里面商量具体怎么保护数据”。


第一阶段 建立“IKE SA”(建立安全屋)

双方协商出一套保护 “后续协商” 的规则(IKE SA),并安全交换密钥材料,最后确认对方身份。

这个阶段有两种模式,分别是主模式(更安全,6 个消息)和野蛮模式(更快,3 个消息)。我们重点讲更通用的主模式(6 个消息,分 3 步)。

① 协商 “谈判室的基本规则”(消息 1-2)

协商过程就像两个人见面,先商量 “我们用中文聊,还是英文聊?”“说话时要不要用暗号加密?”,最后定下来 “用中文,加暗号”。

消息1(发起方→响应方)

发起方谈判:“我支持这些加密算法(如 AES-256)、认证算法(如 HMAC-SHA256)、密钥交换算法(如 DH 组 2),你看看能用哪个?”(相当于递一份 “安全规范清单”)。

消息2(响应方→发起方)

响应方从清单里挑一个双方都支持的组合,回复:“就用 AES 加密、SHA 认证、DH 组 2 吧!”(确定 “谈判室” 的基础规则)。

② 安全交换“密钥材料”(消息 3-4,核心!)

双方生成一个“共享密钥”,但不直接传递密钥(直接传会被截获),而是用Diffie-Hellman(DH)算法间接生成。

消息3(发起方→响应方)

发起方生成一个随机数(比如3),用DH算法处理后,把结果(3的公开计算结果)发给对方。

消息4(响应方→发起方)

响应方也生成一个随机数(比如5),用同样的DH算法处理后,把结果(5的公开计算结果)发给对方。

此时,双方都能根据自己的随机数和对方发来的 “计算结果”,算出同一个“共享密钥”(比如 3 和 5 通过 DH 算法,双方都能算出15)。

③ 确认对方身份(消息 5-6)

有了共享密钥后,双方要验证 “对方是不是自己人”(防止中间人冒充)。

(1)预共享密钥,双方提前约定一个“暗号”(比如“芝麻开门 123”)。发起方用共享密钥加密暗号发给对方,响应方解密后如果能对上,就确认身份。

(2)电子证书,类似“数字身份证”。发起方用自己的私钥给身份信息(如 IP 地址)签名,响应方用对方的公钥(从证书里取)验证签名,确认身份。

消息5(发起方)

发起方发送 “身份 + 身份验证信息”(加密的)。

消息6(响应方)

响应方发送 “身份 + 身份验证信息”(加密的),并确认收到。

到这里,“IKE SA”就建立好了,双方有了保护后续继续协商的“安全屋”。


第二阶段 建立“IPsec SA”(商量怎么保护数据)

在第一阶段建立的“安全屋”(IKE SA)里,协商出真正用于保护实际数据的规则(IPsec SA)。这个阶段叫快速模式(3 个消息)。

① 协商 “数据保护规则”(消息 1-2)

消息 1(发起方→响应方)

发起方说:“我想给数据加密,支持这些方式:隧道模式(包裹整个数据包)/ 传输模式(只加密数据部分)、AES-128 加密、HMAC-SHA1 认证,你看行吗?”

消息 2(响应方→发起方)

响应方确认一个双方都支持的组合,回复:“就用隧道模式、AES-128、SHA1!”

这个过程相当于在安全屋里,商量“给货物装箱时,是整个箱子锁起来(隧道模式),还是只锁箱子里的东西(传输模式)?用什么锁(加密算法)?怎么贴封条(认证算法)?”

② 生成 “会话密钥” 并确认(消息 3)

双方基于第一阶段的共享密钥,再结合新的随机数,生成专门用于IPsec的“会话密钥”(更短期,更安全)。

消息 3(发起方→响应方)

发起方确认“规则已收到”,并附上一个“确认码”(用新密钥计算的哈希值),证明自己确实生成了正确的密钥。

响应方收到后,验证确认码,若正确,IPsec SA 就正式生效。


Wireshark分析

通过Wireshark去观察IKE的交互全过程(1.1.1.1 是发起方路由,2.2.2.1是接收方路由),可以看到整个交互过程共分为9个UDP包,对应两个阶段,第一阶段6个包用于创建 IKE SA“安全屋”;第二阶段3个包则是用于建立 IPsec SA。

第一个阶段 IKE SA(6个消息包)

为了方便理解第一阶段的6个消息内容,特给出 H3C MSR36-20路由器中IKE配置。将Wireshark解析出的包内容,结合IKE配置去看,能更清晰的理解 IKE SA 功能。

H3C MSR36-20 发起方IKE配置
ike proposal 10 #加密、认证、秘钥交换算法 套餐
encryption-algorithm aes-cbc-128
dh group2
authentication-algorithm sha256
#
ike keychain SiteB #预共享秘钥
pre-shared-key address 2.2.2.1 255.255.255.255 key cipher $c$3$Sb2R4dpt+nOikJ4kdHQ/TLQc/KmGpTNazlvoXxxaZQ==
#
ike profile SiteB
keychain SiteB
local-identity address 1.1.1.1
match remote identity address 2.2.2.1 255.255.255.255
proposal 10
----------------分割线--------------
H3C MSR36-20 响应方IKE配置
ike proposal 10
encryption-algorithm aes-cbc-128
dh group2
authentication-algorithm sha256
#
ike keychain SiteA
pre-shared-key address 1.1.1.1 255.255.255.255 key cipher $c$3$ey0Mf+z0q7DzOAJaOXaIG1PkZhDjbiN5WAnP4PJVqA==
#
ike profile SiteA
keychain SiteA
local-identity address 2.2.2.1
match remote identity address 1.1.1.1 255.255.255.255
proposal 10
#

第一个包(发起消息1)

发起方H3C MSR36-20:“我支持加密算法AES-CBC-128、认证算法SHA256、密钥交换算法DH 组 2,还有预共享秘钥,你呢?”

第二个包(响应消息2)

响应方回复:“我也有这个安全套餐,就用它吧”。

第三个包(发起消息3)

发起方生成一个随机数用DH算法处理后,把结果(Key Exchange Data)发给对方。

第四个包(响应消息4)

响应方也生成一个随机数,用同样的DH算法处理后,把结果(Key Exchange Data)发给对方。

此时,双方都能根据自己的随机数和对方发来的结果,算出同一个“共享密钥”

第五个包(消息5)

发起方:“我们把刚刚算出来的‘共享秘钥’对下账吧。嘘!小心有人窃听,我们使用‘预共享秘钥’加密后再交流。”
从第五个包已经是加密信息了,但这个加密信息是根据设备中“预共享秘钥”进行加密。

第六个包(消息6)

发送方:“好的,我将我算出的‘共享秘钥’使用‘预共享秘钥’加密一下传送给你”

第六个包也是通过设备中“预共享秘钥”进行加密的。


IKE SA总结:可以看出整个第一阶段 IKE SA 的目标就是为了秘密地,不被窃取地生成“共享秘钥”,这个“共享秘钥”就是后续交流的“安全屋”,第二阶段IPsec SA交流都要使用这个“共享秘钥”来加密交流。


第二阶段 IPsec SA

IPsec SA整个阶段交互信息都是加密的,加密方法都是使用第一阶段 IKE SA 生成的“共享秘钥”。

由于都是加密信息,Wireshark失去了分析能力。我们根据H3C MSR36-20发起方与响应方的配置去理解。

H3C MSR36-20 发起方配置
ipsec transform-set ESP-AES-SHA
esp encryption-algorithm 3des-cbc
esp authentication-algorithm sha1
encapsulation-mode tunnel
protocol esp
#
ipsec policy VPN-POLICY 10 isakmp
transform-set ESP-AES-SHA
security acl 3001
remote-address 2.2.2.1
ike-profile SiteA
#
--------分割线--------
H3C MSR36-20 响应方配置
ipsec transform-set ESP-AES-SHA
esp encryption-algorithm 3des-cbc
esp authentication-algorithm sha1
encapsulation-mode tunnel
protocol esp
#
ipsec policy VPN-POLICY 10 isakmp
transform-set ESP-AES-SHA
security acl 3001
remote-address 1.1.1.1
ike-profile SiteB
#

第二阶段 IPsec SA 交互信息如下:

发起方说:“我想给数据加密,我支持隧道模式tunnel,协议是esp,加密算法3des-cbc,认证方式SHA1,你呢?”

响应方说:“我也支持隧道模式tunnel,协议也是esp,加密算法3des-cbc,认证方式SHA1。”

发起方确认:“规则已收到”,并附上一个“确认码”(用新密钥计算的哈希值),证明自己确实生成了正确的密钥。

响应方收到后,验证确认码,若正确,IPsec SA 就正式生效。


IPsec SA总结:这个阶段交流都要使用第一阶段IKE SA 生成“共享秘钥”来加密交流。第二阶段目的是新协商一套加密、认证以及传输协议的规则。一旦协商成功后,后续数据封装、交互都按照此规则来执行。


总结 IKEv1 的完整流程

第一阶段(主模式 6 消息),搭好 “安全屋”(IKE SA),确定保护协商的规则,用 DH 生成共享密钥,互相验明身份。

第二阶段(快速模式 3 消息):在“安全屋”里商量好“保护数据的规则”(IPsec SA),生成会话密钥,确认生效。

之后,IPsec 就可以用 IPsec SA 里的规则,给实际传输的数据加密、认证了。

补充IKEv2的改进

IKEv1虽然经典,但流程较长(9 个消息),IKEv2 简化了流程。

合并两个阶段,用4个消息就能同时建立 IKE SA 和第一个 IPsec SA;

支持更灵活的密钥更新、NAT 穿越(比如在家用路由器后也能正常协商);

更适合移动场景(比如手机切换网络时,能快速重连)。

但核心逻辑不变:先建立保护协商的安全通道,再协商保护数据的规则。

相关推荐

全球仅 1 辆!粉橙“郁金香”GT4 RS炸街,赞德沃特周末围观指南

“各位直男同胞,如果你女友突然送你一束‘郁金香’,别急着感动——万一钥匙在手,0-100km/h3.4秒,你会先感动还是先腿软?”...

国际足坛那些与国旗无关的国家队球衣

在世界足坛,国家队的球衣颜色一般都与国旗的颜色有关,不过也有例外。都知道意大利球衣由绿白红三色组成,但意大利球衣却是蓝色的,这是为什么呢?事实上意大利从1922年起就穿蓝色球衣,而那是当时意大利王室的...

世界主权国家国旗一览(欧洲篇)_世界国家的旗帜

1、芬兰(芬兰共和国)2、瑞典(瑞典王国)3、挪威(挪威王国)4、冰岛(冰岛共和国...

“黑色”机场:17国国旗全降半旗,荷兰王室和政府成员沉默以待

8年前,也就是2014年的7月23日,荷兰国王夫妇一身深沉黑装走在队伍的最前沿,身后跟着的是政府总理以及部分高级官员,没有例外,这些人的着装全都是清一色的黑装。不仅于此,机场上空的17个国家国旗也全部...

LiveScore为范戴克庆生:史上唯一举起英超奖杯的荷兰队长

今天是利物浦队长范戴克的34岁生日,媒体LiveScore晒出海报为范戴克庆生。海报中,范戴克身披荷兰国旗,手举英超奖杯。LiveScore写道:“祝范戴克生日快乐!史上唯一举起英超奖杯的荷兰队长!...

为何很多国家都用三色条纹国旗?_为什么很多国家国旗是三道杠

为何很多国家都用三色条纹国旗?你有没有发现,很多国家的国旗都是三种颜色的条纹旗,荷兰、俄罗斯、法国的国旗甚至连颜色都一样,实在是很难区分。据统计,世界上近1/3的国家都用的是三色条纹旗:俄罗斯是横着的...

西欧12个国家国旗的设计者和由来_西欧12个国家国旗的设计者和由来简介

1、法国国旗的设计者:答:雅克·路易·大卫:出生于法国巴黎,法国新古典主义画派画家,毕业于法国皇家绘画雕塑院。1794年设计的三色旗被正式采用为法国国旗。2、俄罗斯国旗的设计者:答:彼得一世:出生于莫...

世界杯再现橙色风暴,荷兰队为何要穿橙色?原因竟是个谐音梗

在世界杯上的荷兰队,总是给人留下深刻的印象。大开大合的全攻全守踢法,两翼齐飞的性感足球让人过目不忘。作为球迷,首先希望橙色军团荷兰队能在2022年,再次掀起郁金香风暴。荷兰队的橙色球衣给人以青春活力的...

国旗太像了!欧洲人自己也分不清,闹了不少笑话

国旗是一个国家身份的象征。但很多小伙伴都发现了,欧洲很多国家的国旗都十分相似,“傻傻分不清”。...

每日一旗——西欧篇荷兰_荷兰 西欧

从这期文章开始,我将在每一期文章里给大家介绍一面国旗,(希望我能够坚持下去...

剧荒吗?爱奇艺高热度“谍战剧”TOP5,剧粉不容错过!

Win2000服务器配置共享权限的老问题至今还在坑人,运维稍不留神就被各种"访问被拒"搞崩溃。关键得揪住三个死结:SMB协议兼容性、跨系统认证机制、权限继承逻辑,少一个环节全网瘫痪。W...

紧急 全球爆发比特币勒索病毒攻击,紧急应对措施!

北京时间2017年5月12日20时左右,全球爆发大规模勒索软件感染事件,我国大量行业企业内网、阿里云等大规模感染,教育网受损严重,攻击造成了教学系统瘫痪,甚至包括校园一卡通系统。判定该勒索软件是...

曾利用驱动人生升级通道传播的木马下载器攻击方法再次升级

一、概述御见威胁情报中心1月25日再次监测到曾利用驱动人生升级通道传播的木马下载器攻击方法再升级。本次升级主要变化在于攻击模块,木马在之前的版本上,新增计划任务“DnsScan”,在其中将永恒之蓝攻击...

【建议收藏】292个聚丙烯牌号性能、用途汇总!

聚丙烯(PP)作为五大通用塑料之一,其产量占据着世界第二把交椅,国内产量也是不可小觑。...

系统小技巧:改变Windows 10默认登录验证方式

在早期的WindowsXP或Vista系统中,密码凭据是登录系统的唯一选项。Windows10则大大不同,它在登录时能够提供包括本地账户密码、网络账户密码、Pin码、图形码以及其他各种验证识别方式...