Connexions chiffrées : l'âge des protocoles VPN en question

Connexions chiffrées : l’âge des protocoles VPN en question

OpenVPN ou OldVPN ?

Avatar de l'auteur
Guénaël Pépin

Publié dans

Internet

05/09/2017 6 minutes
28

Connexions chiffrées : l'âge des protocoles VPN en question

Après plus d'une décennie de bons et loyaux services, OpenVPN serait en passe de trouver un remplaçant avec WireGuard. Son concepteur, Jason Donenfeld, estime que l'outil actuel est trop ancien et lourd pour être sûr. Plusieurs services VPN nous répondent avec leurs projets, dont une réécriture du serveur OpenVPN en Rust.

Depuis plusieurs années, OpenVPN est l'outil de référence pour les réseaux privés virtuels de particuliers. Open source, il est constamment scruté par de nombreux développeurs. Au fil des années pourtant, le projet a pris de l'embonpoint, au point de devenir un danger selon Jason Donenfeld, qui ambitionne de le supplanter avec WireGuard (voir notre analyse).

Le dernier événement date de fin juin. Après deux audits professionnels d'OpenVPN, le chercheur en sécurité Guido Vranken a remonté quatre vulnérabilités (rapidement comblées) après une séance de fuzzing, soit l'injection de données aléatoires. Une preuve que l'âge du logiciel est plus un problème qu'une vertu, pour Donenfeld. Nous avons posé la question à plusieurs spécialistes du chiffrement des connexions : OpenVPN est-il toujours fiable aujourd'hui ?

Des lignes de code et des paires d'yeux

« Historiquement, les tentatives de tunnels sécurisés ont été nombreuses, comme OpenVPN et IPsec, qui sont deux désastres, chacun à sa manière » tacle Jason Donenfeld. IPsec, dont la conception remonte au milieu des années 90, pâtirait notamment du manque de mises à jour des terminaux, laissant des vulnérabilités dans la nature, selon le créateur de WireGuard.

« Un problème commun à ces deux projets est leur taille massive. Ce sont des milliers de lignes de code, extrêmement complexes, illisibles, et impossibles à appréhender dans leur totalité » estime-t-il. Pour lui, même si un chercheur passe des semaines à lire le code, il ne trouvera pas toutes les vulnérabilités. Avec WireGuard, il propose donc une brique centrale de 4 000 lignes de code, intégrées dans le noyau du système. Dans les faits, OpenVPN a la plus grande visibilité, étant un standard de fait pour le chiffrement des connexions.

« Ce n'est pas demain que WireGuard sera aussi populaire qu'OpenVPN. En revanche la construction Noise [le framework derrière WireGuard] est très fiable d'un point de vue cryptographique. Le problème avec OpenVPN est plus la sécurité de son implémentation que de son design » pointe le spécialiste Jean-Philippe Aumasson.

« Quelques failles ont été récemment découvertes dans le logiciel, rapidement corrigées ; mais le protocole d'OpenVPN en lui-même reste robuste et n'a pas de problème sérieux à ma connaissance. Le fait qu'il soit simple et assez ouvert y est sûrement pour beaucoup » appuie Alice du service VPN français CCrypto.

Une question de configuration

Pour Andy Yen de ProtonVPN, fondé sur OpenVPN, les critiques de ce protocole peuvent en révéler les qualités. « Le nombre de lignes de code n'est qu'un facteur de la sécurité. Les autres incluent la maturité, la taille de la communauté des utilisateurs et l'audit du code. De ce point de vue, OpenVPN a un avantage fort, en tant que part importante du monde open source pendant plus d'une décennie, avec de nombreux audits au fil des ans » détaille-t-il.

Les chances de mal configurer un serveur OpenVPN sont aussi nombreuses, ce qui ne doit plus être le cas avec WireGuard. C'est l'une des principales critiques prêtées au logiciel historique, dont l'algorithme de chiffrement par défaut (BF-CBC) est sensible à certaines attaques, dont Sweet32, découverte il y a quelques mois.

« L'attaque ne fonctionne que dans certains cas difficiles à réaliser en pratique, et OpenVPN supporte d'autres algorithmes » relativise encore Alice de CCrypto. Changer l'algorithme de chiffrement semble être l'une des bonnes pratiques à la mise en place d'un serveur OpenVPN, dont la flexibilité contribue tout de même à la large base de code.

