wireguard
官网 https://www.wireguard.com
采用先进的加密技术,如noise协议框架,Curve25519,chacha20,Poly1305,blake2,siphash24,hkdf,和安全的信任结构。这让保守的、合理的选择和已审查了密码
最小攻击面
高性能
良好的定义和彻底的考虑
概念概述
如果您想了解WireGuard的一般概念概述,请点击此处阅读。然后您可以继续安装并阅读有关如何使用它的快速入门说明。
如果您对内部工作感兴趣,可能会对协议的简要概述感兴趣,或者通过阅读技术白皮书进行更深入的介绍,该白皮书详细介绍了协议,密码学和基础知识。如果您打算为新平台实施WireGuard,请阅读跨平台说明。
WireGuard通过UDP安全地封装IP数据包。您添加了一个WireGuard接口,使用您的私钥和对等方的公钥对其进行配置,然后通过它发送数据包。密钥分发和推送配置的所有问题都不在WireGuard 的范围之内; 这些问题远远好于其他层,以免导致IKE或OpenVPN的膨胀。相比之下,它更模仿SSH和Mosh的模型; 双方拥有彼此的公钥,然后他们只需通过接口就可以开始交换数据包。
简单的网络接口
WireGuard工作通过将网络接口(或多个),例如eth0
或wlan0
,称为wg0
(或wg1
,wg2
,wg3
等等)。然后,可以使用ifconfig(8)
或ip-address(8)
使用route(8)
或ip-route(8)
使用所有普通网络实用程序添加和删除路由来正常配置此网络接口。接口的特定WireGuard方面使用该wg(8)
工具进行配置。该接口充当隧道接口。
WireGuard将隧道IP地址与公共密钥和远程端点关联。当接口向对等体发送数据包时,它会执行以下操作:
-
此数据包适用于192.168.30.8。那是哪个同行?让我看看……好吧,这是同行的
ABCDEFGH
。(或者如果它不是用于任何配置的对等体,则丢弃该数据包。) -
使用对等方
ABCDEFGH
的公钥加密整个IP数据包。 -
同伴的远程端点是
ABCDEFGH
什么?让我看看……好的,端点是主机216.58.211.110上的UDP端口53133。 - 使用UDP将步骤2中的加密字节通过Internet发送到216.58.211.110:53133。
当接口收到数据包时,会发生以下情况:
- 我刚从主机98.139.183.24上的UDP端口7361获得一个数据包。让我们解密它!
-
它为对等体正确解密和验证
LMNOPQRS
。好的,让我们记住,对等LMNOPQRS
的最新Internet端点是使用UDP的98.139.183.24:7361。 -
解密后,纯文本数据包来自192.168.43.89。同行
LMNOPQRS
允许发送我们的数据包为192.168.43.89? - 如果是,请接受接口上的数据包。如果没有,请放弃它。
在幕后,使用最先进的密码术可以提供适当的隐私,真实性和完美的前向保密