Protocoles VPN par génération et 6 critères pour en choisir un

Anton Belov

14 min de lectureTechnique

Générations de protocoles VPN

Un protocole VPN est l’ensemble des règles que suivent votre application et le serveur. Ces règles portent sur l’échange des clés, l’encapsulation de votre trafic et son acheminement à travers d’autres réseaux. Le protocole détermine la rapidité avec laquelle une connexion s’établit. Il influe aussi sur le maintien de la connexion lors du passage du Wi-Fi aux données mobiles. Le troisième facteur est la visibilité du VPN pour les réseaux qu’il traverse. Chaque protocole a été conçu pour répondre à un problème de son époque. Dans les années 1990, il s’agissait de l’accès par modem au réseau d’une entreprise. Aujourd’hui, il s’agit de l’accès à travers des réseaux qui repèrent les VPN à leurs premiers octets. Les protocoles sont regroupés ci-dessous par génération, et 6 critères en fin d’article vous aident à en choisir un.

Les protocoles se distinguent par la négociation (handshake), le transport et l’empreinte

L’adaptateur, le tunnel et le serveur sont décrits dans notre guide d’introduction au VPN. Chaque protocole construit le tunnel à sa façon, et les différences portent sur 3 points.

La négociation fixe les clés de session

L’application et le serveur s’authentifient mutuellement et conviennent des clés de session avant tout échange de données. WireGuard a besoin d’un message dans chaque sens, et IKEv2 de 4 messages au total. OpenVPN effectue une négociation TLS complète à l’intérieur de son propre canal de contrôle. Moins il y a d’allers-retours, plus la connexion est rapide sur les liaisons où chaque réponse arrive lentement. L’Internet par satellite et les réseaux mobiles saturés en sont des exemples typiques.

Les paquets perdus ralentissent un tunnel sur TCP

UDP envoie chaque paquet une seule fois et ne vérifie pas s’il est arrivé. TCP attend un accusé de réception pour les données qu’il envoie. Si l’accusé de réception n’arrive pas à temps, TCP renvoie les données et réduit son débit. Un tunnel sur TCP empile 2 couches de ce type, l’une dans l’autre. La couche du tunnel renvoie le paquet manquant, et cela prend du temps. Entre-temps, la connexion du navigateur à l’intérieur du tunnel considère le paquet comme perdu. Elle envoie sa propre copie et réduit elle aussi son débit. Les pages se chargent alors par à-coups, avec des pauses à répétition. C’est pourquoi WireGuard fonctionne uniquement sur UDP. Ses développeurs indiquent que WireGuard n’aura pas de mode TCP, car le TCP sur TCP fonctionne mal. En contrepartie, WireGuard ne peut pas se connecter sur un réseau qui bloque UDP.

Le réseau voit l’empreinte, pas le contenu

Votre fournisseur d’accès à Internet ne peut pas lire le contenu du tunnel. Il voit le port, la taille des premiers messages et les éventuels champs d’en-tête non chiffrés. L’ensemble de ces détails forme l’empreinte d’un protocole. Certains systèmes de filtrage sondent aussi un serveur suspect et analysent sa réponse. Les anciens protocoles ont été conçus sans tenir compte de ces contrôles. Pour les protocoles récents, l’empreinte fait partie intégrante de la conception.

10 protocoles VPN des années 1990 aux années 2020

Les nouveaux protocoles n’ont pas remplacé les anciens. PPTP est toujours présent dans le firmware des routeurs, tandis que Windows et macOS intègrent L2TP et IKEv2. Le tableau indique pour chaque protocole sa décennie et son objectif d’origine.

