PowerScan
FR

Comment fonctionnent les navigateurs antidétection : l'explication technique complète

Navigateurs antidetect · 11 min de lecture · par PowerOps

Photo : Unsplash

Surfaces d'empreinte, génération d'une identité cohérente, isolation du stockage sur disque, routage par profil, et les limites honnêtes de toute l'approche.

Un navigateur antidétection remplit quatre fonctions. Il stocke séparément les données de navigation de chaque profil, il contrôle l'identité d'appareil que chaque profil déclare, il achemine le trafic de chaque profil de façon indépendante, et il maintient la cohérence des trois au fil du temps. Cet article détaille comment chaque fonction est assurée, au niveau du mécanisme, et se termine par ce que l'approche ne peut pas faire.

Les surfaces d'empreinte

Commençons par ce qu'une page peut lire, car tout le reste en est la réponse. Un script sur n'importe quel site peut poser des questions au navigateur, et les réponses décrivent la machine. Les surfaces se regroupent naturellement.

SurfaceCe qu'une page lit
NavigatorNom et version du navigateur, plateforme, liste des langues, nombre de processeurs et mémoire déclarés, prise en charge du tactile
ÉcranLargeur, hauteur, zone de travail disponible, profondeur de couleur, rapport de pixels de l'appareil
CanvasLes pixels exacts produits en dessinant du texte et des formes hors écran, condensés en une valeur stable
WebGLLes chaînes de fabricant et de moteur de rendu graphique, ainsi que les empreintes de scènes rendues
AudioLa sortie d'un oscillateur passée dans le graphe de traitement audio, qui varie selon la pile
PolicesQuelles polices sont installées, déduit de mesures de texte
Fuseau horaire et horlogeLe fuseau et le décalage déclarés, comparés à l'origine du trafic
RéseauL'adresse elle-même, la vue de WebRTC sur les candidats de connexion, et la forme de la négociation TLS

Aucune ligne isolée n'identifie une machine. C'est la combinaison qui le fait, et c'est aussi là que les mensonges sont pris : des valeurs qui ne pourraient pas appartenir à une même machine réelle sont un signal plus fort que n'importe quelle valeur seule.

La collecte est peu coûteuse et silencieuse. Chaque valeur du tableau est accessible à n'importe quelle page via des API documentées, sans aucune demande d'autorisation, et la plupart arrivent dans la première seconde d'une visite. Quelle que soit votre position sur cette pratique, c'est un fait permanent du web moderne, et c'est la référence contre laquelle un navigateur antidétection est conçu.

Comment on génère une identité cohérente

L'approche naïve consiste à intercepter chaque question et à rendre la réponse aléatoire. Elle échoue pour une raison structurelle. Les réponses décrivent une seule machine, elles sont donc corrélées, et des réponses aléatoires indépendantes brisent les corrélations. Un user agent Windows accompagné de polices qui n'existent que sur macOS, une taille d'écran qu'aucun portable n'a jamais eue, une chaîne graphique qui n'a jamais coexisté avec la plateforme annoncée : chacune est une contradiction qu'un contrôleur teste à peu de frais.

Un navigateur antidétection qui fonctionne génère donc l'identité comme un ensemble. Il part d'une classe de machine réelle et courante et en dérive chaque valeur. La plateforme détermine la liste de polices plausible, les chaînes graphiques et la prise en charge du tactile. L'écran provient de tailles que cette classe de machine propose réellement. La langue et le fuseau horaire viennent de la région visée par le profil. Les valeurs s'accordent entre elles parce qu'elles ont été choisies ensemble, à partir d'une seule description d'une seule machine.

La seconde propriété compte tout autant : l'ensemble est stocké. Il est écrit dans le profil à sa création, et chaque session déclare les mêmes valeurs, car un appareil qui change d'une visite à l'autre décrit un matériel que personne ne possède. La stabilité, c'est l'essentiel de ce que « plausible » veut dire.

Isolation du stockage sur disque

La fonction de stockage est la moins glamour et la plus absolue. Chaque profil possède un répertoire, et tout ce qu'un navigateur persiste vit à l'intérieur : la base de cookies, Local Storage, IndexedDB, le cache HTTP, les enregistrements de service workers, l'état des extensions, l'historique et les identifiants enregistrés. Deux profils sont deux répertoires disjoints, et chaque navigateur en cours d'exécution est pointé vers le sien.

