Qu'un environnement d'empreintes soit « réel » ne dépend pas du score donné par un seul site de détection, mais du fait que les signaux réseau, navigateur, système, matériel et autorisations soient cohérents entre eux et restent stables au fil des redémarrages. Ce guide propose des méthodes de vérification par couches, un tableau des anomalies et des étapes concrètes dans un navigateur anti-empreinte.
Pour savoir si l'environnement d'un navigateur anti-empreinte est réel, on ne peut pas se contenter de regarder si un site de détection donne 90 ou 100 points. Un critère plus utile est le suivant : il n'y a aucune contradiction évidente entre les signaux réseau, navigateur, système d'exploitation, matériel et autorisations ; le même environnement reste stable après plusieurs lancements ; et les fonctions dont le site métier a besoin fonctionnent normalement.
Qu'un outil de détection affiche du vert ne signifie pas que chaque plateforme acceptera cet environnement ; du rouge ne veut pas forcément dire qu'il est inutilisable. Les sites de détection utilisent leurs propres règles, bases de données et modèles de notation. Vous devez donc juger en fonction des champs précis, du site cible et de votre scénario métier réel.
Ce qui rend un environnement de navigateur « réel »
Un environnement raisonnable remplit généralement quatre conditions :
- Cohérence interne : le moteur du navigateur, le User-Agent, le système d'exploitation, le GPU, la langue, le fuseau horaire et la région réseau s'expliquent mutuellement ;
- Stabilité dans le temps : les paramètres clés ne changent pas de façon erratique après un redémarrage ;
- Fonctionnalité : les capacités requises comme la connexion, les téléversements, les appels vidéo, les paiements ou les tableaux de bord publicitaires fonctionnent normalement ;
- Origine traçable : l'équipe sait à quel compte, proxy et responsable cet environnement est rattaché, et les changements de configuration sont enregistrés.
« Correspondre sur tous les paramètres à l'ordinateur physique » n'est pas une exigence. Les navigateurs réduisent délibérément la précision des données pour la confidentialité. Par exemple, la note de MDN sur deviceMemory précise que la propriété renvoie seulement une valeur approximative arrondie et bornée ; hardwareConcurrency peut aussi être inférieur au nombre de processeurs logiques de l'appareil. Une valeur détectée n'équivaut donc pas à un rapport d'audit matériel.
Établissez une base de référence avant de tester
Ne modifiez pas sans cesse les paramètres de l'environnement d'un compte déjà en production. Créez d'abord un environnement de test qui n'est connecté à aucun compte métier, et notez :
- la version du navigateur anti-empreinte et le moteur Chromium ;
- le système d'exploitation, le User-Agent et la résolution ;
- le type de proxy, l'IP de sortie, le pays et la ville ;
- les réglages de langue, de fuseau horaire et de géolocalisation ;
- les politiques WebRTC, DNS, Canvas, WebGL et de polices ;
- les extensions installées et les paramètres de lancement.
Recoupez les résultats avec deux ou trois outils de détection en même temps et conservez des captures ou des exports. Ensuite, ne changez qu'une seule variable à la fois et comparez avec la référence. C'est ainsi que vous saurez si l'anomalie vient du proxy, de la configuration du navigateur, d'une extension ou du site de détection lui-même.
Couche 1 : vérifiez la sortie réseau
Confirmez d'abord que l'IP publique affichée par les requêtes HTTP est bien l'IP du proxy lié à l'environnement, puis vérifiez DNS, WebRTC et IPv6.
IP et DNS
Notez l'IP de sortie, l'ASN, le FAI, le pays, la ville et le fuseau horaire. Les bases de données peuvent diverger sur la ville ou le type de proxy ; un conflit au niveau du pays ou de l'ASN mérite plus d'attention qu'un écart sur une seule ville.
Si les requêtes DNS passent par le réseau local alors que le trafic des pages passe par le proxy, le site de détection peut afficher une région DNS différente de la région de sortie. Vérifiez d'abord si le proxy prend en charge le DNS distant, si le navigateur ou le système a ses propres réglages DNS et si des extensions réécrivent les requêtes réseau.
WebRTC
Pour établir des connexions pair à pair, WebRTC collecte des adresses candidates ICE. RFC 8828 explique comment cela peut exposer des adresses publiques ou privées supplémentaires, ou contourner le proxy pour révéler la véritable IP publique lorsque le proxy autorise les connexions directes.
Détecter une adresse privée ne signifie pas forcément que votre IP publique réelle fuit ; des valeurs comme 192.168.x.x ou 10.x.x.x ne sont que des adresses LAN. Ce qui compte, c'est de savoir si un candidat WebRTC révèle une autre IP publique sans rapport avec la sortie du proxy.
Ne désactivez pas WebRTC mécaniquement. La visioconférence, la voix et la communication en temps réel peuvent en dépendre. Choisissez selon votre métier : routez WebRTC via le proxy par défaut, utilisez un proxy compatible UDP ou un serveur TURN, limitez l'exposition des adresses locales, ou désactivez-le si vous n'avez pas besoin de communication en temps réel. Après chaque changement, testez à la fois le résultat de confidentialité et la fonction métier.
Géolocalisation
Les coordonnées de l'API de géolocalisation du navigateur peuvent provenir du GPS, du Wi-Fi, de l'IP, des réseaux mobiles ou d'une saisie utilisateur. La spécification W3C de géolocalisation indique clairement que l'API ne garantit pas la position réelle de l'appareil.
Un petit écart entre la ville de l'IP et les coordonnées n'est donc pas nécessairement une anomalie. Ce qui importe davantage, c'est l'existence de conflits inexpliqués entre pays, fuseau horaire, langue et région métier, ainsi que l'octroi ou non de la permission de localisation au site.
Couche 2 : vérifiez le navigateur et le système d'exploitation
Concentrez-vous sur la comparaison de ces combinaisons :
- la version du moteur Chromium et la version majeure du navigateur dans le User-Agent ;
- le système d'exploitation du User-Agent par rapport à
platform, aux UA Client Hints et au jeu de polices ; - la langue de l'interface,
Accept-Language, le fuseau horaire et le format régional ; - la résolution, la densité de pixels, la taille de fenêtre et la capacité tactile ;
- l'identifiant mobile par rapport à la taille de l'écran, au type de pointeur et aux caractéristiques matérielles.
Une anomalie courante consiste à modifier le User-Agent à la main sans synchroniser le moteur ni les client hints, ou à écrire un environnement macOS qui conserve encore des polices, des GPU et des traits d'interaction manifestement Windows.
L'approche la plus fiable n'est pas d'inventer champ par champ, mais d'utiliser un préréglage système validé pour que le moteur, le UA, la plateforme et les paramètres associés se mettent à jour en un seul groupe. Après une mise à jour du moteur, régénérez ou vérifiez le User-Agent plutôt que de verrouiller longtemps une version manifestement obsolète.
Couche 3 : vérifiez les signaux matériels et de rendu
Canvas, WebGL, AudioContext, les polices, le CPU, la mémoire, les périphériques média et les ClientRects peuvent participer à l'identification de l'environnement. Lors de la vérification, concentrez-vous sur le caractère raisonnable et stable de la combinaison, pas sur la poursuite d'un hash unique.
WebGL et GPU
Si un environnement prétend être un certain type de système d'exploitation ou d'appareil, mais que le fournisseur WebGL, le moteur de rendu et l'état d'accélération matérielle ne peuvent pas plausiblement coexister, revenez au préréglage système. Ne changez pas le nom du fournisseur pour une autre marque juste pour réussir un site de détection ; de mauvaises combinaisons créent généralement plus de contradictions.
CPU et mémoire
hardwareConcurrency représente le nombre de processeurs logiques que le navigateur peut utiliser, et le navigateur peut signaler un nombre inférieur ; deviceMemory est une valeur approximative arrondie. Voir 4 cœurs ou 8 Go ne permet pas d'en déduire le matériel réel, et il ne faut pas modifier la valeur immédiatement simplement parce qu'elle diffère de l'ordinateur physique.
Ce qu'il faut vérifier : la valeur est-elle dans la plage prise en charge par le navigateur, contredit-elle nettement le type d'appareil mobile ou de bureau, et reste-t-elle raisonnablement stable après les redémarrages du même environnement ?
Canvas et Audio
Les politiques de confidentialité ou de bruit peuvent faire produire à un même appareil physique des résultats différents selon l'environnement. Mais si le hash du même environnement change à chaque rechargement, la randomisation est peut-être trop forte et la stabilité des sessions longues se dégrade.
Testez le même environnement sur des rechargements successifs, après fermeture puis réouverture, et lors de lancements le lendemain. Si la politique est conçue comme un « bruit stable au niveau de l'environnement », le même environnement devrait montrer une continuité explicable.
Couche 4 : vérifiez le stockage, les extensions et les paramètres de lancement
L'isolation des environnements ne concerne pas seulement les paramètres d'empreinte ; elle couvre aussi Cookie, Local Storage, IndexedDB, le cache, les Service Workers, les extensions et l'historique de téléchargements.
Connectez-vous à des sites de test différents depuis deux environnements pour confirmer que la Cookie et le stockage local ne fuient pas entre environnements ; vérifiez ensuite que les données se comportent comme prévu après avoir vidé le cache, importé une Cookie ou restauré un environnement.
Les extensions sont une source fréquente d'interférence. Elles peuvent modifier le User-Agent, le proxy, les en-têtes de requête, Canvas, WebRTC ou les scripts de la page. En cas d'anomalie, désactivez d'abord sur une copie de test toutes les extensions non essentielles, puis activez-les une par une. Les paramètres de lancement personnalisés doivent aussi être écartés un par un pour éviter que plusieurs outils réécrivent le même signal en même temps.
Anomalies fréquentes et solutions
| Anomalie | Cause possible | Correctif recommandé |
|---|---|---|
| Le pays de l'IP ne correspond pas au fuseau horaire | Fuseau fixé à une valeur locale ou région du proxy mal identifiée | Vérifiez d'abord le pays du proxy, puis faites suivre au fuseau l'IP ou correspondez à la région métier réelle |
| La sortie HTTP diffère de l'IP publique WebRTC | Connexion directe WebRTC, proxy sans UDP ou routage divisé | Ajustez la politique de routage WebRTC, puis testez UDP/TURN et les fonctions métier |
| La version du UA ne correspond pas au moteur | UA manuel obsolète ou moteur mis à jour sans synchronisation | Utilisez un préréglage adapté, régénérez le UA et revérifiez les UA Client Hints |
| Identifiant macOS avec polices/GPU Windows | Seuls des champs de surface ont été modifiés | Revenez au préréglage système et évitez les combinaisons cross-systèmes faites à la main |
| Canvas change à chaque rechargement | Randomisation du bruit trop forte ou conflit d'extension | Fixez une politique au niveau de l'environnement, désactivez les extensions en conflit et retestez |
| CPU ou mémoire marqués en rouge | Le site de détection a interprété les valeurs arrondies comme du matériel physique | Vérifiez d'abord la sémantique de l'API du navigateur, puis jugez s'il existe un vrai conflit de combinaison |
| Deux sites de détection se contredisent | Bases de données, règles et cadence de mise à jour différentes | Comparez les champs bruts, pas seulement le score total ; le test métier cible fait foi |
| Des champs clés changent après un redémarrage | Configuration aléatoire non conservée ou environnement reconstruit | Vérifiez la politique d'enregistrement, de synchronisation et d'empreinte aléatoire et fixez des paramètres au niveau de l'environnement |
Appliquez les vérifications par couches dans PurpleMark
Si les conclusions précédentes semblent toutes normales mais qu'une plateforme signale toujours une anomalie, vous pouvez transformer le dépannage en étapes concrètes sur l'environnement correspondant dans PurpleMark.
La première étape consiste à confirmer la sortie. Dans la gestion des proxys de PurpleMark, regardez quel proxy est lié à l'environnement actuel et confirmez son IP de sortie, sa région et son fuseau horaire ; comparez-la avec l'IP publique signalée par le site de détection, puis vérifiez si WebRTC révèle une autre adresse publique indépendante de la sortie.
La deuxième étape consiste à vérifier les paramètres comme un groupe plutôt que de les modifier un par un. Lors de la création d'un environnement dans PurpleMark, vous pouvez définir d'un coup le système d'exploitation, le moteur Chromium, le User-Agent, la langue, le fuseau horaire et la géolocalisation, et configurer des paramètres d'empreinte comme WebGL, WebRTC, CPU, mémoire et Canvas. Faire suivre au moteur, au UA, au système d'exploitation et aux polices un même préréglage évite des résultats contradictoires comme des « polices Windows avec un identifiant macOS ». Avant d'enregistrer, consultez l'aperçu de l'environnement pour confirmer que les champs forment une combinaison raisonnable.
La troisième étape consiste à expérimenter en toute sécurité. Copiez l'environnement problématique comme réplique de test au lieu de modifier sans cesse l'environnement exécuté en production. Ajustez une seule variable à la fois, par exemple d'abord le proxy ou le routage WebRTC, puis la politique de bruit Canvas ; enregistrez le résultat de détection après chaque changement, redémarrez deux fois pour confirmer la stabilité, puis seulement exécutez le flux métier réel du site cible. Si vous suspectez une extension, activez les extensions une par une sur la réplique.
Ces étapes vous aident à vérifier la sortie, les combinaisons de paramètres et la stabilité dans une même configuration, afin de savoir plus facilement de quelle couche provient un résultat de détection. À noter : PurpleMark garantit la cohérence des paramètres et préserve un environnement reproductible ; la conclusion finale de détection dépend toujours de la qualité du proxy, de la version du navigateur, des extensions, du routage réseau et de la propre logique d'évaluation du site cible.
Ne créez pas de nouvelles anomalies pour obtenir un score parfait
Les scores des sites de détection sont utiles pour trouver des indices, mais pas comme objectif unique. Changer souvent de UA, de GPU, de Canvas, de polices et de fuseau horaire peut rendre l'environnement plus instable ; copier les « paramètres parfaits » de quelqu'un d'autre ne copie pas son réseau, son matériel ni son historique d'utilisation.
La bonne approche consiste à partir des champs bruts, à corriger d'abord les contradictions évidentes, puis à vérifier la stabilité à long terme et les fonctions métier. Un environnement qui n'a pas le score le plus élevé mais garde une combinaison raisonnable et stable est généralement plus facile à gérer qu'un « environnement parfait » qui change à chaque test.


