L'outil VPN open source WireGuard connaît actuellement une sorte d'engouement. Selon les développeurs, l'idée sous-jacente est de rendre le VPN (réseau privé virtuel) aussi simple que possible. Ce logiciel est non seulement censé être plus rapide et plus utile que IPSec & Co, mais également plus facile à configurer.
Cela offre un potentiel pour toute une série d'applications. Par exemple, les ordinateurs portables et les smartphones des commerciaux peuvent être connectés au réseau de l'entreprise rapidement et, surtout, en toute sécurité avec WireGuard. Les routeurs dorsaux peuvent également être connectés sur plusieurs lieux à l'aide de cette technologie, sans qu'il soit nécessaire de mettre en place une infrastructure spéciale pour la gestion des certificats.
Dans l'article suivant, nous vous montrerons comment fonctionne WireGuard en détail et ce que vous devez essentiellement prendre en compte lors de son implémentation. Nous avons également compilé pour vous un aperçu des principaux avantages et inconvénients du VPN open source.
Qu'est-ce que WireGuard ?
WireGuard est une technologie relativement nouvelle permettant de configurer des réseaux VPN sécurisés, qui a été élaborée par le développeur américain Jason A. Donenfeld comme une alternative aux solutions bien connues telles que IPSec, SSTP ou OpenVPN. Il s'agit d'un mélange entre un protocole VPN et un logiciel VPN qui, contrairement à d'autres solutions, se distingue non seulement par sa configuration simple et non compliquée, mais aussi par un établissement de la connexion nettement plus rapide et un tunnelling VPN particulièrement stable (également sur les clients mobiles).
WireGuard fonctionne avec de hautes performances sur la couche 3 du modèle de couche OSI et prend en charge IPv4 et IPv6. Le concept est basé sur une architecture peer-to-peer, mais le logiciel est également capable de simuler des architectures client-serveur. La connexion VPN est établie (de manière similaire à SSH) via l'échange de clés publiques.
En tant que solution open source, WireGuard est encore partiellement en statut expérimental et est disponible sur diverses plateformes (notamment diverses distributions Linux, Android, iOS). Sur les systèmes Linux, le code est exécuté comme module du noyau.
Les réseaux VPN sur la couche 3 de l'OSI fonctionnent dans l'espace du noyau et non dans l'espace utilisateur, c'est pourquoi WireGuard n'est pas disponible en version Windows. Entre-temps, il existe une implémentation exclusive du cloud source, TunSafe, basée sur le pilote TUN/TAP d'OpenVPN, mais le développeur de WireGuard, Donenfeld, déconseille fortement son utilisation pour des raisons de sécurité.
Quelles fonctions offre WireGuard ?
WireGuard endosse le rôle des adaptateurs réseau sur votre système : il ajoute une ou plusieurs interfaces réseau qui peuvent être configurées de manière analogue à wlan0 ou eth0 (par exemple avec ipconfig ou route). L'application est limitée au strict nécessaire et a été délibérément maintenue simple par les développeurs. Le code du programme ne comporte que 4000 lignes et est assez facile à lire et à comprendre.
À titre de comparaison, IPSec ou OpenVPN représentent plusieurs centaines de milliers de lignes de code.
Bien que WireGuard dispose de moins d'options de configuration, il est plus facile à contrôler, ce qui est particulièrement important dans le cadre des exigences en matière de sécurité.
La solution WireGuard VPN utilise trois fonctions de chiffrement de base pour crypter les connexions :
Curve25519 avec Elliptic Curve Diffie-Hellman (ECDHE) pour la poignée de main (échange de clés).
BLAKE2s comme fonction de hachage universelle (par exemple pour la génération de codes HMAC ou pour les dérivations de clés avec HKDF)
ChaCha20 et Poly1305 pour le chiffrement symétrique et l'échange de données
Le principe est aussi simple qu'efficace : chaque participant se voit attribuer une clé publique VPN qui lui permet d'être identifié de manière unique. Ed25519 est utilisé comme protocole pour la procédure d'authentification par clé publique.
Les normes de sécurité élevées pour le cryptage des données sont créées dans WireGuard à l'aide d'algorithmes cryptographiques modernes. Avec le routage cryptokey, le serveur et le client reçoivent chacun une adresse IP statique qui est stockée dans le fichier de configuration du serveur. Lorsqu'une connexion est établie, celles-ci sont comparées à la clé publique et une connexion n'est autorisée que si les deux valeurs correspondent.
Vous pouvez trouver encore plus d'informations sur WireGuard ainsi que des détails sur les protocoles et les mécanismes de cryptage dans le Whitepaper correspondant.
Avantages et inconvénients de WireGuard en un coup d'œil
Le plus grand avantage de WireGuard est, bien sûr, sa facilité d'utilisation. Toutefois, l'outil offre également toute une série d'autres avantages :
VPN tunneling stable et performant
Haute sécurité grâce à l'utilisation des procédures cryptographiques actuelles
Code gérable qui n'offre pratiquement aucune possibilité d'attaque
Concept global bien pensé
Si vous envisagez d'utiliser WireGuard, vous devez savoir qu'il s'agit d'un produit inachevé dont la fonctionnalité n'est pas encore mature. Outre ses nombreux avantages, l'outil présente également des inconvénients importants :
Logiciel encore en phase expérimentale
Pas de gestion dynamique des adresses IP (le client doit être lié à une adresse préalablement définie du VPN)
Aucune vérification du serveur
Pas de connexion et d'authentification possible via le proxy
Exécuté dans le noyau
Actuellement, aucun support pour TCP disponible