Site icon Houssenia Writing

Le guide pour comprendre WireGuard sur les VPN

WireGuard est un protocole qui fait parler beaucoup de lui ces derniers temps. Il va améliorer la sécurité et la vitesse des VPN, mais il y a aussi des inconvénients.

WireGuard fait partie des protocoles qui sont ajoutés de plus en plus chez les fournisseurs VPN. Il y a quelques mois, WireGuard a fait parler de lui, car Linus Torvald nous a sorti ça à son propos :

Puis-je dire une fois de plus mon amour pour WireGuard et espérer qu’il sera bientôt fusionné? Peut-être que le code n’est pas parfait, mais je l’ai parcouru et comparé aux horreurs d’OpenVPN et d’IPSec, c’est une œuvre d’art – Linus Torvald sur la Mailing List du développement de Linux

Bon quand Linus Torvald aime le code de quelque chose, on s’y intéresse. Mais Torvald apprécie l’aspect technique. Il est vrai que WireGuard a tout pour plaire du coté du développement. Mais c’est son efficacité qui fera la différence. Le protocole VPN est la technologie qui permet de chiffrer les données quand vous utilisez une connexion VPN. C’est ça qui permet d’éviter des attaques pour intercepter vos données et éviter de vous faire pirater quand vous êtes sur un Wifi public par exemple.

Histoire de WireGuard

WireGuard a été développé par Jason A. Donenfield en 2015 en tant que module pour le noyau de Linux. L’objectif était de créer un protocole VPN à partir de zéro, pour qu’il soit léger, pratique à utiliser et surtout qu’il utilise les dernières normes de chiffrement. Les objectifs a été réalité en 2020 avec l’intégration de WireGuard dans le noyau Linux 5.6. Cela signifie que toute distribution Linux, compilée avec cette version du noyau pourra bénéficier de WireGuard en natif.

Les avantages de WireGuard

Comme c’est un nouveau protocole VPN, il a beaucoup moins de lignes de code que les protocoles actuellement utilisés. Dans les VPN, on a l’habitude d’utiliser principalement deux protocoles, OpenVPN et la combinaison L2TP/IPSec. Et disons que l’implémentation de ces protocoles sur des serveurs, c’est comme acheter un paquet de lames de rasoir, les mettre dans un verre d’eau, les avaler en mâchant bien, ensuite prendre une cuillère et s’arracher les yeux avec et ensuite, se trancher la gorge devant un miroir en éclatant de rire. C’est de la merde absolue, car OpenVPN et IPSec sont des protocoles très anciens.

OpenVPN et OpenSSL possède 600 000 lignes de code au total et pour IPVPN, c’est 400 000 lignes de code. En comparaison, WireGuard possède 4 000 lignes de code. Cela en fait donc un protocole très léger et très sécurisée. Car plus un programme a de lignes de code, plus il y a la surface pour l’attaquer et trouver des failles de sécurité.

Facile à installer

Pour l’utilisateur des VPNs, c’est toujours facile à utiliser. Vous prenez un abonnement, vous téléchargez le logiciel VPN pour votre plateforme et le tour est joué. Vous ne voyez rien sous le capot, mais du coté des fournisseurs VPN, c’est une autre galère. Et surtout, qu’ils peuvent avoir des centaines de serveurs VPN dans le monde et chacun doit être configuré et maintenue à intervalle régulier.

Plus, je propose une liste de fournisseurs VPN qui supportent déjà WireGuard, mais cela ne signifie pas que c’est un jeu d’enfant. Car les VPNs, on peut les acheter, mais on peut aussi configurer son propre serveur VPN. Si vous vous lancez avec WireGuard, il vous faudra bien lire la documentation et passer du temps pour comprendre tous les aspects techniques. Il faudra déjà être familier avec la création de serveurs VPN. Mais dans l’ensemble, cela vous prendra moins de temps.

WireGuard utilise les protocoles de chiffrement les plus récents

Une autre raison pour laquelle le monde du VPN se passionne pour WireGuard est les protocoles de chiffrement utilisés et l’approche globale. Parmi les protocoles, on peut citer :

Même si vous ne comprenez rien à ces protocoles de chiffrement, sachez simplement qu’ils sont les plus récents, mais surtout que leur approche est différent en cas de faille. Comme tout protocole VPN, il faut générer des clés publiques et privées pour WireGuard (encore une fois, c’est de la configuration technique dont l’utilisateur du VPN peut s’en foutre royalement).

Les clés de WireGuard sont en 256 Bits tandis qu’OpenVPN utilise des clés qui peuvent atteindre 4096. Mais WireGuard se contente de contre les attaques par brute force tandis qu’OpenVPN utilise une attaque par dictionnaire. OpenVPN utilise la longueur de la clé pour être constamment à l’abri, mais c’est une impasse technique. Car cela alourdit le protocole, donc le serveur et la connexion VPN.

Avec une clé de 256 bits, vous devrez forcer environ 2256. Même si vous trouvez la solution de la clé à mi-parcours, vous devrez quand même tester 2255 possibilités. Si vous avez un ordinateur suffisamment puissant, capable d’essayer 38 millions de clés par seconde, en sachant qu’il vous faudra connaitre la clé publique du serveur WireGuard, il vous faudra 1,52 x 1069 secondes pour trouver la bonne clé. En comparaison, l’âge de l’univers est de 4,32 x 1017 secondes. Je pense qu’on a de la marge…