ProtocoleApparitionConçu pour
PPTPAnnées 1990Acheminer une connexion par modem jusqu’au réseau de l’entreprise via Internet
L2TP/IPsecVers 2000Remplacer PPTP, protocole propriétaire, par un standard ouvert et confier le chiffrement à IPsec
OpenVPNAnnées 2000Offrir à tout système un tunnel TLS sur un seul port
IKEv2/IPsecAnnées 2000Négocier les clés plus vite et garder la session quand le réseau change
SSTPAnnées 2000Traverser les réseaux qui n’autorisent que HTTPS
ShadowsocksAnnées 2010Ne laisser au trafic aucune empreinte
WireGuardAnnées 2010Garder un tunnel simple et un code assez court pour être audité
VLESS + REALITYAnnées 2020Ressembler à une connexion HTTPS vers un vrai site connu
Hysteria2Années 2020Rester rapide sur les liaisons avec pertes de paquets et ressembler à HTTP/3
XHTTPAnnées 2020Faire passer les données sous forme de requêtes HTTP ordinaires, y compris par des CDN

PPTP et L2TP/IPsec datent de l’époque des modems

PPTP

PPTP a été conçu pour relier un salarié équipé d’un modem au réseau de l’entreprise via Internet. Il encapsule PPP, le protocole qu’utilisaient les connexions par modem à un fournisseur d’accès à Internet. Sa spécification, la RFC 2637, a été publiée en 1999. Le canal de contrôle utilise le port TCP 1723, et GRE transporte les données. Comme GRE n’a pas de ports, les routeurs domestiques proposent encore une option « PPTP Passthrough ».

Bruce Schneier et Peiter Zatko (Mudge) ont décrit les faiblesses de PPTP en 1998 et 1999. En 2012, une présentation à la DEF CON a montré qu’une authentification MS-CHAPv2 interceptée repose sur une seule clé DES. Une attaque par force brute trouve une clé de cette taille en un temps raisonnable. Comme la clé de chiffrement MPPE est dérivée des mêmes données d’authentification, ses 128 bits n’ajoutent aucune protection. Microsoft a ensuite publié un avis de sécurité qui mettait en garde contre MS-CHAPv2 sans protection supplémentaire. Depuis, PPTP n’est plus considéré comme sûr.

L2TP/IPsec

L2TP (RFC 2661, 1999) réunit des idées de PPTP et du protocole L2F de Cisco. Comme L2TP n’a pas de chiffrement propre, il fonctionne presque toujours à l’intérieur d’IPsec (RFC 3193, 2001). Chaque paquet passe par 2 couches, d’abord L2TP, puis IPsec. Les deux couches ajoutent des octets et demandent chacune une configuration. L’échange de clés passe par le port UDP 500, et les données par UDP 4500 ou par un protocole à part, ESP. Ces ports fixes rendent la paire visible, et quelques règles de pare-feu suffisent à la bloquer.

En 2008, Microsoft a lancé SSTP, qui transporte le même PPP à l’intérieur de HTTPS sur le port TCP 443. Vue de l’extérieur, la connexion ressemble à une navigation web ordinaire. Elle franchit les pare-feu qui n’autorisent que le trafic web. Parmi les systèmes de bureau et mobiles, seul Windows intègre un client SSTP.

IKEv2, OpenVPN et WireGuard chiffrent bien et ont une empreinte reconnaissable

Ces 3 protocoles protègent bien vos données et fonctionnent sans problème sur un réseau ordinaire. Leur faiblesse commune est une empreinte que le réseau sait reconnaître. Sur les réseaux qui filtrent les connexions VPN, cette faiblesse compte davantage que la robustesse du chiffrement.

IKEv2/IPsec

IKEv2 négocie les clés en 4 messages, alors qu’IKEv1 prévoyait 8 variantes de l’échange initial. Sur les téléphones et les ordinateurs portables, IKEv2 est apprécié pour son extension MOBIKE (RFC 4555). Avec MOBIKE, un ordinateur portable peut passer du Wi-Fi du bureau au partage de connexion d’un téléphone. Le tunnel bascule vers la nouvelle adresse sans refaire l’authentification. iOS, macOS, Windows et Android 11 ou version ultérieure intègrent un client IKEv2. Sur ces systèmes, vous n’avez rien à installer pour IKEv2. Les réseaux reconnaissent IKEv2 aux mêmes ports UDP, 500 et 4500.

