VPN 加密
更新于 2026年9月21日 · 我们如何研究
「军用级加密」是一句宣传语,不是技术规范。真正重要的是:用哪种算法保护你的数据、两端如何商定密钥,以及这些密钥事后是否被丢弃。
加密承担的三项工作
机密性
一种对称加密算法 — 通常是 AES-256-GCM 或 ChaCha20-Poly1305 — 让承载它的任何人都读不懂内容。
密钥交换
椭圆曲线 Diffie-Hellman,通常是 Curve25519,让两端在完全不传输共享密钥的前提下各自算出同一个密钥。
身份认证
证书或预共享密钥能证明这台服务器就是你想连的那台,这正是阻止中间人拦截的关键。
你实际会遇到的加密算法
AEAD 指的是加密算法在一步之内同时提供机密性和完整性,因此篡改会被发现,而不是悄悄通过。
| 加密算法 | 类型 | 使用它的是 | 说明 |
|---|---|---|---|
| AES-256-GCM | AEAD 分组密码 | OpenVPN、IKEv2/IPsec | 在大多数较新的 CPU 上都有 AES-NI 硬件加速,因此在台式机上非常快 |
| ChaCha20-Poly1305 | AEAD 流密码 | WireGuard、OpenVPN | 在没有 AES-NI 的处理器上比 AES 更快,很多移动端和较老的芯片都属于这一类 |
| Curve25519 | 密钥协商 | WireGuard、较新的 TLS | 速度快,而且设计上避开了好几类实现错误 |
| SHA-2 / BLAKE2s | 哈希 | 各不相同 | 完整性校验与密钥派生 |
AES-256 与 AES-128
两者都没有被攻破。AES-256 密钥更长,因此面对未来的攻击留有更大余量,但一条正确实现的 AES-128 隧道并不算弱。在 VPN 上出问题的很少是加密强度,而是配置和对泄漏的处理。
完全前向保密
前向保密指的是每个会话都使用临时密钥,用完即弃。即使服务器的长期私钥日后被泄露,此前记录下来的会话流量依然无法被解密。WireGuard 在设计上会频繁更换密钥;OpenVPN 和 IKEv2 则通过临时的 Diffie-Hellman 达到同样效果。如果没有这一点,应当视为直接出局。
加密做不到什么
- 它不会隐藏你在使用 VPN 这件事本身。流量的大小和时间分布依然可见 — 见混淆。
- 它保护不了从来没有进入隧道的流量。发给你的 ISP 的 DNS 查询,无论用什么加密算法都是明文 — 见DNS 泄漏防护。
- 它无法阻止服务商看到你的目标地址,那是策略和架构层面的问题 — 见日志解读。
- 它不会拦截恶意软件、钓鱼,也不会阻止浏览器指纹识别。
常见问题
AES-256 比 ChaCha20 更好吗?
两者都没有被攻破。在有硬件加速的环境里 AES-256 更快;在没有硬件加速的处理器上 ChaCha20-Poly1305 更快,这正是 WireGuard 把它选为固定默认算法的原因。
「军用级加密」到底是什么意思?
没有任何具体含义。它通常指的是 AES-256,而这是任何人都能使用的公开 NIST 标准。请把这个说法当成宣传用语。