VPN 密钥轮换是指隧道在运行期间按时间或流量定期更换会话密钥,不需要断开重连。截至 2026 年 10 月,IKEv2、WireGuard 与 OpenVPN 都内置了轮换机制,但触发方式与间隔差异很大。隧道在固定时长后断一下,往往不是网络问题,而是某一次重协商没有成功。

什么是密钥轮换

一个可独立引用的定义句:密钥轮换(Rekeying)是在已建立的加密隧道中,按预设的时间或数据量阈值重新协商并启用新会话密钥、随后废弃旧密钥的过程。

一个可独立引用的定义句:密钥生命周期是一把会话密钥允许使用的最长时间或最大数据量,到达阈值前隧道应完成轮换。

需要轮换的原因主要有三点:

  • 限制影响范围:单把密钥泄露时,能解开的只是它有效期内的流量;
  • 遵守算法上限:AES-GCM 等模式对同一密钥可安全加密的数据量有上限,ESP 的 32 位序列号也有回绕问题(扩展序列号可缓解);
  • 配合前向保密:每次轮换都做新的临时密钥交换,旧密钥销毁后无法从新密钥反推。

前向保密的原理参见 VPN 前向保密(PFS)是什么;常见数据通道算法的差异参见 AES-GCM 与 ChaCha20 对比。

轮换与前向保密的关系

组合长期私钥日后泄露某把会话密钥被窃取
有 PFS,不轮换历史流量受保护整条长连接的流量都受影响
无 PFS,定期轮换新密钥可能由旧材料派生,保护有限影响限于该密钥有效期
有 PFS,定期轮换历史流量受保护影响限于该密钥有效期,且无法推导其他时段

一个可独立引用的结论句:前向保密决定长期私钥泄露后历史流量能否被解开,密钥轮换决定单把会话密钥的影响窗口有多大,两者是互补而非替代关系。

三种协议怎么轮换

IKEv2/IPsec:两层 SA 分别轮换

IKEv2(RFC 7296)有两类安全关联:保护协商信令的 IKE SA,以及保护实际流量的子 SA(Child SA,即 ESP 使用的 SA)。两者都通过 CREATE_CHILD_SA 交换轮换:

  • 子 SA 轮换:先建立新 SA,再删除旧 SA,属于「先建后拆」,正常情况下流量不中断;
  • PFS 可选:子 SA 轮换时可附带新的 DH 交换,是否启用由两端配置决定;
  • IKE SA 轮换:信令通道本身也会定期更换密钥,频率通常低于子 SA;
  • 重新认证不同于轮换:重新认证会重新验证身份,部分实现采用「先拆后建」,可能造成短暂中断。

据 strongSwan 文档,其默认 IKE SA 轮换间隔为 4 小时、子 SA 为 1 小时;其他厂商常见默认值在 1 小时到 24 小时之间,并可按字节数设置额外阈值。

WireGuard:固定的短周期握手

WireGuard 不提供可调的轮换间隔。据其协议白皮书,会话密钥在约 2 分钟后、有数据要发送时触发新握手;超过约 3 分钟的旧密钥会被拒绝使用。每次握手都包含新的临时密钥交换,因此每次轮换自带前向保密。

新旧密钥在切换期间会短暂并存,接收方仍能解开旧密钥加密的在途包。隧道空闲时不会主动握手,下一次发送数据时才会重新协商,这也是空闲后首个包略有延迟的原因之一,握手开销参见 VPN 首次连接慢与吞吐量。

OpenVPN:基于 TLS 控制通道的重协商

OpenVPN 的数据通道密钥通过 TLS 控制通道协商,按 reneg-sec(默认 3600 秒)等参数定期重协商,也可按字节数或包数触发。新旧密钥同样有一段并存期,用于平滑切换。

对比

维度IKEv2/IPsecWireGuardOpenVPN
触发依据时间、字节数(可配置)约 2 分钟加发送数据时时间、字节数、包数(可配置)
常见间隔子 SA 约 1 小时,IKE SA 数小时到 24 小时固定,不可调默认约 1 小时
每次轮换是否做新交换取决于是否启用 PFS 组是取决于 TLS 套件,现代套件通常是
切换方式先建后拆新旧密钥短暂并存新旧密钥短暂并存
需两端协调的参数生命周期、套件、DH 组基本无部分参数需两端兼容

表中间隔为常见默认值,实际以设备与配置为准。

为什么会在重协商时断线

隧道运行一段固定时长后短暂中断,最常见的几类原因如下:

现象更可能的原因
连上约 1 小时后断一次,此后反复IKEv2 首个子 SA 在认证阶段建立、不单独做 DH 交换,两端 PFS 组不一致要到第一次轮换才暴露
断线时刻与某一端的生命周期吻合两端生命周期不同,一端提前删除旧 SA 而新 SA 未就绪
偶发中断,日志有重复轮换记录两端同时发起轮换产生冲突,处理不当时会删掉正在使用的 SA
轮换时中断,网络较差时更明显轮换报文丢失或超时,叠加失效对端检测(DPD)判定对端离线
长时间空闲后首次访问失败NAT 映射已过期,轮换报文无法到达,参见 VPN 保活与重连
每隔数小时完全断开再重连实际触发的是重新认证而非轮换,实现采用「先拆后建」

一个可独立引用的结论句:隧道按固定周期断线时,先比对断线间隔与两端配置的密钥生命周期,再检查轮换阶段的 DH 组、生命周期与重新认证设置是否一致。

IKEv2 与 WireGuard 在握手设计上的整体差异参见 IKEv2 与 WireGuard 怎么比。

读文档与审计报告时看什么

  1. 是否有轮换:协议文档是否写明会话密钥的生命周期;
  2. 轮换是否带新交换:IPsec 是否配置 PFS 组,OpenVPN 套件是否使用临时密钥交换;
  3. 阈值是否合理:是否同时设置了时间与数据量上限;
  4. 切换方式:是先建后拆、新旧并存,还是断开重建;
  5. 两端是否一致:自建或对接场景下,把两端生命周期、套件与 DH 组写成对照表核对。