OpenVPN

OpenVPN est un projet à code source ouvert, avec son propre protocole et sans RFC. La négociation utilise TLS, et AES-GCM protège en général les données. OpenVPN fonctionne sur UDP ou TCP, sur n’importe quel port, et l’IANA lui attribue le port 1194. Il est intégré à de nombreux routeurs, où sa configuration tient en général dans un seul fichier .ovpn. Son point faible est l’en-tête qu’OpenVPN ajoute à chaque paquet. Dans cet en-tête, le type de message n’est pas chiffré, et chaque session commence de la même façon. En 2022, des chercheurs ont testé cette faiblesse sur le réseau d’un vrai fournisseur d’accès à Internet. Ils ont détecté OpenVPN dans ce trafic sans déchiffrer un seul octet.

WireGuard

Jason Donenfeld a présenté WireGuard à la conférence NDSS en 2017. En 2020, WireGuard est entré dans le noyau Linux avec la version 5.6. Il utilise un seul jeu fixe d’algorithmes de chiffrement (Curve25519, ChaCha20-Poly1305 et BLAKE2s dans une négociation Noise). Vous ne pouvez donc pas choisir une option faible par erreur. Le serveur ne répond pas aux paquets sans clé valide. Vu de l’extérieur, rien n’indique la présence d’un serveur.

Le trafic du client, en revanche, a une empreinte reconnaissable. Le premier message de la négociation fait toujours 148 octets, et la réponse toujours 92 octets. Le type de message est envoyé en clair. Le site de WireGuard précise que l’obfuscation ne fait pas partie des objectifs du protocole. Elle est laissée à une couche distincte, au-dessus de WireGuard. WireGuard fonctionne bien sur les réseaux ouverts et se fait vite repérer sur les réseaux filtrés.

VLESS + REALITY, XHTTP, Hysteria2 et Shadowsocks masquent l’empreinte du VPN

Ces protocoles ont été créés pour les réseaux qui détectent et bloquent les connexions VPN. Leur chiffrement est aussi robuste que celui des protocoles précédents. Leur objectif principal est toutefois une empreinte proche de celle du trafic ordinaire. Ils sont conçus comme des proxys, et l’application VPN fait passer par eux tout le trafic de votre appareil. Notre comparatif VPN ou proxy explique en quoi les deux diffèrent.

VLESS + REALITY

VLESS est un protocole compact, que développe aujourd’hui le projet Xray. Il transmet au serveur l’identifiant du client et l’adresse de destination. VLESS confie en général le chiffrement des données à TLS. REALITY fait ressembler la connexion à la visite d’un vrai site web tiers. Dans le premier paquet, un observateur voit le nom de ce site. Vient ensuite une négociation TLS 1.3 ordinaire, où le certificat est déjà chiffré. Le serveur se passe de nom de domaine et de certificat propres. Un système de filtrage qui sonde le serveur sans la clé reçoit une réponse du vrai site. REALITY transmet ces connexions directement à ce site.

XHTTP

XHTTP est un transport du projet Xray. Ses premières versions s’appelaient SplitHTTP. Il découpe les données en morceaux et les transporte dans des requêtes HTTP. Dans l’un de ses modes, les données envoyées partent sous forme d’une série de requêtes POST. Dans ce même mode, les données reçues reviennent en une seule longue réponse à une requête GET. Un proxy HTTP ou un réseau de diffusion de contenu (CDN) y voit du trafic web ordinaire. Le serveur peut donc fonctionner derrière une infrastructure tierce, comme beaucoup de sites web.

Hysteria2

Hysteria2 fonctionne sur QUIC (RFC 9000), le transport sur UDP qui sert de base à HTTP/3. À la connexion, le client annonce la bande passante de sa liaison. Hysteria2 envoie les données à ce débit et renvoie les paquets perdus sans le réduire. Cela aide sur les liaisons où les pertes de paquets sont fréquentes, comme les données mobiles dans un train. Un visiteur sans le mot de passe voit un site web HTTP/3 ordinaire. Selon la configuration, le serveur renvoie une page 404, des fichiers ou un autre site. Hysteria2 ne peut pas fonctionner sur un réseau sans UDP.