Pour les services VPN interrogés, il n'est pas encore question de se départir d'OpenVPN, qui bénéficie d'une grande compatibilité et fournit les outils nécessaires à sa bonne utilisation. Encore faut-il endurcir correctement le serveur. Côté utilisateurs, l'ancien protocole ne pose pas de problème majeur, avec une configuration assez simple des clients.

« Fournir un VPN simple d'utilisation est globalement réglé. Ce qui demande encore du travail, c'est d'obtenir un VPN qui fonctionne toujours de manière non-traditionnelle, dans des régimes lourdement censurés avec de l'inspection de paquets intrusive, ou même trouver des manières de contourner des blocages d'adresses IP » pense Andy Yen de ProtonVPN... Pour qui WireGuard « résout plutôt une question déjà résolue que de revoir le modèle opérationnel du VPN ».

Une réécriture du serveur OpenVPN en Rust

Pour ProtonVPN, si WireGuard est bien dans le radar, « il n'a pas encore atteint la maturité nécessaire pour le mettre en production dans un environnement avec de nombreuses menaces ». Selon lui, WireGuard devra aussi attendre une dizaine d'années avant d'être mature, si la communauté suit.

« Je ne pense pas remplacer OpenVPN ou même essayer de le faire pour l'instant, il nous convient bien. Mais il y a par exemple IPsec qui est une autre référence parmi les protocoles de VPN, qui est encore plus ancien et facile d'accès et intégré aux systèmes d'exploitation. On aimerait bien le proposer en plus d'OpenVPN un jour » détaille pour sa part Alice de CCrypto.

Cette dernière s'est lancée dans une réécriture open source du serveur OpenVPN en Rust, un langage compatible avec le C d'OpenVPN. L'un des principaux intérêts est une meilleure gestion de la mémoire, qui évite de commettre des erreurs courantes avec son grand frère, donc des failles.  L'autre avantage de Rust concerne les performances, l'une des faiblesses d'OpenVPN, qui s'exécute en espace utilisateur. Le passage à Rust doit aussi aider à l'optimiser.

« Le projet consiste aussi à réécrire entièrement le serveur pour repartir sur une base propre et récente, au lieu de devoir trainer des années de modifications et divers besoins accumulés » explique Alice de CCrypto. Sur le principe, le projet intéresse d'ailleurs ProtonVPN, qui se plaint également des performances de l'outil. Le service suisse regarde, pour sa part, du côté des techniques d'obfuscation sur la base d'OpenVPN, pour éviter l'inspection de paquets (DPI).

Écrit par Guénaël Pépin

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Des lignes de code et des paires d'yeux

Une question de configuration

Une réécriture du serveur OpenVPN en Rust

Fermer

Commentaires (28)


J’ai découvert tinc récemment, il me manque encore un peu de recul mais après un ou deux essais ça a l’air pas mal comme VPN, facile à configurer et pratique.&nbsp;<img data-src=" />


Je trouve que le N est à l’envers sur l’image…


VPZ ? <img data-src=" /> <img data-src=" />


qu’en pensent les créateurs d’OpenVPN?


Pour moi WireGuard faut son coup de com pour se faire entendre mais ne reste que le bon OpenVPN bien implémenté côté client et serveur. Forcément avec tout les bizness man qui surfent sur la vague de la surveillance de masse et la censure pour proposer des services VPN en mousse on pourrait croire qu’OpenVPN est vieux et bon à la retraite.


pff <img data-src=" />


Haha Alice de CCrypto…. On préfère réécrire OpenVPN en Rust plutôt que de se pencher sur WireGuard et ses 4000 lignes.<img data-src=" />

Pareil chez Proton… “Il y a plein de monde qui audite les millions de lignes de code d’OpenVPN, c’est quand-même mieux que d’auditer les 4000 de WG”.

