VPN 工作原理

VPN 加密究竟如何运作:AES-256、握手与隧道揭秘

2026年6月14日26 分钟阅读
VPN 加密究竟如何运作:AES-256、握手与隧道揭秘

VPN 加密究竟如何运作:揭开 AES-256、握手与隧道的真相

大多数关于 VPN 加密的解释都止步于一句让人安心的口号:“您的流量受到军用级 AES-256 的保护。” 可这句话几乎没告诉您数据到底经历了什么。真正有意思的部分——几乎所有同类文章都略过的部分——是每一次安全连接的开场动作:两台素未谋面的计算机,要在一个充满敌意、每个字节都被窥视的网络中,协商出一把共享的密钥。

本文将跟随您的一个数据包,走完它的整个生命周期:握手、密钥交换、真正承担工作的对称加密、把一切打包起来的隧道封装,以及在另一端进行的解密。一路上,我们会讲清楚 AES-256 究竟是什么,为什么“军用级”这个说法只是营销话术而非技术规范,以及您的保护到底从哪里开始、又在哪里结束。不含糊其辞,也不制造恐慌。

两类密码学,以及 VPN 为何两者都需要

在追踪数据包之前,您需要先掌握一个基础概念:加密分为两个根本不同的家族,而 VPN 会分别用它们来完成不同的工作。

对称加密用同一把共享密钥来上锁和解锁。同一个秘密既用来加密数据,也用来解密数据。它的速度极快——现代 CPU 借助专门的 AES 指令,能以每秒数 GB 的速度加密对称数据(自 2010 年前后起,Intel 和 AMD 芯片就已内置 AES-NI 硬件加速)。它的软肋也很明显:双方必须持有同一把密钥,而您无法在一个有窃听者潜伏的不可信网络上,就这么直接把密钥发过去。

非对称加密(公钥密码学)使用一对在数学上彼此关联的密钥:一把人人皆可知晓的公钥,和一把始终保密的私钥。用其中一把锁住的数据,只能用另一把来解开。这巧妙地解决了密钥分发难题——您可以公开地分享公钥——但它慢得多,并不适合用来加密持续不断的流量。

每一个 VPN(以及每一个 HTTPS 网站)核心处那个精妙的把戏,就是把两者结合起来:在连接开始时,仅用一次缓慢的非对称运算,纯粹为了协商出一把快速的对称密钥。随后便把笨重的机器扔掉,让快速的密码算法去承担所有繁重的批量工作。这个开场协商,就叫做握手。

第一步:握手与密钥交换

当您的 VPN 应用建立连接时,在您浏览的第一个字节得到保护之前,您的设备和 VPN 服务器会先完成一次握手。它的目标狭窄而明确:让两台机器最终得到一把完全相同、且任何旁观者都无法推算出来的对称密钥,并确认服务器确实是它所声称的那一台。

首先是身份认证。服务器出示一份包含其公钥的证书,您的客户端则验证一个数字签名,以确认自己正在与真正的服务器对话,而不是某个正在实施中间人攻击的冒名顶替者。RSA 或 ECDSA 签名通常就在这一步发挥作用。

接下来是密钥协商,这一步才真正值得理解。现代 VPN 采用 Diffie-Hellman,并且几乎总是用它的椭圆曲线变体 ECDH。Diffie-Hellman 是一项了不起的数学成果:双方都把各自的公开值明文交换出去,各自再把对方的公开值与自己的私有秘密结合起来——多亏背后的数论原理——双方都能独立地算出同一个共享秘密。即便窃听者捕获了线路上传输的一切,他依然无法推导出这个秘密,因为那些私有的另一半从未在任何地方传输过。

握手的全部目的,就是在众目睽睽之下制造出一个共享秘密——一把两端都能算出完全相同结果的密钥,可任何旁观者都无法从他们眼睁睁看着经过的流量里把它重建出来。

从这个共享秘密出发,双方各自推导出将用于加密您真实流量的对称会话密钥。昂贵的公钥步骤至此完成。在 WireGuard 中,这一交换建立在 Curve25519 之上;在 OpenVPN 和 IKEv2/IPsec 中,它则作为 TLS 或 IKE 握手的一部分被协商出来。具体名称各不相同,但它们的形态完全一致。