L’approche de WireGuard est élégante, car tant que les algorithmes de calcul, derrière les protocoles de WireGuard, ne sont pas compromis, alors une clé de 256 bits est suffisant. Du moment que les ordinateurs ne deviennent pas plus puissants, alors WireGuard n’a rien à craindre et cette absence de crainte est régie par les lois de la physique.

Un Handshaking plus simplifié

En plus du protocole de chiffrement, on a aussi le Handshaking qui est la négociation quand deux entités lancent une communication. En gros, quand votre ordinateur se connecte à un serveur VPN, le Handshaking s’assure que quelqu’un ne vient pas fourrer sa main pleine de sueur dégoutante dans votre échange. Avec l’OpenVPN et l’IPSec et même le chiffrement en général, on utilise ce qu’on appelle la souplesse de chiffrement (agile crypto).

Cela consiste à combiner plusieurs algorithmes de calcul et de problèmes mathématiques pour sécuriser les échanges. C’est une méthode qui marche bien, car elle permet de changer régulièrement l’état de l’art du chiffrement et de toujours trouver des nouvelles méthodes pour sécuriser les données. Mais à force d’utiliser plusieurs composants, on se retrouve avec un Handshaking qui est très lourd.

WireGuard fait un régime de chiffrement en utilisant le chiffrement par version (crypto versionning). Si un protocole principal de WireGuard est mis KO, on va juste créer un autre protocole avec la version 2.0. Et on dira aux fournisseurs VPN qu’il faut passer à cette seconde version. D’une part, cela allège le serveur et d’autre part, c’est beaucoup plus facile à implémenter plutôt qu’à empiler couche après couche de correctifs pour se retrouver avec ce qu’on appelle communément un gros sac d’excréments.

WireGuard est 5 à 10 fois plus rapide

Malgré le fait que WireGuard est un protocole assez récent, tout le monde s’accorde à dire qu’il est beaucoup plus rapide qu’OpenVPN. Et cette rapidité est crucial dans le basculement des connexions et les Kill Switch qu’on trouve dans de nombreuses applications. Par exemple, WireGuard sur votre Smartphone va permettra de basculer du réseau Wifi en 4G ou vice-versa en quelques millisecondes. A aucun moment, votre connexion sera compromise.

Le Kill Switch, inventé par Hide My Ass, coupe la connexion internet quand la connexion VPN n’est pas disponible. C’est pour éviter que même pendant quelques minutes, votre connexion en clair et votre vraie adresse IP soit divulgué. Avec WireGuard, un serveur VPN pourra toujours avoir des micro-coupures, mais ce sera beaucoup moins flagrant et cela réduira les risques pour l’utilisateur.

WireGuard pose-t-il des problèmes pour la vie privée ?

Sur la sécurité, la légèreté, la vitesse, WireGuard est largement supérieure aux vieux protocoles VPN qui commencent à être datés. Mais il y a des fournisseurs VPN, notamment Cactus VPN, qui ont pointé des problèmes sur la protection de la vie privée de WireGuard. Le problème est que WireGuard a besoin d’assigner une adresse IP statique (donc qui ne change pas) à chaque utilisateur qui se connecte au serveur. OpenVPN et tous les autres protocoles assignent dynamiquement l’adresse IP.

Avec une assignation statique, le fournisseur VPN devra créer un tableau, contenant des adresses IP statiques pour ses utilisateurs ainsi que leurs heures de connexion. Comme de nombreuses entreprises VPN promeuvent une politique de zéro donnée, alors ce serait contradictoire avec leurs pratiques. Touefois, les partisans de WireGuard estiment que c’est un faux problème. Car WireGuard est d’abord un protocole VPN, son rôle est de proposer une sécurité aussi fiable que possible.

Sécurité vs vie privée

On confond sécurité et vie privée, mais ce sont deux choses différentes. La sécurité concerne les algorithmes de chiffrement et que vos données ne soient pas compromis par une attaque. La vie privée concerne un adversaire qui pourrait obtenir des informations sur vous. Ce n’est pas le rôle du protocole, mais de celui qui l’implémente. C’est à dire que c’est aux fournisseurs VPN de bidouiller WireGuard pour qu’il respecte la vie privée qu’ils promettent aux utilisateurs.

Et après quelques grimaces, ils commencent à le faire. Nordvpn propose ce qu’il appelle une double Network Address Translation (NAT) tandis qu’Ivpn utilise la durée de connexion pour chaque échange pour que l’information soit stockée au minimum sur ses serveurs. En fait, il arrive pratiquement à ne rien stocker. Et chaque fournisseur va tenter de proposer sa propre solution.

Les fournisseurs VPN qui supportent WireGuard

En conclusion

Le mot de la fin est que WireGuard a tout pour révolutionner le monde des VPN tels que nous le connaissons. D’une part, nous aurons une sécurité irréprochable et une légéreté de la configuration qui permettra à de nouveaux acteurs de se lancer dans ce secteur. Les problèmes de la vie privée avec le stockage des adresses IP ont été résolus assez rapidement par les différents fournisseurs. OpenVPN a toujours été catastrophique sur les Smartphones et le mobile.

En revanche, WireGuard est conçu pour être polyvalent que ce soit sur un petit Raspberry Pi ou un serveur monstrueux sous Xeon. Aucun protocole VPN n’est parfait et il y aura toujours des failles. Toutefois, l’approche de WireGuard fait que ce sera plus facile de les corriger. Dans les anciens protocoles, on avait tendance à colmater une brèche aujourd’hui pour dix qu’on découvre la semaine prochaine.

Quitter la version mobile