Connexions chiffrées : l’âge des protocoles VPN en question
OpenVPN ou OldVPN ?
Le 05 septembre 2017 à 14h39
6 min
Internet
Internet
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).
Connexions chiffrées : l’âge des protocoles VPN en question
-
Des lignes de code et des paires d'yeux
-
Une question de configuration
-
Une réécriture du serveur OpenVPN en Rust
Commentaires (28)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 05/09/2017 à 14h56
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. " />
Le 05/09/2017 à 15h06
Je trouve que le N est à l’envers sur l’image…
Le 05/09/2017 à 15h09
VPZ ? " /> " />
Le 05/09/2017 à 15h12
qu’en pensent les créateurs d’OpenVPN?
Le 05/09/2017 à 15h13
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.
Le 05/09/2017 à 15h13
pff " />
Le 05/09/2017 à 15h20
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." />
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 (" />) quand tu nous tiens…
C’est plutôt qu’il faudrait revoir toute leur infra qui les fait flipper.
Le 05/09/2017 à 15h23
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.
Le 05/09/2017 à 15h25
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.
c’est moderne! y a que 4k lignes de code! OpenVPN c’est vieux, y a plein de lignes de code! mouais…
Le 05/09/2017 à 15h29
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.
Le 05/09/2017 à 15h45
Le 05/09/2017 à 15h57
Le 05/09/2017 à 16h25
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 05/09/2017 à 17h25
Le protocole IP est très vieux lui aussi.
Le 05/09/2017 à 18h17
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!
" />
Le 05/09/2017 à 18h19
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 05/09/2017 à 19h15
Le VPN SSL c’est encore plus facile
Le 05/09/2017 à 22h22
Le 06/09/2017 à 07h34
LinkedIn LinkedIn" />
Le 06/09/2017 à 09h07
Quid de SoftEther VPN ?
Le 06/09/2017 à 10h03
pour le coup, leur code fait 400 000 lignes! " />
ça peut être sympa pour éviter le DPI, mais ça a l’air d’être une usine à gaz.
Le 06/09/2017 à 12h04
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
Le 06/09/2017 à 13h44
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.
Le 06/09/2017 à 14h37
Merci de l’info, je n’imaginais pas que ce soit possible mais je n’y connais pas grand chose en réseau.
Le 06/09/2017 à 22h10
Ils utilisent openvpn.
Le 07/09/2017 à 06h57
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é…
Le 07/09/2017 à 18h19
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 ?
Le 11/09/2017 à 07h03
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 :)