WireGuard : le protocole VPN moderne qui a réellement changé les choses

11 lecture min.Protocoles VPN

WireGuard est le rare logiciel open source qui est devenu le logiciel par défaut en cinq ans. Le noyau Linux principal depuis 2020, le moteur derrière NordLynx et Mullvad, et une base de code suffisamment petite pour qu'une seule personne puisse l'auditer en un après-midi. Il s'agit d'une explication détaillée : de quoi s'agit-il, comment cela fonctionne, pourquoi tout le monde a changé et où cela échoue encore.

Le corps complet de l’article est fourni en anglais ci-dessous.

Qu'est-ce que WireGuard est réellement

WireGuard est un protocole VPN de couche 3 conçu par Jason A. Donenfeld et publié pour la première fois en 2015. Le choix de conception déterminant était le minimalisme : environ 4 000 lignes de code du noyau C, contre environ 70 000 pour OpenVPN et quelque part au nord de 400 000 pour les différentes implémentations IPsec. Moins de code signifie une surface d'attaque plus petite et une base de code qu'un ingénieur peut avoir en tête, ce qui se traduit directement par des audits plus faciles et moins de bogues de sécurité.

Le protocole fait un travail et refuse d'intégrer une fonctionnalité à moins que ce ne soit nécessaire. Il n'y a pas de phase de négociation TLS pour l'empreinte digitale, pas de choix de suites de chiffrement au moment de l'exécution, pas de chaînes de secours intelligentes. Vous obtenez un ensemble de primitives modernes. Vous les utilisez ou vous utilisez un protocole différent.

La pile cryptographique

WireGuard utilise un petit ensemble avisé de primitives modernes au lieu de laisser l'utilisateur choisir :

  • Curve25519 pour l'échange de clés Diffie-Hellman à courbe elliptique (à la fois éphémères et à long terme).
  • ChaCha20 pour le cryptage symétrique.
  • Poly1305 pour l'authentification des messages.
  • BLAKE2s pour le hachage (plus rapide que SHA-3 et plus léger que SHA-2).
  • HKDF pour la dérivation de clé.
  • SipHash24 pour les tables de hachage internes qui résistent au déni de service via des attaques de complexité algorithmique.

La poignée de main est construite sur le modèle IK du Cadre de protocole Noise. Il se termine en deux messages, avec une clé pré-partagée en option pour une couche supplémentaire de protection symétrique — utile comme protection contre les futures attaques d'informatique quantique sur Curve25519.

UDP uniquement par conception

WireGuard parle uniquement UDP, sur le port 51820 par défaut. C'est intentionnel. Le transport de TCP sur TCP (comme le fonctionne OpenVPN-TCP) provoque le problème bien connu de fusion de TCP : lorsque la connexion TCP interne retransmet, la connexion externe retransmet également et les deux timers se piétinent. UDP évite complètement cela.

Le compromis est réel : dans les réseaux restrictifs où seul TCP/443 est autorisé, WireGuard ne fonctionne tout simplement pas. Il n'existe pas d'équivalent à OpenVPN-over-TCP-443 pour se déguiser en trafic HTTPS. Si vous êtes derrière un réseau de type Great Firewall, vous avez besoin d'un protocole différent ou d'un wrapper comme AmneziaWG qui obscurcit la poignée de main WireGuard.

LAdoption du noyau Linux

Le statut de WireGuard en tant que module de noyau - plutôt qu'en tant que démon d'espace utilisateur comme OpenVPN - est la principale raison pour laquelle il est si rapide. Les paquets ne franchissent jamais la frontière noyau/espace utilisateur sur le chemin actif.

  • 9 décembre 2019 : David Miller a accepté les correctifs WireGuard dans l'arborescence Linux net-next.
  • 28 janvier 2020 : Linus Torvalds fusionné net-next, plaçant WireGuard dans mainline.
  • 20 mars 2020 : Linux 5.6 livré avec WireGuard intégré.
  • 30 mars 2020 : Android a ajouté la prise en charge du noyau natif dans le noyau générique Image.
  • 22 juin 2020 : OpenBSD l'a importé.
  • 29 novembre 2020 : FreeBSD 13 a suivi.

Torvalds, réputé avare de compliments, a appelé le code "une œuvre d'art" comparé à OpenVPN et IPsec. Il n'exagérait pas.

Analyse de sécurité indépendante

En mai 2019, des chercheurs de l'INRIA ont publié une preuve vérifiée automatiquement de la poignée de main de WireGuard à l'aide de l'outil CryptoVerif. Ils ont démontré que le protocole garantit l'authentification mutuelle, la confidentialité des clés de session IND-CCA, la confidentialité de transmission et la sécurité après compromission, même sur des sessions parallèles illimitées, même en cas de fuite de clés à long terme. C'est un résultat formel inhabituellement fort pour un protocole VPN.

Comment il se compare à OpenVPN et IPsec

Sur une connexion filaire typique de 1 Gbit/s avec une latence de 50 ms jusqu'à votre sortie la plus proche :

  • Direct (pas de VPN) : débit de ligne complet, ~5 ms ajoutés latence.
  • WireGuard : 800 à 950 Mbps, +10 à 25 ms.
  • IKEv2/IPsec : 600 à 800 Mbps, latence similaire.
  • OpenVPN UDP : 250 à 400 Mbps, +30 à 60 ms.
  • OpenVPN TCP : 100 à 250 Mbps, +50 à 100 ms.

Vous pouvez vérifier vous-même l'écart en exécutant notre speed testez avec le VPN désactivé, puis réexécutez via chaque protocole pris en charge par votre fournisseur.

Là où WireGuard est plus faible

  • Aucun état de connexion. WireGuard lie un homologue à une allocation IP statique. Sans aide, cela crée une surface de journalisation : l'adresse IP de chaque client qui se connecte est associée à sa clé publique sur le serveur. Les VPN commerciaux résolvent ce problème en tournant les adresses IP internes, mais cela nécessite une plomberie supplémentaire que le protocole lui-même ne fournit pas.
  • UDP uniquement. Ne fonctionne pas là où seul TCP/443 est autorisé. coordinateur.
  • Facile à empreintes digitales. La poignée de main a une forme distinctive et est trivialement identifiable par une inspection approfondie des paquets, ce qui est l'une des raisons pour lesquelles elle est bloquée en Chine, en Iran et en Russie.

Implémentations à connaître

  • wireguard-go : l'officiel Implémentation de l'espace utilisateur multiplateforme dans Go.
  • BoringTun : implémentation de l'espace utilisateur Rust de Cloudflare, utilisée en production à grande échelle.
  • wireguard-nt : le pilote du noyau Windows, disponible depuis août 2021.
  • AmneziaWG : un fork qui ajoute une obscurcissement du protocole pour éviter l'inspection approfondie des paquets.

Qui l'utilise commercialement

Mullvad a fourni le support WireGuard avant presque tout le monde. NordVPN l'enveloppe sous le nom NordLynx avec une couche NAT personnalisée pour résoudre le problème d'allocation IP statique. ProtonVPN le prend en charge sur tous les forfaits. IVPN et TunnelBear l'expédient. Tailscale et Cloudflare WARP l'utilisent tous deux en interne. Si votre fournisseur est moderne, il parle presque certainement WireGuard.

Devriez-vous choisir WireGuard ?

Pour 95 % des utilisateurs, oui. Il est plus rapide, plus efficace sur la batterie mobile, plus facile à configurer et possède une sécurité formelle bien plus solide que ses prédécesseurs. Les seules raisons de choisir différemment sont :

  • Vous êtes dans un pays qui bloque les poignées de main WireGuard via DPI – choisissez OpenVPN sur TCP/443 avec obfuscation TLS, ou AmneziaWG.
  • Vous avez besoin d'un tunnel d'entreprise toujours actif vers un concentrateur IPsec existant – restez sur IKEv2.
  • Vous utilisez un service. qui n'a pas encore livré WireGuard (rare en 2026).

Une fois connecté, confirmez que le tunnel fait réellement son travail avec notre test de fuite VPN. Un protocole fonctionnel avec un client mal configuré n'est pas mieux que pas de VPN du tout.

Questions fréquemment posées

WireGuard est-il plus sécurisé qu’OpenVPN ?
Les deux sont sécurisés lorsqu’ils sont correctement configurés. La base de code beaucoup plus petite de WireGuard rend l'audit plus facile et réduit la surface d'attaque, et bénéficie d'une preuve de sécurité formelle vérifiée par machine qu'OpenVPN ne possède pas. OpenVPN bénéficie de plus de 20 ans d’examen minutieux et d’un écosystème TLS mature. Il n’existe aucune rupture cryptographique connue dans les configurations modernes des deux protocoles.
Pourquoi WireGuard utilise-t-il uniquement UDP ?
Parce que le tunneling TCP sur TCP provoque le problème bien connu de fusion de TCP : lorsque la connexion interne retransmet, la connexion externe retransmet également et les deux minuteries de nouvelle tentative se piétinent. UDP évite complètement cela. Le compromis est que WireGuard ne peut pas se déguiser en HTTPS sur TCP/443, c'est pourquoi OpenVPN-TCP est toujours utile dans les réseaux fortement filtrés.
WireGuard enregistre-t-il mon IP ?
Le protocole simple associe un homologue se connectant à sa clé publique, qui est une sorte de journal. Les fournisseurs VPN commerciaux réputés enveloppent WireGuard avec des adresses IP internes rotatives et des serveurs RAM uniquement pour supprimer cette surface. Si vous utilisez votre propre serveur WireGuard, la responsabilité vous incombe.
WireGuard peut-il fonctionner en Chine ou en Iran ?
Les poignées de main WireGuard standard ont une forme distinctive et sont facilement identifiables par une inspection approfondie des paquets, elles sont donc régulièrement bloquées dans les pays fortement filtrés. Des forks comme AmneziaWG ajoutent une obscurcissement qui masque la poignée de main ; OpenVPN-over-TCP/443 avec obfuscation TLS est une autre alternative fiable.
WireGuard va-t-il tuer la batterie de mon mobile ?
Non, c'est généralement mieux qu'OpenVPN. La petite base de code de WireGuard et l'absence d'une boucle de maintien constante signifient une activité CPU et radio inférieure. IKEv2 avec une implémentation du noyau est tout aussi efficace sur mobile.
WireGuard expliqué : le protocole VPN moderne qui a réellement changé les choses | VPN Maître Pro