第二步:AES-256 到底是什么

握有共享对称密钥之后,VPN 就切换到它的主力密码算法——最常见的是 AES,即高级加密标准(Advanced Encryption Standard)。AES 于 2001 年由美国国家标准与技术研究院(NIST)通过一场公开竞赛选拔并标准化;获胜的算法最初名为 Rijndael,由比利时密码学家 Joan Daemen 与 Vincent Rijmen 设计。

以下是营销话术很少解释的部分。AES 是一种分组密码(block cipher):它以固定的 128 位分组为单位加密数据(每次 16 字节)。“256”指的是密钥长度——256 位——而不是分组大小。AES 让每个分组经过多轮(rounds)替换、置换与混合:AES-128 用 10 轮,AES-192 用 12 轮,AES-256 用 14 轮。更多的轮数和更长的密钥意味着更大的安全裕度,代价是略微的性能开销。

  • 分组大小: 128 位,所有 AES 变体都相同。

  • 密钥长度: 128、192 或 256 位——这是那个数字所指的唯一区别。

  • 轮数: 分别为 10 / 12 / 14——密钥越长,变换过程越多。

  • 模式很关键: 裸 AES 需要一种运作模式(如 GCM 或 CBC)才能安全地加密数据流;VPN 使用的是经过认证的模式,绝不会用裸分组加密。

“军用级加密”:拆穿这个标签

“军用级加密”是一句营销话术,而不是一项技术认证。世界上没有任何标准机构会把软件盖章认定为“军用级”。厂商们想说的是:AES-256 获美国国家安全局(NSA)批准,可用于保护直至绝密(TOP SECRET)级别的机密信息——这是事实,但同一份 NSA 指南也批准 AES-128 用于秘密(SECRET)级别的数据。两者都是 AES,都被认为是安全的。

诚实的版本是这样的:就公开密码分析所知,AES-128 和 AES-256 都基本无法通过暴力破解攻克。一把 128 位密钥有 2^128 种可能取值——大约是 340 涧(undecillion)。哪怕您征用地球上的每一台计算机,也无法在太阳燃尽之前暴力破解出哪怕一把 AES-128 密钥。AES-256 那 2^256 的密钥空间并不是“两倍”那么强;它在天文数字之上又大了无数倍,可您本就早已越过了实际可攻击的界线。在面对暴力破解时,AES-128 与 AES-256 在现实世界中的差别,就一切实际意义而言,等于零——两者都遥不可及。

那为什么还要偏向 AES-256 呢?一部分是为了给未来密码分析的进展留出裕度,另一部分是因为量子计算(下文详谈)理论上会把有效密钥强度减半,而 AES-256 留下的缓冲更为宽裕。但如果一个 VPN 保护了您,那并不是因为 128 位和 256 位之间的差别,而是因为密码算法周围的一切——握手、密钥管理、具体实现。一个无懈可击的密码算法,配上一个被攻破的握手,什么也保护不了。

第三步:隧道封装——把数据包裹起来

现在轮到真正的数据了。假设您请求一个网页。您的设备会构建一个普通的 IP 数据包:一个标注目标地址的包头,和一段承载您请求内容的载荷。没有 VPN 时,这个数据包会带着它的目标地址——往往还有它的内容——明晃晃地穿过您 ISP 的网络。

有了 VPN,封装(encapsulation)便登场了。VPN 客户端取走您完整的原始数据包——连同包头在内——用对称会话密钥把它加密成一团无法读取的乱码。然后它把这团乱码包进一个全新的外层数据包里。这个外层包的包头对外部世界只说一件事:这是发往 VPN 服务器的流量。您真正的目标地址被严严实实地封在加密载荷之内。

这就是所谓的“隧道”。它不是一根物理管道;它是这样一种套娃式的嵌套结构——您真实的数据包成了一个新数据包的加密货物。任何监视您本地网络的人——您的 ISP、同一家咖啡馆 Wi-Fi 上的某个人、某个网络运营方——只看得到加密数据包流向一个 VPN 服务器的 IP 地址,对里面装着什么、最终又要去往何处一无所知。

  • 原始数据包: 您真实的目标地址 + 您的数据——没有 VPN 时一览无余。

  • 加密载荷: 整个原始数据包,用会话密钥打乱。

  • 新的外层包头: 仅以 VPN 服务器为收件人——窃听者所能读到的全部。

  • 结果: 旁观者得知您在用 VPN、以及有多少数据在流动,但读不到它的内容或最终目的地。

