VPN 协议是您的 VPN 应用用来设置、保护和管控与 VPN 服务器连接的一组指令。OpenVPN 是一种VPN 协议,目前没有已知弱点,能够有效绕过某些在线审查方法。此外,OpenVPN 的优势还在于支持广泛的平台和设备。

OpenVPN 存在闭源实现,但也有免费的开源社区版。

本文将深入探讨 OpenVPN 的工作原理、它如何保障 Proton VPN 社区的安全,以及它与其他 VPN 协议相比有何不同。如果您已经了解 VPN 的工作原理,本文将对您最有帮助。

进一步了解 VPN 的工作原理

OpenVPN 于 2001 年首次发布,在速度、性能和效率方面开始显现出老旧。不过,它仍被广泛认为安全,2013 年 NSA 揭发者 Edward Snowden 公布的文件进一步强化了这一看法。

获取 Proton VPN

这些文件有力地表明,只要不使用预共享密钥(新窗口),OpenVPN 就是当时 NSA 唯一无法破解的常用 VPN 协议。更新、更安全的 VPN 协议 WireGuard® 在 2013 年尚未开发出来。尽管 WireGuard 更快、更轻量、更高效,但它还无法与 OpenVPN 久经考验的安全记录相媲美。

OpenVPN 的优点:

  • 开放源码
  • 久经考验的安全性
  • 可通过 UDP 或 TCP 运行
  • 支持广泛

OpenVPN 的缺点:

  • 性能目前尚不及 WireGuard(不过相关改进工作正在进行中)
  • 代码库相对庞大复杂

Proton VPN 的所有应用均支持 OpenVPN:

  • Windows 
  • macOS
  • Android
  • Android TV(通过 Smart Protocol)
  • iOS 和 iPadOS
  • Linux 应用和 CLI
  • Chrome OS

OpenVPN 如何保障我的安全?

OpenVPN 使用多种加密技术来保护您的数据安全,且没有已知漏洞。大多数现代 OpenVPN 实现(包括 Proton VPN)所使用的技术包括:

AES

高级加密标准(AES)是一种对称密钥加密算法,用于加密和解密通过 VPN 连接传输的数据。

它由美国国家标准与技术研究院(新窗口)(NIST)认证,并被美国政府用于保护机密数据。AES 的最大密钥长度为 256 位(AES-256),美国政府也认为 AES-256 足以保护“绝密”信息(新窗口)。

在 OpenVPN 加密套件中,AES 可以以 AES-CBC(密码分组链接)或 AES-GCM(Galois/计数器模式)模式使用。要了解 Proton VPN 的工作原理,您只需了解 AES-GCM 即可

更现代的 AES-GCM 虽然同样安全,但它是一种带有关联数据的认证加密(新窗口)(AEAD)算法,除保护数据外还能对数据进行认证。TLS 连接的认证仍需要 HMAC SHA(见下文),但 AES-GCM 在数据认证方面比 SHA 更高效(因此也更快)。

详细了解 AES 加密

RSA

OpenVPN 依靠 AES 来保护您的数据,但要通过 VPN 连接发送数据,OpenVPN 会采用公钥加密(新窗口)。这种加密系统使用非对称密钥交换,即您的数据使用接收方公开分享的公钥进行加密,然后只能由接收方的秘密私钥解密。

非对称密钥加密能有效通过互联网秘密发送数据,但与 AES 等对称加密系统相比速度较慢。因此它主要用于 VPN 中,对 VPN 客户端与 VPN 服务器之间的连接进行身份验证。为此,OpenVPN 使用了 RSA 密码系统(新窗口)。

RSA 密钥长度几乎可以是任意大小,但 4096 位密钥已足够安全,同时不会产生浪费资源并拖慢连接的高计算开销。

DHE

Diffie–Hellman 密钥交换(新窗口)(DHE)可以像 RSA 一样保护 TLS 密钥交换,此外还提供前向保密(新窗口)。前向保密确保每个会话使用新密钥,因此即使某个会话以某种方式被泄露,其他会话也不会受到影响。前向保密确保攻击者无法用一个泄露的密钥解密历史 VPN 会话。

不过,由于 DHE 复用一组有限的素数,因此可能容易受到 Logjam 攻击(新窗口)。如果使用足够大的密钥长度,这个问题就远不需要担心,但用它来保护 TLS 密钥交换仍存在争议。

