与已有数十年历史的OpenVPN相比,WireGuard®是一个相对较新的VPN协议,并以不同的理念进行软件开发-简单做一件事,(高效地)做好一件事。这就是众所周知的UNIX哲学。WireGuard在各种开源许可下获得许可,比如GPLv2-这与Linux内核使用的开源许可相同。因此,WireGuard将被添加到Linux内核本身也就不足为奇了--这意味着WireGuard最终将在所有Linux发行版上“预装”。真正证实了WireGuard未来无处不在的评论不是别人,正是莱纳斯·托瓦尔兹(Linus Torvalds)。2018年8月,他邮寄了Linux内核邮件列表,并发表了这样的正面评论:
“我能不能再一次表达我对它(WireGuard)的热爱,并希望它能尽快合并?”也许代码并不完美,但我略读了一下,与OpenVPN和IPSec的恐怖相比,它是一件艺术品。“。
自2018年以来,私人互联网接入一直是WireGuard的捐赠者。这一新的VPN协议多年来一直受到PIA的关注,我们想分享所有原因。
Jason Donenfeld大约在2016年开始开发WireGuard,第一次发布是在2016年12月9日。WireGuard的核心是Linux的内核虚拟网络接口,旨在取代Linux上用户空间网络(如tun设备和IPSec)的使用。事实上,ipsec在很大程度上已经不再使用了,取而代之的是当前的行业标准openvpn,它使用tun设备在用户空间运行。WireGuard也可以作为OpenVPN的替代品。用Jason自己的话说,WireGuard是一个“更实用、更安全的可靠的工程解决方案”。考虑到这一点,仍然需要注意的是,WireGuard最近才作为稳定的v1.0发布。
使WireGuard与OpenVPN、IPsec、L2TP和PPTP等其他VPN协议不同的一个关键组件是它的功能层。大多数人熟悉的传统VPN协议使用TLS在用户级别运行。相比之下,基于Linux的VPN服务器上的WireGuard在内核的网络堆栈中运行,这有很多好处。最大的两个问题是,WireGuard变得更容易实现,并且数据包的真实性和属性得到了更好的保证。WireGuard既支持IPv4和IPv6 IP地址,也支持在IPv6中封装IPv4数据包的功能,反之亦然。WireGuard使用“密钥路由”,因此VPN上允许的每个IP地址都有一个相关的公钥。WireGuard还提供有保证的完美前向保密性。
WireGuard理念的一个值得注意的结果是,与OpenVPN相比,WireGuard的代码库中的代码行更少。减少两个数量级-WireGuard中的4000行代码,而不是400,000行以上的代码,以充分利用OpenVPN或IPsec。这意味着WireGuard的代码库出现问题的空间较小。这也意味着WireGuard没有许多人期待的OpenVPN带来的华而不实的功能,比如密码协商-但这是一个设计选择。VPN用户习惯的许多花哨功能都可以添加到WireGuard之上。开放源码意味着要在此基础上构建。总而言之,WireGuard是使用虚拟专用隧道将计算机连接到虚拟专用网络的一种更简单、更干净、更新的方式。
WireGuard没有使用AES或SHA进行加密或散列,而是结合使用了一系列较新的算法。WireGuard网站上介绍的这些算法是:
不过,锦上添花的是缺乏加密灵活性。密码敏捷性是协议在加密算法过时的情况下替换加密算法的能力-密码敏捷性的存在本身就为降级甚至中间人攻击打开了大门。WireGuard选择的不是加密灵活性,而是密码版本控制-如果上面提到的算法之一变得过时,WireGuard所要做的就是发布一个新版本进行升级,将漏洞完全抛诸脑后,并夺走降级攻击的机会。正如杰森在他开创性的论文“WireGuard简介”中所解释的那样:
“它(WireGuard)故意缺乏密码和协议灵活性。如果在基础基本体中发现孔,则需要更新所有端点。SSL/TLS漏洞的持续洪流表明,密码灵活性极大地增加了复杂性。“。
回到PIA第一次发布WireGuard时,要开始使用带有私有互联网接入的WireGuard,您需要成为PIA测试版计划的一部分。现在WireGuard功能已经过了测试版,所有的PIA客户端和应用程序都可以使用这个新的VPN协议。更新客户端或应用程序后,只需导航到您的专用互联网访问桌面客户端的设置窗口中的连接选项卡或您的专用互联网访问移动应用程序的VPN设置中的协议部分,然后从OpenVPN切换到WireGuard。这样做之后,您会发现可供选择的VPN选项减少了。使用WireGuard而不是OpenVPN的简单性大大减少了选项瘫痪。WireGuard恰到好处-而且在引擎盖下面要高效得多。