WireGuard 做对了,现在作为 Windows 内核的一个端口

线卫

看起来 WireGuard 项目进展顺利,正如 VPN WireGuard 的作者 Jason A. Donenfeld, 介绍了 WireGuardNT 项目 这是 用于 Windows 内核的高性能 WireGuard VPN 端口 兼容 Windows 7、8、8.1 和 10,并支持 AMD64、x86、ARM64 和 ARM 架构。

重要的是要记住,在 2019 年的最后一个学期,补丁是通过在 net-next 分支中实现项目的 VPN 接口而制作的,这是因为 WireGuard 开发人员做出了承诺并同意将部分代码转移到主要kernel ,不是作为单独的 API,而是作为 Crypto API 子系统的一部分。

几个月后,该项目转向 OpenBSD,对 ifconfig 和 tcpdump 实用程序进行了更改,支持 WireGuard 功能、文档和细微更改以将 WireGuard 与系统的其余部分集成,此后该项目移至与 Android 兼容.

线卫
相关文章:
WireGuard一直在破坏它,现在是采用协议的是OpenBSD

WireGuard VPN 是在现代加密方法的基础上实现的,提供非常高的性能,易于使用,无障碍,并且在处理大量流量的许多大型部署中证明了自己。

该项目自2015年以来一直在发展, 已通过对所用加密方法的正式审核和验证。 WireGuard 使用加密密钥路由的概念,它涉及将私钥绑定到每个网络接口并使用公钥进行绑定。

通过与 SSH 类比来交换公钥以建立连接。 为了在用户空间不运行单独的守护进程的情况下协商密钥和连接,使用了噪声协议框架的 Noise_IK 机制,类似于在 SSH 中维护 authorized_keys。 数据传输是通过封装在 UDP 数据包中完成的。 通过自动客户端重新配置,支持更改 VPN 服务器 IP 地址(漫游)而无需中断连接。

加密 使用ChaCha20流加密和Poly1305消息认证算法(MAC). ChaCha20 和 Poly1305 被定位为 AES-256-CTR 和 HMAC 的更快、更安全的对应物,其软件实现允许您在不使用特殊硬件支持的情况下实现固定运行时间。

现在 该项目作为 Windows 的端口到达 建立在经过测试的代码库上 WireGuard 的核心实现 Linux内核,已转换为使用 Windows 内核实体和 NDIS 网络堆栈。

经过数月的工作,Simon 和我很高兴地宣布 WireGuardNT 项目,这是 Windows 内核的本地 WireGuard 端口。 

WireGuardNT 最初是作为 Linux 代码库的一个端口......在最初的可移植性努力取得成功之后,NT 代码库迅速分化以很好地适应本机 NTisms 和 NDIS(Windows 网络堆栈)API。 最终结果是 WireGuard 的深度集成、高性能实现,它利用了 NT 内核和 NDIS 的全部功能。

与在用户空间运行并使用 Wintun 网络接口的 WireGuard-go 实现相比,WireGuardNT 通过消除上下文切换操作显着提高性能 并将包的内容从内核复制到用户空间。

与 Linux、OpenBSD 和 FreeBSD 的 WireGuardNT 实现类比,所有协议处理逻辑都直接在网络堆栈级别工作。

线卫
相关文章:
WireGuard最终被Linus Torvalds接受,并将集成到Linux 5.6中

尽管尚未进行具体优化,但 WireGuardNT 在我们的以太网测试环境中已经实现了 7,5 Gbps 的最大数据传输吞吐量。

在具有 Wi-Fi 的真实用户系统中,性能明显较低, 但与直接数据传输没有太大区别。 例如,在带有 Intel AC9560 无线网卡的系统上,没有 WireGuard 时的性能为 600 Mbps,使用 WireGuardNT 时也是 600 Mbps,而使用 Wireguard-go / Wintun 时为 95 Mbps。

数据来源: https://lists.zx2c4.com/


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。