OpenVPN Scramble 是一种隐藏(混淆)OpenVPN 流量的方法,使其看起来不像 OpenVPN 流量。它对许多人都非常有效深度包检测(DPI) 技术,并且擅长绕过复杂的 VPN 阻止。
OpenVPN Scramble 使用 XOR 加密算法。它非常容易涂抹,而且非常轻巧。许多 VPN 服务正在转向 OpenVPN Scramble,以击败中国和埃及使用的那种先进 VPN 封锁。
异或密码
XOR 通常发音为 Ex-or,代表独占或,XOR 密码使用的一种数学运算。 XOR 算法基本上是一种简单的替换密码。换句话说,它只是将输入的字符串中的每个字母数字替换为另一个数字。
至关重要的是,该算法是可逆的。因此,如果将输出字符串反馈回相同的算法,最终会得到删除了密码的原始字符串。
这种密码也称为加法密码,是最简单的密码。它是那种罗特13聪明的孩子经常用来创建秘密信息的密码。只是它使用的算法比大多数孩子能设计的要复杂得多。

如果这听起来不太安全,那么事实并非如此。事实上,使用简单的频率分析技术(在输出字符串中寻找模式)可以轻松破解简单的异或密码。
OpenVPN Scramble 不使用 XOR 密码来保护您的数据。 OpenVPN 就是这么做的。
然而,OpenVPN 确实为加密数据提供了独特的签名,可以使用 DPI 检测到该签名。通过将受 OpenVPN 保护的每一位数据的值替换为另一个值,XOR 会以一种使该签名很难检测到的方式对数据进行加扰。
对于 VPN 服务,XOR 黄金并不止于此。开源 openvpn_xor 扰乱补丁使他们可以轻松实现 XOR 扰乱并将其提供给客户。
OpenVPN Scramble 的效果如何?
使用 XOR 密码对 OpenVPN 加密的数据进行加扰,使得中国防火墙等系统更难检测到。
XOR 混淆已经达到了一定程度的恶名。它的体积小且易于实施,使其成为希望隐藏其讨厌的代码以防止反恶意软件检测的恶意软件开发人员的流行选择。
许多恶意软件开发人员很乐意仅使用 1 字节值作为密钥。然后,由该密钥混淆的代码会迭代需要编码的数据的每个字节,将每个字节与所选密钥进行异或。
用 1 字节值键混淆的数据相对容易被发现,因为它在看似随机的代码中创建了重复模式。为此开发了许多程序。
不过,可以选择更长的键,最多可达被混淆的数据的字节值。 XOR 函数对数据加扰的有效性完全取决于它使用的密钥的随机程度。
那么这一切意味着什么呢?恶意软件中 XOR 混淆的广泛使用证明了其有效性。
NordVPN 是提供 XOR 加密的 VPN 公司,因此我们请其数字隐私专家 Daniel Markuson 评论一下它在破解 VPN 封锁方面的有效性。他建议使用以下实验进行Wireshark数据包分析器(查看我们的如何设置 Wireshark指导):
1. 开启常规VPN。 Wireshark 将流量视为 OpenVPN。

2. 打开基于 TCP 的混淆 VPN(NordVPN 的 XOR 选项)。 Wireshark 不再将流量识别为 OpenVPN。

”异或绝对有效。它对于政府阻止 OpenVPN 流量的努力总是有效吗?不,一点也不。但从上面的实验可以看出,如果使用XOR,识别VPN流量会变得更加复杂。因此更难阻止。”
争议
尽管有其优点,openvpn_xorpatch 还是有些争议。事实上,OpenVPN 开发人员拒绝在 OpenVPN 的任何官方版本中实现它,并建议不要使用它。
”我们(OpenVPN 开发人员)不鼓励人们构建自己的 OpenVPN 版本,在没有经过适当的补丁审查并评估与此类更改相关的可能安全风险的情况下更改有线协议。
当 TOR 社区使用更好的解决方案时,我们特别不鼓励使用这种方法。它称为 obfsproxy,可以与 OpenVPN 一起使用,无需重新编译 OpenVPN。
”
然而,尽管有这些警告,开源 macOS VPN 客户端 Tunnelblick 的开发人员还是选择在其软件中包含 XOR 补丁的修改版本:
”不管 OpenVPN 开发人员决定不在 OpenVPN 中包含该补丁,该补丁仍然很有吸引力,因为它非常容易实现:只需将补丁应用到 OpenVPN 服务器和 OpenVPN 客户端,并为每个服务器和 OpenVPN 客户端添加一个相同的选项到配置文件中。使用 obfsproxy 更为复杂,因为它涉及在服务器和客户端上运行另一个单独的程序。
由于该补丁非常容易实施,因此该补丁包含在自 4420 版本起 Tunnelblick 中包含的所有 OpenVPN 版本中。”
值得注意的是,Tunnelblick 开发人员发现原始 XOR 补丁存在严重缺陷,因此发布了补丁的更新版本,修复了所有发现的问题:
”大型组织有能力‘解读’流量并将其检测为 OpenVPN 流量,而该补丁提供的混淆功能非常初级,相对简单的密码分析也可能能够解读内容。”
我们当然希望VPN 提供商提供 OpenVPN Scramble 的用户使用此改进的 XOR 补丁,或者对原始补丁进行了类似的更改。
OpenVPN Scramble 的替代方案
代理服务器
OpenVPN 开发者已经明确表示他们最喜欢的混淆策略是 obsfproxy,一种旨在将数据包装到混淆层中的工具。
Obfsproxy 是由 Tor 网络开发的,主要是为了应对中国阻止访问公共 Tor 节点的情况。然而,它独立于 Tor,并且可以针对 OpenVPN 进行配置。
Obfsproxy 用于运行可扰乱 VPN(或 Tor)流量的可插拔传输。它支持多种可插拔传输,但 obfs4 是 Tor 项目最新的最先进的“看起来没什么”混淆协议。
隧道
这是另一个很好的 VPN 混淆策略。它的工作原理是通过 TLS/SSL 隧道路由 VPN 流量。 TLS/SSL 是 HTTPS 使用的加密技术,因此通过这些 TLS/SSL 隧道路由的 VPN 连接(通常是 OpenVPN)很难与常规 HTTPS 流量区分开来。看看我们的HTTPS 指南了解更多信息。
这是因为 OpenVPN 数据被封装在额外的 TLS/SSL 加密层中。由于 DPI 技术无法穿透这个“外”加密层,因此无法检测隐藏在隧道内的 OpenVPN 加密。
结论
OpenVPN Scramble 很容易部署 VPN 服务,并且可以非常有效地规避 VPN 封锁,但它在隐藏 VPN 流量方面不如 obfsproxy 或 stunnel 强大。
在世界上极少数地方,仅仅尝试使用 VPN 都是非法的,因此,如果您的 VPN 连接被阻止,看看 OpenVPN Scramble 是否会解锁它并没有什么坏处,它很可能会。
然而,在极少数情况下,如果发现使用 VPN,您实际上可能会遇到麻烦,那么 obfsproxy 或 stunnel 会更安全。