Mauvaise foie (<img data-src=" />) quand tu nous tiens…

C’est plutôt qu’il faudrait revoir toute leur infra qui les fait flipper.


Qu’est-ce qu’il faut pas lire… auditer du code existant, qui tourne en prod et qui continuera à tourner pendant des années c’est plus important qu’auditer un code tout jeune, non utilisé, non disponible en standard dans le noyau.



Faut être rationnel les gens.


Oui enfin l’âge en question… par le développeur d’une solution concurrente toute nouvelle.



Il y a certainement plein de reproches à faire à openVPN, mais son âge, en soit, ça ne dit rien. On peut difficilement faire plus creux comme critique. Je ne sais pas si ça vient juste de la com’ du dev ou des articles mais ça donne pas envie en fait, au contraire. Les arguments qu’on me met en avant sont marketing et gadget.

&nbsp;

c’est moderne! y a que 4k lignes de code! OpenVPN c’est vieux, y a plein de lignes de code! mouais…


Bof.



Le gars qui fait WireGuard a conçu son produit de manière simple et veut le pousser en upstream dans le kernel Linux, je vois pas ce qu’il y gagne. Cela m’a l’air honnête même si effectivement on est pas prêt d’enterrer OpenVPN.



Généralement les entreprises qui font des coups fourrés développent des produits bloatés tellement compliqués que tu es obligé de payer du support car tu comprends pas comment ça marche.








uzak a écrit :



Je trouve que le N est à l’envers sur l’image…





Ah je suis pas le seul alors! À chaque fois que je vois cette stock photo je me fais cette remarque









kane13 a écrit :



Qu’est-ce qu’il faut pas lire… auditer du code existant, qui tourne en prod et qui continuera à tourner pendant des années c’est plus important qu’auditer un code tout jeune, non utilisé, non disponible en standard dans le noyau.



Faut être rationnel les gens.





Mais quelle merveilleuse idée. Faut mettre en prod, et seulement après qu’il sera massivement adopté, faire un audit de sécu. Idem avec tous les algos de crypto.<img data-src=" />



Moi j’avais l’idée d’auditer le code de WireGuard en parrallèle, mais j’apprends grace à toi qu’il n’y a qu’une seule boite d’audit dans le monde et qu’il est impossible de faire les deux en même temps. Merci pour ton professionnalisme.



J’ai regardé la conf WireGuard du fosdem, ça a l’air vraiment cool. Je pense que j’ai un problème avec l’angle des articles qui s’appuie trop sur edgy wg vs vieux openvpn.


Le protocole IP est très vieux lui aussi.


Ah, tu trouves, toi aussi?

Pis le TCP avec ses tous petits paquets, ppfffff….

J’ai regardé ma carte réseau, elle peut faire mieux.

Je réfléchis à un nouveau protocole mieux et je le poste sur le fofo soon!

<img data-src=" />


IKEv2/IPSec est pas mal du tout, facile à configurer sur la plupart des OS récents (Windows, Linux, MacOS, Android, iOS…) et simple à installer sur un serveur de type Debian.


Le VPN SSL c’est encore plus facile&nbsp;








Minikea a écrit :



qu’en pensent les créateurs d’OpenVPN?







Deux sont en maison de retraite, le troisième est malheureusement décédé à l’age de 97 ans.



<img data-src=" />



Quid de SoftEther VPN ?


pour le coup, leur code fait 400 000 lignes! <img data-src=" />

ça peut être sympa pour éviter le DPI, mais ça a l’air d’être une usine à gaz.


Je me demande comment font les gens qui ont besoin VPN dans les pays comme la Chine qui les a interdit. Ça doit être compliqué de masquer le chiffrement, ils doivent se faire identifier directement non ?



edit: je parle de Chine, mais je pense aux régimes où les dissidents sont traqués, même si le VPN n’est pas interdit officiellement


SoftEther semble avoir une couche d’offuscation pour le DPI. je ne sais pas ce que ça vaut par contre.

Si on se fie à sa fiche technique, il doit pouvoir passer à travers beaucoup de choses et être dur à détecter.


Merci de l’info, je n’imaginais pas que ce soit possible mais je n’y connais pas grand chose en réseau.


Ils utilisent openvpn.


Je vois pas en quoi IPsec est oldschool, on l’a déployé sur une partie de nos servers critiques et ça marche très bien.

C’est vrai que c’est lourd à mettre en place, avec tous les flitrages IP pour créer les tunnels sécurisés, mais de là à dire que c’est dépassé…


C’est étrange que vous trouviez qu’IPSec soit lourd à mettre en place. Je l’utilise justement par ce que c’est plus simple qu’OpenVPN (j’utilise aussi ce dernier dans certains cas). Qu’utilisez vous comme logiciel pour déployer cette techno ?


IPSec via GPOs.

C’est plus la mécanique de hardening qui est lourde.

Pour sécuriser un environnement donné, on y met du secure channel, PKI, Kerberos only, et ensuite toutes les règles de filtrage IP pour créer un tunnel chiffré entre chaque machine.

Disons que ça fait beaucoup d’IP à mettre en place dans le filtrage et qu’il vaut mieux pas se louper :)