WireGuard "viendra" au noyau Linux - pourquoi?

Fin juillet, les développeurs de tunnel VPN WireGuard ont proposé un ensemble de correctifs qui intégreraient leur logiciel d'organisation de tunnel VPN au noyau Linux. Cependant, la date exacte de mise en œuvre de «l'idée» est encore inconnue. Sous le chat, nous parlerons plus en détail de cet outil.


/ photo Tambako Le Jaguar CC

En bref sur le projet


WireGuard est le tunnel VPN de nouvelle génération créé par Jason A. Donenfeld, responsable d'Edge Security. Le projet a été développé comme une alternative simplifiée et agile à OpenVPN et IPsec. La première version du produit ne contenait que 4 000 lignes de code. A titre de comparaison, dans OpenVPN environ 120 000 lignes, et dans IPSec - 420 000.

Selon les développeurs, WireGuard est facile à configurer et la sécurité du protocole est obtenue grâce à des algorithmes cryptographiques éprouvés . Lorsque vous changez de réseau : Wi-Fi, LTE ou Ethernet, vous devez vous reconnecter au serveur VPN à chaque fois. Les serveurs WireGuard n'interrompent pas la connexion, même si l'utilisateur a reçu une nouvelle adresse IP.

Malgré le fait que WireGuard a été initialement affiné pour le noyau Linux, les développeurs ont pris en charge la version portable de l'outil pour les appareils Android. L'application est toujours inachevée, mais vous pouvez l'essayer en pratique maintenant. Pour ce faire, vous devez devenir l'un des testeurs .

En général, WireGuard est assez populaire et a même été mis en œuvre par plusieurs fournisseurs de VPN, tels que Mullvad et AzireVPN. Le réseau a publié un grand nombre de guides pour configurer cette solution. Par exemple, il existe des guides créés par les utilisateurs et des guides préparés par les auteurs du projet .

Détails techniques


Dans la documentation officielle (p. 18), il est à noter que la bande passante de WireGuard est quatre fois supérieure à celle d'OpenVPN: 1011 Mbit / s contre 258 Mbit / s, respectivement. WireGuard est en avance sur la solution Linux IPsec standard - 881 Mbps. Il le dépasse en termes de facilité de configuration.

Après avoir échangé les clés (la connexion VPN est initialisée presque comme dans SSH) et établi la connexion, WireGuard résout indépendamment toutes les autres tâches: vous n'avez pas à vous soucier du routage, de la surveillance de l'état, etc. Des efforts de configuration supplémentaires ne devront être appliqués que si vous souhaitez utiliser le cryptage symétrique.


/ photo Anders Hojbjerg CC

Pour l'installation, vous avez besoin d'une distribution avec le noyau Linux "plus ancien" 4.1. Il peut être trouvé dans les référentiels des principales distributions Linux.

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

Selon les éditeurs de xakep.ru, l'auto-assemblage à partir de la source est également simple. Il suffit d'é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 d' interface pour fonctionner avec le fournisseur cryptographique CryptoAPI . Au lieu de cela, le chiffrement de flux ChaCha20 , l'insert d' imitation cryptographique Poly1305 et ses propres fonctions de hachage cryptographique sont utilisés.

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

Dans le même temps, WireGuard utilise la fonction ioctl pour contrôler les E / S (utilisées pour utiliser Netlink ), ce qui rend le code plus propre et plus simple. Vous pouvez le vérifier en consultant le code de configuration .

Plans développeur


Jusqu'à présent, WireGuard est un module de noyau hors arborescence. Mais l'auteur du projet Jason Donenfeld dit que le moment est venu pour une implémentation complète dans le noyau Linux. Puisqu'il est plus simple et plus fiable que d'autres solutions. Jason est soutenu à cet égard même par Linus Torvalds lui-même - il a appelé le code WireGuard «une œuvre d'art».

Mais personne ne parle des dates exactes pour l'introduction de WireGuard dans le noyau. Et il est peu probable que cela se produise avec la sortie du noyau Linux d'août 4.18. Cependant, il est probable que cela se produise dans un avenir très proche: dans la version 4.19 ou 5.0.

Lorsque WireGuard est ajouté au noyau, les développeurs souhaitent affiner l'application pour les appareils Android et commencer à écrire une application pour iOS. De plus, il est prévu de terminer les implémentations sur Go et Rust et de les porter sur macOS, Windows et BSD. Il est également prévu d'implémenter WireGuard pour d'autres "systèmes exotiques": DPDK , FPGA , ainsi que de nombreuses autres choses intéressantes. Tous sont répertoriés dans la liste de tâches des auteurs du projet.



PS Quelques autres articles de notre blog d'entreprise:




La direction principale de notre 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 cloud

Source: https://habr.com/ru/post/fr419769/


All Articles