Shadowsocks

Apparu en 2012, Shadowsocks est le plus ancien et le plus simple des 4 protocoles. Il s’agit d’un proxy chiffré dès le premier octet, sans en-têtes ni négociation reconnaissable. Outline, le projet de Jigsaw sur lequel est construite l’application Ben's VPN, s’appuie sur Shadowsocks. Les 3 autres protocoles de ce groupe imitent l’empreinte du trafic web ordinaire. Le trafic Shadowsocks, lui, ne ressemble à aucun protocole connu. Cette absence de motif est elle aussi une empreinte. En 2023, des chercheurs ont décrit un système de filtrage qui bloquait ces connexions après quelques vérifications simples. Ces vérifications ne portaient que sur le premier paquet. Sur les réseaux très filtrés, Shadowsocks seul ne suffit donc pas.

6 critères pour choisir un protocole

Aucun protocole VPN ne convient à tous les cas, et le bon choix dépend de votre réseau et de votre usage. Passez les critères en revue dans l’ordre, de haut en bas. Le premier critère qui s’applique à votre cas décide en général du protocole.

  1. Le propriétaire du serveur décide en premier

    Sur un réseau d’entreprise ou d’école, utilisez le profil fourni par votre administrateur. Pour votre propre serveur, WireGuard est le protocole le plus simple à configurer. Il ne demande qu’une paire de clés et un court fichier de configuration. Un service VPN laisse en général son application choisir le protocole.

  2. Les réseaux filtrés excluent IKEv2, OpenVPN et WireGuard

    Un réseau qui recherche les empreintes de VPN détecte IKEv2, OpenVPN et WireGuard. Sur un tel réseau, utilisez des protocoles qui ressemblent à du trafic ordinaire, comme VLESS + REALITY, XHTTP et Hysteria2. Sur un réseau ouvert, IKEv2, OpenVPN et WireGuard fonctionnent sans problème.

  3. Un réseau sans UDP exige un protocole sur TCP

    Certains pare-feu d’entreprise ou d’université laissent passer les sites web et rien d’autre. Signe habituel : les pages s’ouvrent, mais WireGuard ou IKEv2 ne se connecte jamais. Parmi les protocoles qui y fonctionnent figurent VLESS + REALITY, XHTTP et OpenVPN sur TCP, port 443.

  4. Les changements de réseau fréquents favorisent IKEv2 et WireGuard

    Un téléphone bascule entre le Wi-Fi et les données mobiles de nombreuses fois par jour. IKEv2 avec MOBIKE maintient le tunnel lors de ces bascules. WireGuard les gère aussi et enregistre automatiquement la nouvelle adresse du client. Les applications des services VPN se reconnectent en général après chaque bascule.

  5. Les appels et les jeux fonctionnent mieux sur UDP

    Pendant un appel, la perte d’un court fragment de son passe presque inaperçue. Un retard, en revanche, se remarque tout de suite. WireGuard et Hysteria2 sont des exemples de protocoles UDP adaptés aux appels et aux jeux. TCP retient toutes les données suivantes jusqu’au renvoi du paquet perdu, et le son prend du retard.

  6. Un routeur ne fait tourner que ce que son firmware prend en charge

    Si le firmware propose OpenVPN, choisissez-le plutôt que PPTP. N’utilisez PPTP que si le firmware ne prend rien d’autre en charge. Même dans ce cas, utilisez-le seulement quand un appareil, comme un téléviseur, a besoin d’un autre pays.

L’application Ben's VPN choisit le protocole automatiquement

VLESS + REALITY, XHTTP, Hysteria2 et Shadowsocks sont les 4 protocoles de l’application. L’application choisit l’itinéraire en même temps que le protocole. Aucun sélecteur de protocole n’apparaît à l’écran. Vous ne choisissez que l’emplacement. Votre fournisseur d’accès à Internet voit une connexion vers un serveur, mais pas le trafic qu’elle contient. Les versions pour les autres systèmes se trouvent sur la page des applications VPN.

L’écran principal de l’application Ben's VPN sur un iPhone, connecté à un serveur en Allemagne, avec le bouton Déconnecter sous le B jaune et les boutons Emplacement, Tunnel et Support en dessous
Vous choisissez l’emplacement, et l’application sélectionne le protocole

Quand la connexion est mauvaise, l’application affiche le bandeau « Connexion médiocre » avec un bouton « Résoudre le problème ». Appuyez dessus pour voir 2 options : un autre emplacement ou la recherche d’un serveur fonctionnel. La recherche teste de nouveau le serveur et obtient de nouvelles adresses IP. Si cela ne suffit pas, l’application active le multihop via un serveur intermédiaire dans un pays tiers. La recherche complète prend jusqu’à 2 minutes. Le bouton « Trouver un serveur fonctionnel » figure aussi dans « Compte » → « Paramètres ».

Keenetic, OpenWrt et MikroTik permettent de faire tourner l’application Ben's VPN sur le routeur lui-même. Les autres routeurs sont limités aux protocoles de leur firmware. Pour ces routeurs, la page du compte propose des paramètres PPTP et OpenVPN dans « Router » → « Other routers ». Un même identifiant et un même mot de passe servent pour les deux protocoles. Ils ne fonctionnent que sur un seul routeur à la fois. La page de configuration du routeur détaille chaque étape du paramétrage.

Questions et réponses

Que signifie l’obfuscation d’un VPN et en quoi diffère-t-elle du chiffrement ?

Le chiffrement cache le contenu, et sans la clé, personne ne peut lire les paquets. L’obfuscation cache le fait que la connexion passe par un VPN. Elle donne à la taille, à l’ordre et à la forme des paquets l’aspect d’un trafic ordinaire. WireGuard chiffre bien, mais n’obfusque pas son trafic. REALITY et Hysteria2 ajoutent l’obfuscation par-dessus le chiffrement.

Dois-je choisir WireGuard ou OpenVPN pour mon propre serveur ?

Sur un réseau qui autorise UDP et les VPN, WireGuard est plus simple à configurer et se connecte plus vite. OpenVPN est plus souple et fonctionne sur UDP ou TCP, sur n’importe quel port. Cette souplesse est utile sur les réseaux qui n’autorisent que TCP. Sur un réseau filtré, les deux protocoles se font repérer à leur empreinte.

Le multihop est-il un protocole à part ?

Non. Le multihop est un itinéraire, pas un protocole. Votre trafic passe d’abord par un serveur intermédiaire dans un pays tiers. De là, il rejoint le serveur de l’emplacement que vous avez choisi. Le multihop change le chemin du trafic, pas son chiffrement. Dans l’application Ben's VPN, le mode « Automatique » active le multihop quand la stabilité de la connexion l’exige.

Si un site utilise déjà HTTPS, qu’apporte un protocole VPN ?

HTTPS chiffre la page, mais le réseau voit quand même quel site vous consultez. Il voit l’adresse IP du site et son nom au début de la connexion. Un protocole VPN cache aussi ces informations. Votre fournisseur d’accès à Internet ne voit alors qu’une connexion vers un serveur. Au-delà du serveur, la requête poursuit vers le site hors du tunnel. Sur cette partie du trajet, HTTPS continue de protéger la requête.

Rédigé par

Anton Belov

Il écrit sur les réseaux et les protocoles VPN.

Essayer 3 jours, puis décider

L’essai coûte $0.50 et donne accès aux 187 pays et à toutes les applications. Ensuite, le forfait se renouvelle à $5 par mois. Vous pouvez désactiver le renouvellement à tout moment sur la page du compte.

Mac App Store App Store Google Play