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

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.
| Surface | Ce qu'une page lit |
|---|---|
| Navigator | Nom et version du navigateur, plateforme, liste des langues, nombre de processeurs et mémoire déclarés, prise en charge du tactile |
| Écran | Largeur, hauteur, zone de travail disponible, profondeur de couleur, rapport de pixels de l'appareil |
| Canvas | Les pixels exacts produits en dessinant du texte et des formes hors écran, condensés en une valeur stable |
| WebGL | Les chaînes de fabricant et de moteur de rendu graphique, ainsi que les empreintes de scènes rendues |
| Audio | La sortie d'un oscillateur passée dans le graphe de traitement audio, qui varie selon la pile |
| Polices | Quelles polices sont installées, déduit de mesures de texte |
| Fuseau horaire et horloge | Le fuseau et le décalage déclarés, comparés à l'origine du trafic |
| Réseau | L'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.
- Le proxy s'attache par profil et non par machine. Les navigateurs ordinaires utilisent le proxy du système. Ici, chaque profil en cours d'exécution se connecte par son propre point de terminaison.
- La résolution de noms passe aussi par la route, car une requête qui arrive d'un pays alors que ses résolutions arrivent d'un autre est une contradiction au niveau de la couche réseau.
- WebRTC est contraint de concorder avec la route. Laissé à lui-même, il peut exposer des candidats de connexion que le proxy n'a jamais touchés.
- Le fuseau horaire et la langue sont alignés sur le pays de la route, car l'adresse est la seule valeur qui ne peut pas être générée : le reste du récit doit donc s'y accorder.
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.
| Approche | Fonctionnement | La faiblesse |
|---|---|---|
| Injection de script | Une 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ées | Les 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ême | L'implémentation du navigateur répond avec les valeurs stockées du profil, dans les chemins de code où les vraies valeurs sont produites | Beaucoup 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
- L'identité stockée est chargée : un ensemble cohérent de valeurs d'appareil, le même que la fois précédente.
- Le navigateur démarre sur le répertoire propre du profil, de sorte que chaque stockage persistant est celui du profil.
- La route est appliquée : le proxy, la résolution de noms à travers lui, WebRTC contraint à y passer.
- La session s'exécute et accumule de l'état dans le répertoire.
- À 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.
- Elle ne peut pas rendre un navigateur impossible à identifier, et personne ne peut de toute façon mesurer une telle affirmation. L'objectif réaliste est un profil qui se lit comme une machine ordinaire, cohérente en interne, et qui reste stable.
- Elle ne peut pas corriger les contradictions que vous introduisez. Une route dans un pays avec un fuseau horaire dans un autre est une erreur de configuration, et l'outil peut seulement faire en sorte que la bonne configuration soit la plus facile.
- Elle ne couvre pas le comportement. Le rythme, le volume et la cadence sont lus en même temps que l'environnement, et une flotte qui agit à l'unisson s'identifie elle-même, aussi propre que soit chaque environnement.
- Elle ne couvre pas l'identité déclarée. Des éléments de récupération partagés, des moyens de paiement partagés et des textes réutilisés relient les comptes par les propres enregistrements de la plateforme, bien au-dessus du navigateur.
- Elle ne change pas les règles des plateformes. L'isolation sépare des environnements légitimes. Ce qu'une plateforme autorise relève de la plateforme, et aucun résultat n'est promis ici sur une plateforme que nous ne contrôlons pas.
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.

