WireGuard将“进入” Linux内核-为什么?

7月底,WireGuard VPN隧道开发人员提出了一组补丁程序 ,这些补丁程序将使他们的VPN隧道组织软件成为Linux内核的一部分。 但是,执行“想法”的确切日期仍然未知。 下面,我们将详细讨论该工具。


/照片Tambako The Jaguar CC

简要介绍该项目


WireGuard是Edge Security负责人Jason A. Donenfeld创建的下一代VPN隧道。 该项目被开发为OpenVPN和IPsec的简化且灵活的替代方案。 该产品的第一个版本仅包含4000行代码。 为了进行比较,在OpenVPN中约有12万行,在IPSec中有​​约42万行。

根据开发人员的说法,WireGuard易于配置,并且通过经过验证的加密算法可实现协议安全性。 更改网络 :Wi-Fi,LTE或以太网时,您每次都需要重新连接到VPN服务器。 即使用户收到了新的IP地址,WireGuard服务器也不会断开连接。

尽管WireGuard最初是针对Linux内核进行改进的,但开发人员还是照顾了适用于Android设备的便携式版本的工具。 该应用程序仍未完成,但是您现在可以在实践中尝试它。 为此,您需要成为测试人员之一

通常,WireGuard非常受欢迎,甚至已经多个VPN提供商实施 ,例如Mullvad和AzireVPN®。 该网络已发布了大量 指南来配置此解决方案。 例如, 有一些用户创建的指南 ,有一些由项目作者准备的指南。

技术细节


官方文档 (第18页)中,请注意,WireGuard的带宽是OpenVPN的四倍:分别为1011 Mbit / s和258 Mbit / s。 WireGuard领先于标准Linux IPsec解决方案-881 Mbps。 它在设置简便性方面超过了它。

交换密钥(几乎像在SSH中一样初始化VPN连接)并建立连接后,WireGuard会独立解决所有其他任务:无需担心路由,监视状态等。仅当您要使用对称加密时,才需要进行额外的配置。


/照片Anders Hojbjerg CC

要安装,您需要使用Linux内核“较旧” 4.1的发行版。 可以在主要Linux发行版的存储库中找到。

$ sudo add-apt-repository ppa:hda-me/wireguard $ sudo apt update $ sudo apt install wireguard-dkms wireguard-tools 

根据xakep.ru的编辑者所说,从源代码进行的自组装也很简单。 引发接口并生成公共和私有密钥就足够了:

 $ sudo ip link add dev wg0 type wireguard $ wg genkey | tee privatekey | wg pubkey > publickey 

WireGuard 不使用接口与加密提供程序CryptoAPI一起使用 。 取而代之的是,使用流密码ChaCha20 ,密码模仿插入片段Poly1305及其自身的密码哈希函数。

基于椭圆曲线Curve25519,使用Diffie-Hellman协议生成密钥 。 哈希使用BLAKE2SipHash 哈希函数 。 由于采用TAI64N时间戳格式,因此协议会丢弃时间戳值较低的数据包,从而防止DoS重放攻击

同时,WireGuard使用ioctl函数来控制I / O(用于使用Netlink ),这使代码更加简洁。 您可以通过查看配置代码来验证这一点。

开发者计划


到目前为止,WireGuard是树外内核模块。 但是项目作者Jason Donenfeld 表示,现在是在Linux内核中完全实现的时候了。 因为它比其他解决方案更简单,更可靠。 在这方面,甚至连Linus Torvalds本人都支持 Jason-他称WireGuard代码为“一件艺术品”。

但是没有人谈论将WireGuard引入内核的确切日期。 而八月Linux内核4.18的发行不太可能发生这种情况。 但是,这很可能会在不久的将来发生:在4.19或5.0版本中。

将WireGuard添加到内核后,开发人员希望优化适用于Android设备的应用程序,并开始编写适用于iOS的应用程序。 此外,计划完成Go和Rust上的实施,并将其移植到macOS,Windows和BSD。 还计划为更多“异国情调的系统”实现WireGuard: DPDKFPGA以及许多其他有趣的东西。 所有这些都在项目作者的待办事项列表中列出



PS我们公司博客中的其他几篇文章:




我们活动的主要方向是提供云服务:

虚拟基础架构(IaaS) | PCI DSS托管 | 云FZ-152 | SAP托管 | 虚拟存储 | 云中的数据加密 | 云存储

Source: https://habr.com/ru/post/zh-CN419769/


All Articles