什么是 WireGuard VPN 协议?

线卫是由 Jason Donenfeld 开发的下一代开源安全隧道 VPN 协议。它是一个第3层使用“保守的现代加密协议”的 IPv4 和 IPv6 安全网络隧道。它基于 UDP,并且具有内置的隐秘性,这使得它能够突破防火墙。 WireGuard 的身份验证模型基于 SSH 的authentiated_keys。

与 IPSec 和 OpenVPN 等成熟的 VPN 隧道协议相比,WireGuard 规模较小。 WireGuard 的代码量仅为 3782 行(相比之下 OpenVPN 为 329,853 行),其经济规模使其更容易审计。这意味着检查平台的安全性要便宜得多,并且只需一个人就可以在一个下午完成。

WireGuard 被设计为在嵌入式接口上运行的通用 VPN。虽然WireGuard最初是为Linux内核设计的,但现在已经实现了适用于安卓、MacOS 和 Windows。事实上,WireGuard 被誉为移动 VPN 应用程序 - 因为它的隐形功能意味着除非有实际数据要发送,否则它永远不会传输数据包。结果是,与其他耗电的 VPN 协议不同,WireGuard 不会不断耗尽电池电量。

WireGuard 的开发人员 Jason Donenfeld 是边缘安全。他在安全行业崭露头角,在进攻和防守应用中工作。他开发了路由工具包渗透方法,使他能够留在网络内而不被发现。

“当您在网络中进行红队评估和渗透测试时,您希望能够在任务期间保持网络的持久性。您希望能够以隐秘的方式泄露数据 - 这样就可以避免检测 - 并以安全且不被发现的方式获取数据。”

多南菲尔德说,在他的安全工作过程中,他意识到他的方法也可以用于安全通信:

“我意识到,安全渗透所需的许多相同技术实际上非常适合防御性 VPN。因此,WireGuard 内置了许多出色的隐形功能,您无法在互联网上扫描它,除非您知道它在哪里,否则无法检测到它。它不会响应未经身份验证的数据包。”

Donenfeld 表示,其结果是 VPN 隧道比其前身更值得信赖,并且基于新代码,而不是他所说的“20 世纪 90 年代过时的技术”。

为什么 Wireguard 这么小?

Donenfeld 开发 WireGuard 的主要目标之一是保持代码简单。根据 Donenfeld 的说法,这是因为他对现有 VPN 协议的规模普遍缺乏信心。谈到 OpenVPN 和 IPsec,Donenfeld 解释道:

“即使经过如此多的评估和团队审核这些代码库,人们仍然发现了错误,因为它们太大太复杂了。”

Donenfeld 表示,他希望保持 WireGuard 最小化和简单化,从而开发了具有“微小实现”的协议加密技术,从而减少了可能的漏洞和漏洞:

“例如,协议中的所有字段都是固定长度的,因此我们不需要任何解析器。如果没有解析器,那么就不会有解析器错误。”

说到密码学本身,WireGuard(以及 WireGuard 客户端,例如敦安)实施经过验证的现代原语,例如曲线25519 (对于椭圆曲线 Diffie Hellman),恰恰20(用于散列),聚1305 布莱克2(用于经过身份验证的加密),以及SipHash2-4(对于哈希表)。多南菲尔德说,“重要的是,不存在密码敏捷性”。这是该协议的关键部分,使其比其前身更安全。

“如果密码被破解,那么你就升级,并且不允许在你的网络上使用被破解的密码。目前这些[原语]是最好的,但如果它们在任何时候变得过时,我们将更改它们。”

Wireguard 的另一个令人兴奋的事情是它增加了吞吐量与 OpenVPN 相比最多可达六倍。从理论上讲,这意味着它更适合数据密集型任务,例如游戏或高清流媒体。

Linux 上 WireGuard 的宏伟计划

目前,WireGuard 是 Linux 内核的树外模块 - 因此,当您购买 Linux 发行版时,它不会像 XFS 或其他驱动程序那样预加载。这意味着如果您想使用 WireGuard,您必须找到源代码并自行编译 - 或者找到一个已经为您的 Linux 内核版本编译了它的值得信赖的源代码。

多南菲尔德希望改变这种情况。 WireGuard 的开发人员希望 Linux 默认将代码添加到内核中,以便所有 Linux 发行版都附带它。如果多南菲尔德提议已提交上周二很成功,补丁集将被添加到 Linux 内核中,以将安全 VPN 隧道代码集成为官方网络驱动程序。

您是否期望很快就能在商业 VPN 客户端中看到 WireGuard 的实施?

目前 WireGuard 尚未得到证实。虽然它受到了一些形式验证就其加密实现而言,它尚未被认为是安全的。这意味着它在挑战 OpenVPN 之前还有很长的路要走。

甚至 WireGuard 的开发人员承认那:

WireGuard 尚未完成。您不应该依赖此代码。它尚未经过适当程度的安全审核,并且协议仍可能发生变化。我们正在努力发布稳定的 1.0 版本,但那个时刻还没有到来。”

此外,WireGuard 不处理密钥交换对于商业 VPN 来说是一个问题,商业 VPN 需要其 API 能够以安全高效的方式处理位于全球的多个服务器之间的共享密钥。

尽管如此,将 WireGuard 添加到 Linux 内核项目的讨论还是令人兴奋,并且表明人们对这种新颖的 VPN 协议寄予厚望。目前,它可能仍处于边缘状态——仅由那些希望在建立自己的 VPN 节点时获得额外安全性的人使用。

NordVPN 首席信息官 Emanuel Morgan 表示,他发现 WireGuard 非常有趣,但他告诉 eeshanaviation.com,商业 VPN 提供商需要“等到它足够成熟”才能考虑实施它:

“目前缺少太多部件,无法大规模部署,而且没有标准的密钥分发方式。如果没有密钥分发,WireGuard 作为商业 VPN 应用程序就不太理想。

“用户需要确保他们连接到合法的 VPN 服务器,而 OpenVPN 的服务器证书以简单、安全和高效的方式解决了这个问题。”

图片来源:新设计插图/Shutterstock.com、tanewpix/Shutterstock.com、file404/Shutterstock.com