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 CCEn 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 CCPour 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