隐私与安全

WireGuard 解析:为何 SecureNet 在其上运行

协议选择听起来像是工程师的细节,却是连接只需一秒而非十秒以及电池几乎感受不到 VPN 开启的根本原因。

协议速度安全

快速回答

WireGuard 是一种从零设计的 VPN 协议,基于现代密码学且代码量极小,约四千行,而旧协议往往有数十万行。这使其速度快、耗电低、切换网络时能快速重连,并且更易审计。SecureNet 仅使用 WireGuard:没有协议选择菜单,因为没有更好的选项可供提供。

关键要点

  • 约 4,000 行代码,相较于 OpenVPN 的堆栈有数十万行。代码更少,漏洞更少。
  • 采用现代密码学(ChaCha20、Poly1305、Curve25519、BLAKE2s)。无协商,无弱选项。
  • 约一秒即可连接,并能在从 Wi-Fi 切换到蜂窝网络时保持不中断。
  • 比 OpenVPN 更低的电池消耗,因为每个数据包的工作量更少。
  • 自 2020 年起已内置于 Linux 内核,并被大多数主流 VPN 服务采用。

协议的作用

VPN 协议是一套用于构建加密隧道的规则:两端如何证明身份、如何协商密钥以及如何封装每个数据包。每个 VPN 都使用一种协议。整个 2010 年代,大多数人只能在 OpenVPN(灵活但慢)和 IKEv2/IPsec(更快但复杂且实现不统一)之间选择。我们的 VPN 入门指南 讲解隧道本身;本文则讨论隧道的构成。

WireGuard 的不同之处

WireGuard 由 Jason Donenfeld 设计,核心理念只有一个:保持小巧。它不支持所有密码套件和选项,而是固定一套现代密码原语,并完全取消协商。于是得到的协议只有几千行代码,任何人都能在一个下午读完。

  • 无密码协商。 双端已经明确使用哪种算法,无需降级,也不会出现配置错误。
  • 无状态握手。 连接在一次往返内完成,因而感觉瞬时。
  • 内置漫游。 如果因为从 Wi-Fi 步行到蜂窝网络而导致 IP 地址变化,隧道会直接在新地址上继续。
  • 默认静默。 WireGuard 服务器不会响应未知密钥的报文,因此对扫描是不可见的。

WireGuard、OpenVPN 与 IKEv2 对比

三种常见的 VPN 协议
WireGuardOpenVPNIKEv2/IPsec
代码库非常小非常大体积大,分布在操作系统各处
密码学固定、现代可配置,包含旧版选项可配置
连接时间约一秒数秒一至数秒
网络切换处理无缝通常会重新连接良好
对 iPhone 的电池影响较高中等
审计难易度

这在 iPhone 上意味着什么

手机会不断切换网络并大部分时间处于休眠状态。每次网络变化都需要长时间重新协商的协议在手机上会显得卡顿,而每个数据包都进行大量计算的协议会在电池统计中体现出来。WireGuard 的漫游和轻量设计使得 SecureNet 能在你离开家时瞬间重新连接,且全天开启也不会成为电池负担。

为什么 SecureNet 只提供 WireGuard

一些 VPN 应用会提供协议选择菜单。我们曾考虑过,但最终放弃。每增加一种协议就意味着更多代码需要维护、更多潜在漏洞,而且大多数用户并不具备选择的能力。WireGuard 比其他方案更快、更简洁、审计更容易,我们在 iPhone、iPad 或 Mac 上没有任何场景会建议切换。因此不存在切换的需求。

配置更少并非限制,而是协议的整体设计理念,我们已将其保留在应用中。

实际速度表现

该协议去除了大部分加密开销,剩下的主要由距离和服务器负载决定速度。这也是为什么 SecureNet 的 Automatic 模式会根据延迟和负载挑选服务器,以及为何在设置中内置测速功能。更多内容请参见 VPN 会减慢网络速度吗?

常见问题

WireGuard 安全么?

安全。它使用当前广受认可的密码学,已接受正式分析,且其小巧的代码库比旧协议接受了更彻底的审计。

WireGuard 比 OpenVPN 更快吗?

始终如此。它每个数据包的工作量更少,且在一次往返内完成连接。在相同服务器上,WireGuard 通常提供更高吞吐量和更低延迟。

我可以把 SecureNet 切换到其他协议吗?

不能。SecureNet 只使用 WireGuard。没有协议设置,因为在 iPhone、iPad 或 Mac 上没有更好的选项可供选择。

WireGuard 在我在 Wi-Fi 与蜂窝网络之间切换时还能工作吗?

是的,这是它的设计目标之一。隧道会从新地址继续,而无需完整的重新连接。