第四步:服务器端的解密与返程

被包裹好的数据包抵达 VPN 服务器。服务器持有相匹配的对称会话密钥,于是它解密外层载荷,还原出您的原始数据包,并读取它真正的目标地址。随后它代您把这个请求转发到广阔的互联网上——只不过现在这个请求看起来源自服务器的 IP 地址,而非您的。这正是 VPN 能改变您表面位置的原因。

网站回复给 VPN 服务器。服务器用同一把会话密钥加密这份响应,对其封装,再通过隧道送回您的设备,由设备解密。每一次往返都重复这套动作:加密、封装、传输、解封装、解密。由于对称密码算法有硬件加速,这只增加很小的开销——您能感觉到的延迟,主要来自您的流量绕道服务器所经历的物理路程,而不是那些运算。

不只是保密:完整性与认证

加密能隐藏您的数据,但它本身并不能证明数据原封不动地送达。老练的攻击者有时能在不解密的情况下翻转密文里的某些比特,从而破坏或操纵明文。安全的 VPN 会用完整性和认证校验来抵御这一点,而不只是依赖机密性。

较旧的设计会额外附加一个独立的 HMAC(基于哈希的消息认证码):一个针对整个数据包计算出来的密码学标签,让接收方能够察觉任何篡改。现代设计则采用 AEAD 密码算法——带关联数据的认证加密(Authenticated Encryption with Associated Data)——把加密与完整性融合进一次运算。AES-GCM 和 ChaCha20-Poly1305 是两种占主导地位的 AEAD 构造。如果一个 AEAD 数据包在传输途中哪怕只有一个比特被改动,认证标签就会校验失败,该数据包会被直接丢弃,而不会被信任。

ChaCha20-Poly1305 值得专门一提,因为 WireGuard 独家使用它,而且它是没有 AES 硬件加速的设备上的默认选择——许多手机和低功耗处理器运行 ChaCha20 时比 AES 更快、更接近恒定时间。它并不比 AES 弱;它是一种不同的、同样备受推崇的现代密码算法,由 Daniel J. Bernstein 设计。

完美前向保密:为什么被盗的密钥不是万能钥匙

有一种特性把认真的 VPN 配置与马虎的配置区分开来:完美前向保密(PFS)。握手期间推导出的会话密钥是临时的(ephemeral)——它们为每次会话重新生成、定期轮换,随后即被丢弃。它们永远不会作为长期秘密被写入磁盘。

由此带来的后果很重要。假设某个对手今天就记录下您所有的加密流量并存起来,多年后又攻破 VPN 服务器、窃走它的长期私钥。有了前向保密,那把被盗的密钥无法回溯解密您过去的会话,因为真正的会话密钥是临时的、早已不复存在——它们从来就无法仅凭长期密钥推导出来。每一次会话都被密封在它自己的那一刻里。这正是握手为何要使用临时的 Diffie-Hellman(常写作 ECDHE,末尾的 E 代表“ephemeral”,即临时),而不是反复使用一把静态密钥的原因。

加密在哪里结束:出口跳点很关键

一个流传甚广的误解是:VPN 会一路把您的流量加密到网站为止。它不会。VPN 加密保护的是您的设备与 VPN 服务器之间的这一段——仅此而已。一旦服务器解密了您的数据包并将其转发到真正的目的地,您的数据便继续穿越公共互联网,由那个目的地所提供的任何保护来照看。

这正是为什么即便用了 VPN,HTTPS 依然重要。如果您访问的是一个 https:// 站点,那段流量会携带它自己独立的、端到端的 TLS 加密,因此即使越过了 VPN 的出口也依然受保护。但如果您通过纯 http:// 发送某些内容,它离开 VPN 服务器时就是明文,处在服务器与目的地之间的任何人都能读到。VPN 改变的是“谁能看到您未加密的出口流量”——从您本地的 ISP 转移到了 VPN 提供商及其后续网络——它并不能让明文凭空变得安全。请选择一个您愿意把这个位置交付信任的提供商,并坚持使用 HTTPS。