La disjonction complète est la propriété à vérifier, car une isolation partielle échoue en silence. Les cookies se séparent facilement. Le cache peut identifier un navigateur qui revient grâce aux ressources qu'il a conservées. Les service workers peuvent détenir des identifiants et continuer à s'exécuter entre les visites. IndexedDB est l'endroit où les applications modernes gardent les enregistrements auxquels elles font réellement confiance. Une isolation qui couvre les stockages célèbres et en partage d'autres n'a isolé que la partie visible du problème.

La persistance est l'autre moitié. Les sessions accumulent de la valeur : vérifications de sécurité franchies, historique de connexion établi, profil d'un visiteur récurrent. Un profil conserve son répertoire d'une session à l'autre, et c'est ce qui rend le travail sur les comptes possible. L'écriture à la fermeture rend le répertoire durable, c'est pourquoi tuer le processus d'un profil en pleine session peut coûter la session qu'il vient d'établir.

Routage réseau

Chaque profil porte sa propre route, appliquée au démarrage de son navigateur, de sorte que le trafic sort par le proxy de ce profil sans toucher aux paramètres système ni à la route d'aucun autre profil.

La route est aussi le composant qu'il vaut le plus la peine de vérifier indépendamment, parce qu'elle s'achète auprès d'un tiers. Tester un point de terminaison avant de l'attribuer, et relire l'adresse observée plutôt que l'adresse annoncée, permet d'attraper une défaillance quand elle n'est encore qu'un problème de configuration et pas un problème de compte.

Ce que le navigateur lui-même modifie

Un outil peut modifier à deux endroits les réponses qu'une page reçoit, et la différence entre les deux est la bifurcation la plus technique de ce sujet.

ApprocheFonctionnementLa faiblesse
Injection de scriptUne extension ou un script injecté remplace les fonctions qu'une page appelle, de sorte que les lectures de canvas et les consultations de navigator renvoient des valeurs substituéesLes remplacements sont eux-mêmes visibles. Des fonctions modifiées peuvent être reconnues comme telles, et toute surface oubliée par l'injecteur répond encore avec la vraie valeur
Dans le code du navigateur lui-mêmeL'implémentation du navigateur répond avec les valeurs stockées du profil, dans les chemins de code où les vraies valeurs sont produitesBeaucoup plus de travail à construire et à maintenir, ce qui distingue les outils conçus à cet effet des extensions

L'injection est le point de départ de cette catégorie, et son plafond est bien connu : une page peut vérifier si les fonctions natives ont encore l'air natives, et elle peut atteindre la même surface par un chemin que l'injection n'a pas couvert. Les navigateurs antidétection conçus à cet effet effectuent donc les modifications à l'intérieur du navigateur lui-même, de sorte que l'identité stockée est ce que l'implémentation déclare par chaque chemin qui la lit.

Ce que fait réellement l'ouverture d'un profil

  1. L'identité stockée est chargée : un ensemble cohérent de valeurs d'appareil, le même que la fois précédente.
  2. Le navigateur démarre sur le répertoire propre du profil, de sorte que chaque stockage persistant est celui du profil.
  3. La route est appliquée : le proxy, la résolution de noms à travers lui, WebRTC contraint à y passer.
  4. La session s'exécute et accumule de l'état dans le répertoire.
  5. À la fermeture, l'état est écrit, de sorte que l'ouverture suivante reprend le même appareil, le même stockage et la même route.

Chaque élément de cette liste est vérifiable de l'extérieur. Ouvrez deux fois une page de test d'empreinte et comparez les valeurs d'une ouverture à l'autre. Regardez le répertoire du profil sur le disque. Relisez l'adresse observée. Un outil de cette catégorie devrait inviter à cette vérification, car le mécanisme est le produit.

Les limites honnêtes

L'approche a ses bords, et les connaître fait partie de son usage compétent.

Lisez les limites comme une définition plutôt que comme une déception. Un navigateur antidétection est un instrument de cohérence : un stockage séparé, une identité stable et plausible, une route concordante, le tout maintenu par profil et répété à l'identique à chaque ouverture. C'est tout le mécanisme, et tout le reste de ce qui s'écrit sur la catégorie n'en est qu'une variation.

Tous les articles · Lancer l'analyse