因此,Proton VPN 在 OpenVPN 加密套件中利用 DHE 支持来提供前向保密,而不是用它来保护密钥交换本身。

HMAC SHA

OpenVPN 使用 HMAC SHA 来验证 TLS 密钥交换中使用的 TLS 证书。这可以防范中间人攻击。

加密哈希函数的 SHA 家族(新窗口)(加密哈希函数(新窗口))用于认证数据。这些复杂数学函数在处理一组数据后会生成一个唯一的指纹。即使数据中仅有一位发生变化,SHA 指纹也会随之改变。

众所周知,SHA-1(一种 160 位哈希函数)容易受到碰撞攻击(新窗口),但 SHA-2 仍被认为安全。更重要的是,OpenVPN 只使用 SHA 来计算哈希消息认证码(新窗口)(HMAC)值。这些值比 SHA 算法本身更难被攻击,以至于即使 SHA-1 用于 HMAC 仍被认为足够安全(新窗口)。

OpenVPN 频道

OpenVPN 使用两个独立的频道在您的设备和 VPN 服务器之间安全地传输数据。

OpenVPN 工作原理概述

数据频道

在通过 VPN 隧道发送您的数据之前,OpenVPN 会使用对称密钥加密算法对其进行加密。

Proton VPN 使用最高 AES-256 的 GCM 模式来验证数据。

控制频道

数据加密后即可通过 VPN 隧道发送。控制频道在 VPN 客户端和 VPN 服务器之间建立 TLS 连接。该连接使用对称密钥加密算法保护,但采用非对称密钥交换。

Proton VPN 的对称加密算法最高使用 AES-256-GCM,并使用 RSA-4096 和 HMAC SHA-384 哈希身份验证来验证 TLS 证书。我们使用的加密套件还包括 Diffie-Hellman 密钥协商(DHE),以提供前向保密。

OpenVPN 能否战胜 VPN 审查?

OpenVPN 的一大优势是可以通过 UDP 和 TCP 两种传输协议运行,这是处理数据如何通过互联网发送的两种主要协议。UDP 更快,而 TCP 更可靠,但这种灵活性的主要优势在于 TCP 有助于战胜政府和其他组织的审查。

详细了解 UDP 和 TCP 之间的区别

TCP 端口 443 由保护网络安全的加密标准 HTTPS(新窗口) 使用。这使得当 OpenVPN 通过 TCP 端口 443 运行时,如果不屏蔽所有 HTTPS 流量就很难将其屏蔽,因此 OpenVPN 有助于绕过低级别的 VPN 屏蔽。

不过,更高级的深度数据包检测可以轻松区分 HTTPS 和 VPN 数据包。

了解有关深度数据包检测的更多信息

OpenVPN 是否经过审计?

通过众筹活动,OpenVPN 2.4 于 2016 年由 OSTIF 和 QuarksLab 进行了独立审计(新窗口)。审计结果非常积极,发现的唯一严重/高危漏洞涉及对拒绝服务的易感性,并未影响用户安全。该问题也已迅速修复。

不过,2016 年距今已有一段时间,撰写本文时 OpenVPN 2.6.1 是最新版本。

OpenVPN 与 WireGuard 的对比

较新的 WireGuard 协议安全、快速且高效,这就是 Proton VPN 现在将其作为默认 VPN 协议的原因。OpenVPN 可通过 TCP 运行的能力仍然是其相对于原版 WireGuard 的优势,但 Proton VPN 现已开发出同样可通过 TCP 运行的 WireGuard 实现。

了解有关 WireGuard 的更多信息

WireGuard 也是我们 Stealth 混淆协议的基础,它在规避审查屏蔽方面比通过 TCP 运行 OpenVPN 有效得多。

了解更多关于 Stealth 的信息

OpenVPN 的安全性比 WireGuard 经受了更多实战考验,这一点可能仍会吸引一些用户,但除非您当前的设备不支持 WireGuard,否则几乎没有理由选择 OpenVPN 而非 WireGuard。

总结

多年来,OpenVPN 实际上一直是默认的 VPN 协议,因此它在路由器和其他可连接互联网的设备上仍然得到很好的支持。它仍然非常安全,但与更先进的 WireGuard 相比几乎没有优势(尤其是 Proton VPN 对这一较新协议的自定义实现)。