VPNSmith
tunneling-obfuscationINFO

Hysteria 2 : ce que font réellement le masquerade et l'obfuscation

Hysteria 2 empile trois couches de déguisement : du QUIC qui imite HTTP/3, une obfuscation optionnelle quand QUIC lui-même est bloqué, et un masquerade qui répond à de vraies requêtes HTTP. Ce que la documentation dit de chacune, et quand elle vous invite à les laisser de côté.

Par Eric Gerard · Fondateur · VPNSmith - Spécialiste self-host VPN & VPS GDPR5 min de lecturePhoto via Pexels

La plupart des articles sur Hysteria 2 le décrivent comme rapide. C'est ce qu'il a de moins intéressant. Ce qui mérite d'être compris, c'est qu'il empile trois déguisements distincts, chacun résolvant un problème différent, et que sa propre documentation vous dit quand les laisser désactivés.

Première couche : ressembler au web

Hysteria 2 fonctionne au-dessus de QUIC, et par défaut le protocole Hysteria imite HTTP/3.

C'est le déguisement de base et il ne coûte rien. Un réseau qui pratique une inspection superficielle voit du trafic UDP dont la forme évoque la navigation web moderne, parce que c'est de plus en plus à cela que ressemble la navigation web moderne. Aucune configuration, aucun mot de passe, aucun coût en performance.

Cela installe aussi le piège auquel les deux couches suivantes servent à échapper.

Deuxième couche : quand QUIC lui-même est le problème

Si vous ressemblez à HTTP/3, alors un réseau qui bloque HTTP/3 vous bloque. La documentation est précise sur ce cas restreint : si votre réseau bloque spécifiquement le trafic QUIC ou HTTP/3 (mais pas UDP en général), l'obfuscation peut être utilisée pour contourner ce blocage.

Deux implémentations sont proposées, Salamander et Gecko, et toutes deux nécessitent un mot de passe identique côté client et côté serveur.

Lisez la condition attentivement, car elle contient un mais. L'obfuscation aide lorsque QUIC est bloqué et qu'UDP ne l'est pas. Si le réseau jette UDP en bloc, obfusquer le handshake QUIC ne change rien, et il vous faut un tout autre transport. Activer l'obfuscation parce que cela paraît plus sûr, c'est ainsi qu'on passe une soirée à déboguer un tunnel qui n'avait aucune chance de fonctionner.

Une façade beige sans relief avec une seule fenêtre, le genre de bâtiment que personne ne regarde deux fois.
Une façade beige sans relief avec une seule fenêtre, le genre de bâtiment que personne ne regarde deux fois.

Troisième couche : survivre à une vraie visite

Les deux premières couches traitent le trafic que l'on observe. Le masquerade traite le trafic que l'on sonde.

Une fois configuré, le serveur répond également aux requêtes HTTP comme un serveur web ordinaire. La documentation en donne la raison sans euphémisme : votre serveur doit réellement servir du contenu pour paraître authentique aux yeux de censeurs potentiels.

Ce mot réellement est tout l'enjeu. Un censeur qui teste une adresse n'analyse pas le rythme des paquets, il ouvre une connexion et demande une page. Un serveur qui ne renvoie rien a échoué au test le plus simple qui soit, et une adresse qui refuse de se comporter comme un site web tout en parlant quelque chose qui a la forme de HTTP est plus voyante qu'une adresse qui n'a jamais tenté de se cacher.

La phrase qui devrait décider de votre configuration

Enfouie dans la référence se trouve la ligne qui fait gagner le plus de temps :

Si la censure n'est pas une préoccupation, vous pouvez omettre entièrement la section masquerade.

Elle vous dit ce que le masquerade n'est pas. Ce n'est ni du chiffrement, ni de l'authentification, ni une mesure de durcissement. C'est une contre-mesure face au sondage actif par un censeur, et en dehors de ce modèle de menace il ajoute de la surface de configuration pour rien.

La même logique traverse toute la conception. Chaque couche répond à un adversaire précis : inspection superficielle, blocage de protocole, sondage actif. Activer les trois par réflexe revient à entretenir des défenses contre des menaces auxquelles vous n'êtes peut-être pas exposé, et chaque option inutile est une chose de plus à mal configurer.

Les réglages de bande passante, puisqu'ils déroutent tout le monde

Ce sont des limites, pas des promesses. Les valeurs côté serveur agissent comme des limites de vitesse, en limitant le débit maximal auquel le serveur enverra et recevra des données (par client), et elles peuvent être omises ou mises à zéro pour aucune limite.

C'est sur le nommage que l'on trébuche : la vitesse d'upload du serveur est la vitesse de download du client, et inversement. Fixer sur le serveur ce que l'on croit être un plafond de téléchargement généreux alors qu'on plafonne en réalité l'envoi est un goulot d'étranglement courant et entièrement auto-infligé.

Hysteria n'a de sens que sur un serveur qui vous appartient, puisque le masquerade impose que la machine serve un vrai contenu sous votre propre domaine. Un petit VPS suffit au trafic que la plupart des gens y font passer.

Le résumé honnête

Hysteria 2, ce sont trois déguisements dans un trench-coat, et c'est un compliment. QUIC qui imite HTTP/3 par défaut, l'obfuscation pour le cas restreint où QUIC en particulier est bloqué mais pas UDP, et le masquerade pour que le serveur survive à une visite et pas seulement à une observation.

Faites correspondre la couche à l'adversaire que vous avez réellement. La documentation elle-même vous dit d'ignorer le masquerade si la censure n'est pas une préoccupation, et prendre ce conseil au pied de la lettre vous donnera une configuration plus simple qui casse en moins d'endroits.

La description du transport, l'affirmation selon laquelle le protocole imite HTTP/3 par défaut, la condition d'obfuscation concernant QUIC ou HTTP/3 bloqués mais pas UDP en général, les options Salamander et Gecko, le comportement du masquerade et son objectif déclaré de paraître authentique aux yeux de censeurs potentiels, l'autorisation d'omettre le masquerade quand la censure n'est pas une préoccupation, ainsi que la sémantique de la bande passante y compris l'inversion upload/download, sont tirés de la documentation de configuration serveur d'Hysteria 2, consultée au moment de la rédaction. Les options de configuration changent d'une version à l'autre ; vérifiez par rapport à la version que vous déployez. Les liens commerciaux portent l'attribut rel="sponsored nofollow" ; une commission d'affiliation peut s'appliquer sans surcoût pour vous.

Questions fréquentes

Quel transport Hysteria 2 utilise-t-il ?
QUIC, au-dessus de HTTP/3. La documentation indique que par défaut le protocole Hysteria imite HTTP/3, ce qui constitue la première couche de déguisement : pour un réseau qui ne regarde que la forme du protocole, le trafic ressemble à une navigation web moderne ordinaire plutôt qu'à un tunnel.
À quoi sert l'obfuscation, et en ai-je besoin ?
Elle répond à un cas précis, énoncé clairement dans la documentation : si votre réseau bloque spécifiquement le trafic QUIC ou HTTP/3 mais pas UDP en général, l'obfuscation peut être utilisée pour contourner ce blocage. Deux options existent, Salamander et Gecko, et toutes deux exigent le même mot de passe côté client et côté serveur. Si QUIC n'est pas bloqué là où vous êtes, l'obfuscation résout un problème que vous n'avez pas.
Que fait le masquerade ?
Il fait en sorte que le serveur réponde aux requêtes HTTP comme un serveur web ordinaire. La raison est donnée directement : votre serveur doit réellement servir du contenu pour paraître authentique aux yeux de censeurs potentiels. Sans cela, une sonde qui se connecte et demande une page ne reçoit rien en retour, ce qui constitue en soi un signal.
Puis-je me passer du masquerade ?
Oui, et la documentation le dit : si la censure n'est pas une préoccupation, vous pouvez omettre entièrement la section masquerade. Cette seule phrase est la ligne la plus utile de la référence de configuration, car elle vous indique que cette fonctionnalité est une contre-mesure face à la censure et non un contrôle de sécurité.
Que contrôlent réellement les réglages de bande passante ?
Ce sont des limites de vitesse, pas des garanties. La documentation décrit les valeurs côté serveur comme limitant le débit maximal auquel le serveur enverra et recevra des données, par client. Le nommage des directions induit en erreur : la vitesse d'upload du serveur est la vitesse de download du client, et inversement. Les valeurs peuvent être omises ou mises à zéro pour aucune limite.