Fuites VPN et contrôles de déguisement
Une fuite est toute lecture vous concernant qui échappe au tunnel qu’un VPN construit : une valeur qui continue de voyager par son ancien trajet, ou qu’une page peut demander directement à votre navigateur, en contournant complètement le tunnel. Un contrôle de déguisement est le test compagnon : un site prend chaque lecture qu’il peut recueillir — adresse, horloge, langue, matériel, résolveur — et les compare entre elles, cherchant non des secrets mais des contradictions. Un déguisement échoue rarement parce qu’une valeur semble fausse. Il échoue parce que deux valeurs qui devraient s’accorder ne s’accordent pas. Exécutez vous-même les deux moitiés dans le test d’empreinte du navigateur, et lisez ce que les sites web savent de vous pour l’inventaire complet des lectures qu’une page peut prendre avant que vous ne changiez un seul réglage.
Un VPN change exactement une chose
Un VPN fait un travail mécanique, et il le fait bien : il enveloppe votre trafic dans un tunnel chiffré jusqu’à un serveur de sortie, et les sites que vous visitez voient ce serveur au lieu de vous. Votre adresse IP publique change. La ville et le pays attachés à cette adresse changent avec elle. Le réseau propriétaire de l’adresse — généralement une société d’hébergement ou un fournisseur VPN plutôt qu’une ligne domestique — change aussi. Si votre seule question était « depuis quelle adresse ce site croit-il que je viens ? », un VPN qui fonctionne y répond complètement, et rien dans cet article ne le contredit.
Tout le reste reste exactement où il était. Votre appareil ne bouge pas : sa taille d’écran, sa puce graphique, ses polices installées, son comportement de batterie, sa pile audio et les dizaines de petites lectures matérielles et logicielles qui se combinent en une empreinte de navigateur sont identiques avant et après l’ouverture du tunnel. Votre horloge ne bouge pas, donc votre fuseau horaire système continue d’indiquer l’endroit où vous êtes réellement. Les langues de votre navigateur et de votre système ne bougent pas. Vos cookies, vos comptes connectés et votre historique ne bougent pas. Le tunnel réachemine des paquets ; il ne redécore pas la machine au bout d’eux.
Cette division est la raison pour laquelle la plupart des « détections de VPN » sont mal nommées. Dans le cas courant, personne n’a détecté un protocole VPN, un tunnel ou une connexion chiffrée. Ils ont détecté un désaccord : l’IP revendique un pays pendant que l’horloge en revendique un autre, l’adresse appartient à un centre de données pendant que l’empreinte décrit un portable domestique, la liste de langues décrit un voyageur qui ne voyage jamais. Les sites notent l’écart entre la couche qui a bougé et celles qui n’ont pas bougé. Comprendre les fuites, alors, ne concerne pas vraiment le tunnel : il s’agit d’auditer tout ce que le tunnel a laissé derrière lui.
WebRTC : l’adresse qui contourne le tunnel
WebRTC est la technologie de navigateur derrière la voix, la vidéo et les données pair à pair dans la page. Pour connecter deux navigateurs directement, elle doit d’abord découvrir comment chacun peut être joint, et ce processus de découverte s’appelle ICE. En termes simples, votre navigateur rassemble des candidats — des adresses possibles de lui-même — et les propose à l’autre côté. Certains, il les apprend en se les demandant à lui-même, d’autres en posant à un serveur STUN une question simple : « de là où tu es, depuis quelle adresse t’appelé-je ? ». Les réponses reviennent sous différents types de candidats, et la différence entre eux est toute l’histoire de la fuite.
Un candidat hôte est une adresse que votre machine détient directement : historiquement, votre adresse de réseau local, comme l’adresse 192.168 que votre routeur vous a donnée. Un candidat réflexif serveur est l’adresse publique que le serveur STUN a observée — l’adresse que le monde extérieur voit. Quand WebRTC était nouveau, les pages pouvaient recueillir librement les deux, ce qui a produit deux fuites classiques : l’adresse LAN s’échappait même si elle était inutile au site et, pire, quand un navigateur interrogeait le serveur STUN en dehors ou à côté du tunnel VPN, le candidat réflexif révélait l’adresse publique réelle derrière le déguisement. Le VPN fonctionnait parfaitement pour le trafic web pendant qu’un canal latéral publiait silencieusement ce qu’il cachait.
Les navigateurs modernes ont beaucoup resserré cela. Chrome et Firefox remplacent désormais couramment les adresses hôtes par des noms mDNS aléatoires — un nom d’hôte .local rotatif au lieu de votre vraie IP LAN —, de sorte qu’une page voit un candidat qu’elle ne peut pas relier à votre routeur. Les implémentations diffèrent selon le navigateur et la version, certaines acheminent WebRTC correctement dans le tunnel, et les configurations d’entreprise ou modifiées par extensions diffèrent encore, voilà pourquoi deux tests honnêtes peuvent être en désaccord. Traitez les correctifs brutaux avec prudence : désactiver entièrement WebRTC arrête la fuite et casse aussi les appels légitimes, tandis que les extensions qui promettent de « falsifier » les candidats remplacent souvent une adresse plausible par une invraisemblable — et un candidat invraisemblable est lui-même une contradiction qu’un contrôle de déguisement peut noter.
DNS : le résolveur resté à la maison
Chaque nom que vous visitez doit être traduit en adresse avant que quoi que ce soit ne se connecte, et cette traduction est faite par un résolveur. Si votre navigateur ou votre système continue d’utiliser le résolveur assigné par votre fournisseur d’accès — joint directement, hors du tunnel —, chaque recherche fuit de deux façons à la fois. Les requêtes elles-mêmes vont chez votre FAI dans le motif en clair du trafic DNS ordinaire, révélant quels noms vous résolvez même si les pages qui suivent voyagent par le VPN. Et tout site capable d’observer quel résolveur a demandé en votre nom apprend où vous êtes approximativement, parce que les gens utilisent massivement un résolveur proche de leur emplacement réel.
Cette seconde fuite est plus subtile qu’elle n’y paraît, et le test standard pour elle est élégant. Une page de test fait rechercher à votre navigateur un nom qui n’a jamais existé — un long sous-domaine aléatoire sous un domaine que le testeur contrôle. Parce que le nom est unique, aucun cache ne le détient, donc votre résolveur est forcé de demander directement au serveur faisant autorité du testeur. Ce serveur voit alors l’adresse du résolveur et peut rapporter son réseau et son pays à la page. Des variantes utilisant les informations EDNS de sous-réseau client peuvent resserrer encore les choses, parce que certains résolveurs transmettent aimablement une partie de votre propre plage d’adresses avec la requête. Rien de tout cela n’exige de briser le tunnel ; cela exige seulement que vos recherches prennent une route différente de vos pages.
Les pièges sont pour la plupart de configuration, pas de malveillance. Les configurations en tunnel partagé envoient délibérément une partie du trafic — souvent le DNS inclus — hors du VPN pour la vitesse ou l’accès local. Les routeurs qui distribuent le résolveur du FAI à chaque appareil continuent de le faire pendant que le VPN fonctionne sur l’un d’eux. Les navigateurs avec leurs propres réglages de DNS chiffré peuvent contourner à la fois le système et le résolveur du fournisseur VPN, réparant une fuite tout en créant silencieusement un problème de cohérence si le nouveau résolveur se trouve dans un pays différent de la sortie. La règle de travail reflète le reste de cet article : le résolveur devrait vivre là où la sortie prétend vivre, et il devrait être joint à travers le tunnel, et la seule façon de savoir que les deux sont vrais est de le tester de l’extérieur.
Contradictions : le déguisement qui se dispute avec lui-même
Considérez quatre lectures qu’une page peut prendre en une seconde. Votre adresse IP vous place à Amsterdam. Votre fuseau horaire système indique UTC−5 et une ville des Amériques. Votre liste de langues de navigateur est menée par une langue rarement parlée aux Pays-Bas, sans néerlandais nulle part. Et votre agent utilisateur revendique un bureau Windows pendant que votre moteur de rendu graphique nomme une puce mobile. Aucune de ces valeurs ne prouve quoi que ce soit à elle seule — voyageurs, expatriés, machines virtuelles et configurations étranges produisent chacune d’elles innocemment chaque jour. Ensemble, elles se disputent. Un contrôle de déguisement est simplement une machine pour écouter cette dispute et lui assigner un poids.
Certaines contradictions se répètent si souvent qu’elles sont devenues la batterie standard. Fuseau horaire contre pays IP est la plus bruyante, parce que l’horloge est triviale à lire pour une page et que la plupart des utilisateurs de VPN ne pensent jamais à la changer. Langue contre pays IP est plus douce — les gens naviguent légitimement dans une seconde langue —, mais une absence complète de la langue du pays de sortie compte toujours. Agent utilisateur contre plateforme attrape la falsification grossière : une chaîne revendiquant un système d’exploitation pendant que la prise en charge tactile, la forme d’écran ou le moteur de rendu GPU en décrit un autre. ASN d’hébergement contre récit résidentiel est la plus silencieuse et souvent la plus décisive : l’adresse de sortie appartient à un réseau de centre de données, tandis que tout le reste de la session décrit un utilisateur domestique ordinaire qui, en réalité, arriverait d’un fournisseur haut débit.
Voilà pourquoi la cohérence, et non n’importe quelle valeur isolée, est ce que les sites notent réellement. Un système antifraude, un filtre d’abus ou un catalogue de streaming a rarement besoin de prouver qu’un VPN existe ; il a besoin d’un chiffre de risque, et les contradictions sont des preuves bon marché et robustes pour en alimenter un. Une session dont l’adresse, l’horloge, la langue, le résolveur et le matériel racontent la même histoire peut toujours être une session VPN — mais elle ne présente aucune dispute interne à noter contre elle, donc elle est traitée comme l’histoire qu’elle raconte. À l’inverse, un utilisateur sans VPN du tout peut être mal noté par pur désordre : un portable de travail imagé dans un autre pays, un navigateur laissé dans une langue étrangère, un résolveur d’entreprise sur un autre continent. Le contrôle mesure la cohérence. Il n’a jamais vraiment mesuré le tunnel.
Une liste pour paraître cohérent
Travaillez dans l’ordre où un contrôleur vous lit. Choisissez d’abord le pays de sortie, délibérément, et laissez tout le reste le suivre — la cohérence avec un lieu que vous avez choisi bat une sortie aléatoire habillée après coup. Réglez le fuseau horaire système pour qu’il corresponde à ce pays, pas seulement l’horloge du navigateur, parce que les pages lisent le fuseau système. Alignez la langue du navigateur : mettez la langue du pays de sortie en premier ou au moins présente dans la liste, et naviguez dedans quand vous le pouvez. Chaque étape supprime une dispute entre couches, et ensemble elles couvrent les contradictions que les sites contrôlent le plus.
Fermez ensuite les canaux latéraux. Gardez WebRTC dans le tunnel ou, si vous n’utilisez jamais d’appels dans le navigateur, complètement éteint — et revérifiez quel comportement votre navigateur a réellement au lieu de le supposer. Assurez-vous que le DNS se résout à travers le tunnel vers un résolveur qui correspond au récit de sortie, et préférez une sortie résidentielle quand l’histoire que vous présentez est résidentielle, parce qu’aucun réglage d’horloge ne répare un ASN de centre de données. Après chaque changement, relancez le test d’empreinte du navigateur et lisez-le comme le ferait un site : non en chassant un drapeau rouge, mais en demandant si la page entière raconte une seule histoire. Pour savoir pourquoi un tel test peut s’exécuter sans recueillir les lectures qu’il vous montre, voyez comment un test de confidentialité ne conserve aucune donnée.
Terminez par la réserve honnête, parce qu’une liste qui promet l’invisibilité vous ment. La cohérence supprime les contradictions ; elle ne supprime pas l’identité. Votre empreinte de navigateur — la combinaison de matériel, polices, graphiques et réglages restée immobile dans la première section — peut toujours distinguer votre appareil entre les visites et les adresses, et votre comportement, vos comptes et vos habitudes vous identifient plus fiablement qu’aucune lecture réseau ne l’a jamais fait. Un déguisement cohérent élève le coût de la détection occasionnelle et arrête le genre facile et automatisé. Face à un observateur déterminé qui peut observer le comportement dans le temps, ce n’a jamais été une garantie, et tout outil ou fournisseur qui vous en vend une devrait inspirer moins de confiance, pas plus.