常见误区,逐一纠正

  • “AES-256 牢不可破。” 没有哪个正经系统能永远牢不可破,而且攻击很少冲着密码算法本身去——它们瞄准的是弱密钥、有缺陷的实现、泄露的凭据,或是使用软件的那个人。数学是最坚固的一环;它周围的一切都要软得多。

  • “他们直接暴力破解就行了。” 暴力破解一把 128 位密钥不是慢的问题——它在物理上根本不可行。那些数字超出了可观测宇宙的能量与时间预算。真正的入侵来自绕过密码算法,而不是攻破它。

  • “量子计算机会瞬间破解我的 VPN。” 这是最被过度炒作的说法。Grover 算法理论上能把对称密钥的有效强度减半,把 AES-256 削减到仍然宽裕的约 128 位裕度。更值得长期担忧的是非对称握手(RSA/ECDH),它受到 Shor 算法的威胁——这正是业界正在迁移到后量子密钥交换的原因。但今天还不存在能做到这一点的量子计算机,而“现在收割、日后解密”是一种未来风险,而非当下的破解。

  • “位数越多就越安全。” 越过某个阈值之后,密钥长度在面对暴力破解时便不再有意义。协议设计、前向保密和干净的实现,对真实安全的决定作用,远胜于 128 位还是 256 位之争。


实用要点

剥去那些口号,VPN 的加密其实是一条清晰、被充分理解的流水线:一次公钥握手引导出一把共享的对称密钥,这把密钥驱动一个像 AES-GCM 或 ChaCha20-Poly1305 这样快速且经过认证的密码算法,您的数据包被封装进加密的外层数据包里,而临时密钥则确保即便服务器明天被攻破,今天的秘密也依然是秘密。

  • 密码算法的选择(AES-128 还是 AES-256)很少是决定性因素——两者都远超暴力破解的能力范围。

  • 优先选择现代协议(WireGuard,或配置得当的 OpenVPN/IKEv2)、经过认证的 AEAD 加密,以及完美前向保密。

  • 记住,加密在 VPN 服务器处就结束了——坚持使用 HTTPS 以获得真正的端到端保护。

  • 把“军用级”和“牢不可破”当作营销噪音;判断一个 VPN,要看它的实现、密钥处理,以及您愿意托付给它运营方的那份信任。


常见问题

“军用级加密”是真的,还是只是营销噱头?

它是营销话术。世界上没有官方的“军用级”认证。这个说法通常指的是 AES-256,美国 NSA 确实批准它用于保护直至绝密(TOP SECRET)级别的机密数据——但 NSA 同样批准 AES-128 用于秘密(SECRET)级别的数据。密码算法本身是真实而强大的;那个标签只是包裹在它外面的一句推销词。

简单解释一下,什么是 AES-256 加密?

AES-256 是使用 256 位密钥的高级加密标准(Advanced Encryption Standard)。它是一种分组密码,把数据以 128 位为单位、经过 14 轮数学变换打乱。“256”仅指密钥长度,而非分组大小,它是当今使用中被分析得最多、最受信任的密码算法之一。

VPN 握手期间到底发生了什么?

VPN 握手会认证服务器(通过证书和数字签名),并运行一次密钥交换——通常是椭圆曲线 Diffie-Hellman——让双方各自独立算出同一把秘密的对称密钥,而无需把它发送到网络上。随后这把对称密钥就加密您所有的真实流量,从而把缓慢的公钥运算变成一次性的初始化步骤。

VPN 隧道封装是如何工作的?

VPN 隧道封装(也称封装)会取走您的原始数据包,把它完整加密,再包进一个仅以 VPN 服务器为收件人的新外层数据包里。您本地网络上的旁观者只看得到流向服务器的加密流量,对其内容或真实目的地一无所知。服务器随后将其拆包解密,再转发到真正的目的地。

对 VPN 而言,AES-256 比 AES-128 更好吗?

