Why will WireGuard 'come' to the Linux kernel?

À la fin juillet, les développeurs du tunnel VPN WireGuard ont proposé un ensemble de patchs, qui intégreront leur logiciel de création de tunnels VPN au noyau de Linux. Cependant, la date précise de mise en œuvre de cette "idée" reste inconnue. Sous le paragraphe, nous allons discuter de cet outil plus en détail.

Why will WireGuard 'come' to the Linux kernel?
/ фото Tambako The Jaguar CC

Brève présentation du projet

WireGuard est un tunnel VPN de nouvelle génération, créé par Jason Donenfeld, le directeur de l'entreprise Edge Security. Le projet a été développé comme une alternative simplifiée et rapide à OpenVPN et IPsec. La première version du produit comptait seulement 4 000 lignes de code. À titre de comparaison, OpenVPN en compte environ 120 000, tandis qu'IPsec en compte 420 000.

Selon propos pour les développeurs, WireGuard est facile à configurer, et la sécurité du protocole est assurée grâce à des algorithmes cryptographiques éprouvés. Lors du changement de réseau: Wi-Fi, LTE ou Ethernet, il est nécessaire de se reconnecter à chaque fois au serveur VPN. En revanche, les serveurs WireGuard ne rompent pas la connexion, même si l'utilisateur reçoit une nouvelle adresse IP.

Bien que WireGuard soit initialement conçu pour le noyau Linux, les développeurs ont également pensé à une version portable de l'outil pour les appareils Android. L'application est encore en cours de développement, mais elle peut déjà être testée. Pour cela, il faut devenir l'un des testeurs.

Dans l'ensemble, WireGuard est assez populaire et a même été mis en œuvre adopté par plusieurs fournisseurs VPN, tels que Mullvad et AzireVPN. De nombreux et de la livraison continue ( guides de configuration de cette solution sont disponibles en ligne. Par exemple, il existe des guides, créés par des utilisateurs, et d'autres guides , préparés par les auteurs du projet..

Détails techniques

Dans la documentation officielle (p.18) est indiqué que la bande passante de WireGuard est quatre fois supérieure à celle d'OpenVPN : 1011 Mbit/s contre 258 Mbit/s, respectivement. WireGuard devance également la solution standard pour Linux, IPsec, qui atteint 881 Mbit/s. Il surpasse également celle-ci en termes de simplicité de configuration.

Après l'échange des clés (la connexion VPN est initialisée presque comme en SSH), WireGuard gère toutes les autres tâches de manière autonome : il n'est pas nécessaire de se soucier du routage, du contrôle d'état, etc. Des efforts supplémentaires pour la configuration ne seront nécessaires que si l'on souhaite utiliser le chiffrement symétrique.

Why will WireGuard 'come' to the Linux kernel?
/ фото Anders Hojbjerg CC

Pour l'installation, un système d'exploitation avec un noyau Linux "version 4.1 ou supérieure" est requis. Celui-ci peut être trouvé dans les dépôts des principales distributions Linux.

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

Comme le mentionnent les rédacteurs de xakep.ru, l'assemblage autonome à partir des sources est également simple. Il suffit de lever l'interface et de générer des clés publiques et privées :

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

WireGuard n'utilise pas interface pour travailler avec le fournisseur de cryptographie CryptoAPI. À la place, un chiffrement par flux est utilisé ChaCha20, cryptographique insertion d'imités Poly1305 et ses propres fonctions de hachage cryptographique.

La clé secrète est générée à l'aide de du protocole Diffie-Hellman basé sur une courbe elliptique Curve25519. Lors de l'indexation, les fonctions de hachage BLAKE2 et SipHash. Grâce au format de l'horodatage TAI64N le protocole rejette les paquets avec une valeur d'horodatage inférieure, empêchant ainsi les attaques DoS- et replay..

WireGuard utilise la fonction ioctl pour contrôler l'entrée/sortie (qui était auparavant Netlink), ce qui rend le code plus propre et plus simple. Vous pouvez le vérifier en consultant le code de configuration.

Plans des développeurs

Pour l'instant, WireGuard est un module du noyau hors arbre. Mais l'auteur du projet, Jason Donenfeld dit, a déclaré qu'il était déjà temps pour une mise en œuvre complète dans le noyau Linux. Car il est plus simple et plus fiable que d'autres solutions. Jason dans ce domaine prend en charge même Linus Torvalds - il a qualifié le code de WireGuard "œuvre d'art".

Mais personne ne parle encore des dates précises de l'intégration de WireGuard dans le noyau. Et il est peu probable que cela arrive avec la sortie du noyau Linux 4.18 en août. Cependant, il y a une chance que cela se produise dans un avenir très proche : dans la version 4.19 ou 5.0.

Lorsque WireGuard sera ajouté au noyau, les développeurs veulent améliorer l'application pour les appareils Android et commencer à écrire une application pour iOS. De plus, il est prévu de finaliser les mises en œuvre en Go et Rust et de les porter sur macOS, Windows et BSD. Une mise en œuvre de WireGuard pour des systèmes plus "exotiques" est également prévue : DPDK, FPGA, ainsi qu'un certain nombre d'autres choses intéressantes. Toutes sont énumérées dans le to-do-list des auteurs du projet.

P.S. Quelques autres articles de notre blog d'entreprise :

Notre principale activité est la fourniture de services cloud :

Infrastructure Virtuelle (IaaS) | hébergement PCI DSS | Cloud FZ-152 | hébergement SAP | Stockage Virtuel | Chiffrement des données dans le cloud | Stockage en cloud

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster