Live & let die
Au chapitre de la rubrique nécrologique protocolaire, 2020 aura été marquée par la dépréciation de TLS 1.0 et 1.1 avec une fin de récréation sifflée par Mozilla Firefox et les petits brouteurs alternatifs qui servent généralement à télécharger Firefox (Chrome, Safari, Edge...), ce depuis mars 2020.
Nous pourrions également parler de SCP, lui aussi annoncé obsolète par ses développeurs qui invitent maintenant à l'utilisation de SFTP en lieu et place de SCP. Et c'est évidemment le lot de beaucoup de protocoles viellissants. Mais quand ça touche à des outils aussi présents au quotidien dans la vie d'un admin, ça veut dire changer des habitudes, et changer ses habitudes, l'admin, généralement, il n'aime pas trop ça.
Faisons-nous violence
Les cycles de vie des protocoles ne se ressemblent pas, mais sur le Net, il arrive un jour où, quelqu'un finit par proposer plus efficace, plus sécurisé, plus performant, plus maintenable... et c'est exactement ce qui est arrivé à l'un des chouchous de tout adminsys qui se respecte : OpenVPN.
Il est au passage important de rappeler qu'il n'existe pas d'autorité qui déprécie les protocoles comme l'IETF les consacre. La dépréciation d'un protocole est une décision de bonne intelligence qui répond souvent à une logique de cascade (une librairie ou une dépendance requise périmée, une évolution majeure de langage impliquant un refactoring complet du code...). Attention, nous ne sommes pas ici en train de dire qu'OpenVPN est mort et enterré, mais que l'utilisateur, qui, au final décide de tout, commence à avoir de sérieux arguments pour le remplacer.
On notera deux types d'utilisations distinctes des tunnels chiffrés. Le premier concerne l'accès (que l'on souhaite évidemment sécuriser) à un réseau privé (par exemple celui d'une d'entreprise) ou l'interconnexion de deux sites. Le second s'adresse plutôt aux particuliers soucieux de préserver un semblant de confidentialité sur le Net, de contourner des restrictions géographiques d'accès à certains contenus, d'échanger des photos de lolcats un peu osées sur les réseaux peer-to-peer. L2TP/IPSec et OpenVPN se partagent la majorité des usages (on excluera volontairement MPLS qui concerne plutôt les gros opérateurs).
- Accusé, levez-vous !
"OpenVPN, vous êtes né en 2001 sous licence GPL, vous avez déjà été reconnu coupable de la mort prématurée de PPTP et vous êtes l'objet de multiples plaintes en concurrence déloyale de la part de L2TP/IPSec. Cependant, vous êtes un peu poussiéreux pour un service que l'on aimerait à la pointe des meilleures pratiques cryptographiques de 2020 et pas de 2001. Enfin, votre configuration est souvent assez indigeste et votre code imbitable est une insulte aux bonnes pratiques de sécurité".
Wireguard : un "juste qui marche"® made VPN
La version 1.0 de Wireguard a été livrée au printemps dernier (mars 2020), mais attention, ce n'est pas parce que la peinture est encore fraîche que les finitions ont été bâclées. C'est une fois audité que son développeur, Jason Donenfeld, et Linus Torwald ont annoncé l'implémentation de Wireguard 1.0 par défaut dans le noyau Linux depuis la version 5.6, là ou OpenVPN tourne péniblement depuis 20 ans comme un service à la ramasse après TUN/TAP.
J'en vois qui froncent les sourcils... Voici ce qu'en pense Linus Torwald : " Maybe the code isn't perfect, but I've skimmed it, and compared to the horrors that are OpenVPN and IPSec, it's a work of art. "
Wireguard est un véritable dépoussiérage protocolaire qui redéfinit l'état de l'art en matière de déploiement de VPN tant ses apports sont significatifs par rapport à IPSec et surtout OpenVPN qui tenait jusque-là le haut du pavé.
Concrètement, Wireguard se propose de faire du tunneling chiffré de bout en bout, et de le faire mieux qu'OpenVPN : plus rapide, plus maintenable, plus moderne dans son approche, cryptographiquement doté des ciphersuites les plus modernes et donc réputées les plus sûres.
C'est justement côté chiffrement que le coup de plumeau est le plus flagrant : il y a eu de gros efforts d'implementations de l'arsenal le plus hype du moment : Ed25519, Curve25519, ChaCha20-Poly1305 Noise, BLAKE2, SipHash24, HKDF et le PFS (confidentialité persistente) par défaut (...).
La crypto, c'est bien, mais la crypto formellement vérifiée, c'est mieux : Tamarin vérifie formellement Wireguard.
Côté performances, le gain est très sensible à en croire ce benchmark . Si la méthodologie du test est discutable, on notera que chez des fournisseurs "grand public" l'avantage tourne largement en la faveur de Wireguard, une tendance confirmée par tous les utilisateurs.
Enfin, en environnement chaotique (aka en mobilité) là encore Wireguard s'en tire bien mieux qu'OpenVPN.
Plus simple, plus sûr
Les admins qui ont déjà eu à configurer un tunnel VPN pour leur entreprise le savent, le déploiement d'OpenVPN n'est jamais trivial. Là aussi Wireguard va vous faciliter la vie, son déploiement est aussi simple que la mise en place de SSHd. Si c'est plus simple, on est moins sujet à l'erreur de configuration, il en résulte donc un niveau de sécurité accru par défaut.
C'est aussi cette appréciable simplicité que l'on retrouve dans le code même de Wireguard, puisqu'à titre de comparaison, il représente 25 fois moins de lignes de code qu'OpenVPN (4000 pour Wireguard contre 100 000 pour OpenVPN). On se doute tout de suite que la maintenabilité va sérieusement s'en faire ressentir et qu'il sera ainsi plus simple pour les développeurs d'intervenir pour étendre son cycle de vie, par l'implémentation de nouveaux protocoles cryptographiques par exemple.
Si quelques fournisseurs VPN grand public commencent à fournir de quoi se connecter avec Wireguard, il va falloir encore un petit moment avant qu'il ne vienne complètement remplacer OpenVPN sur les infrastructures "historiques".
Si vous êtes un particulier et que votre fournisseur VPN propose des fichiers de configuration pour Wireguard, allez-y, il remplacera avantageusement OpenVPN que ce soit sur Mac, Windows ou GNU/Linux.
De votre côté, en bon adminsys que vous êtes, vous avez probablement planifié de déjà basculer sur Wireguard, et vu qu'il est livré avec le kernel 5.6, soit on upgrade, soit on y va à la roots en activant le module à la mimine. Si vous êtes sous Debian Buster, sachez que vous êtes Wireguard ready.
Même si OpenVPN a probablement encore de longues années de vie devant lui (il n'a à ce jour pas de vulnérabilités connues), Wireguard doit être vu comme un peu plus qu'une alternative à OpenVPN, il est le futur d'OpenVPN.
Crédit Image : Tunnel