在实践中,两者面对暴力破解攻击的差别可以忽略不计——破解任何一个在计算上都不可行,因为即便是 AES-128 那 2^128 的密钥空间,也超出了任何现实的算力。AES-256 提供更大的安全裕度,对未来的量子进展也有更好的缓冲,但现实世界中的 VPN 安全,更多取决于协议设计、前向保密和实现质量,而非密钥大小。

什么是完美前向保密,它为什么重要?

完美前向保密意味着每次会话都使用临时的密钥,这些密钥重新生成后随即被丢弃。即便攻击者日后窃取了 VPN 服务器的长期私钥,他依然无法解密您过去录下的会话,因为那些会话密钥已不复存在,而且从来就无法仅凭长期密钥推导出来。它保护您的历史记录免受未来被攻破的影响。

VPN 会把我的流量一路加密到网站吗?

不会。VPN 加密只保护您的设备与 VPN 服务器之间的这一段。一旦服务器解密您的流量并将其继续转发,保护就取决于目的地了——HTTPS 站点保持端到端加密,但纯 HTTP 流量离开 VPN 服务器时是可读的明文。这正是为什么即使用了 VPN,您也应该坚持使用 HTTPS。

常见问题

“军用级加密”是真的,还是只是营销噱头?

它是营销话术。世界上没有官方的“军用级”认证。这个说法通常指的是 AES-256,美国 NSA 确实批准它用于保护直至绝密(TOP SECRET)级别的机密数据——但 NSA 同样批准 AES-128 用于秘密(SECRET)级别的数据。密码算法本身是真实而强大的;那个标签只是包裹在它外面的一句推销词。

简单解释一下,什么是 AES-256 加密?

AES-256 是使用 256 位密钥的高级加密标准(Advanced Encryption Standard)。它是一种分组密码,把数据以 128 位为单位、经过 14 轮数学变换打乱。“256”仅指密钥长度,而非分组大小,它是当今使用中被分析得最多、最受信任的密码算法之一。

VPN 握手期间到底发生了什么?

VPN 握手会认证服务器(通过证书和数字签名),并运行一次密钥交换——通常是椭圆曲线 Diffie-Hellman——让双方各自独立算出同一把秘密的对称密钥,而无需把它发送到网络上。随后这把对称密钥就加密您所有的真实流量,从而把缓慢的公钥运算变成一次性的初始化步骤。

VPN 隧道封装是如何工作的?

VPN 隧道封装(也称封装)会取走您的原始数据包,把它完整加密,再包进一个仅以 VPN 服务器为收件人的新外层数据包里。您本地网络上的旁观者只看得到流向服务器的加密流量,对其内容或真实目的地一无所知。服务器随后将其拆包解密,再转发到真正的目的地。

对 VPN 而言,AES-256 比 AES-128 更好吗?

在实践中,两者面对暴力破解攻击的差别可以忽略不计——破解任何一个在计算上都不可行,因为即便是 AES-128 那 2^128 的密钥空间,也超出了任何现实的算力。AES-256 提供更大的安全裕度,对未来的量子进展也有更好的缓冲,但现实世界中的 VPN 安全,更多取决于协议设计、前向保密和实现质量,而非密钥大小。

什么是完美前向保密,它为什么重要?

完美前向保密意味着每次会话都使用临时的密钥,这些密钥重新生成后随即被丢弃。即便攻击者日后窃取了 VPN 服务器的长期私钥,他依然无法解密您过去录下的会话,因为那些会话密钥已不复存在,而且从来就无法仅凭长期密钥推导出来。它保护您的历史记录免受未来被攻破的影响。

VPN 会把我的流量一路加密到网站吗?

不会。VPN 加密只保护您的设备与 VPN 服务器之间的这一段。一旦服务器解密您的流量并将其继续转发,保护就取决于目的地了——HTTPS 站点保持端到端加密,但纯 HTTP 流量离开 VPN 服务器时是可读的明文。这正是为什么即使用了 VPN,您也应该坚持使用 HTTPS。

Marcus Feld
Marcus Feld

隐私与安全专家

Network engineer breaking down VPN protocols and encryption in plain language.

评论

订阅

领先一步抵御隐私威胁

每周接收VPN指南、安全提示和独家优惠。