Quels signaux survivent aux mises à jour des navigateurs ? Une analyse de stabilité
Nous avons analysé la stabilité des signaux à travers 50 mises à jour de Chrome, Firefox et Safari. Voici les signaux d'empreinte les plus et les moins stables.
Les mises à jour des navigateurs sont l'ennemi naturel de l'empreinte numérique d'appareil. Toutes les 4 à 6 semaines, Chrome, Firefox et Safari déploient de nouvelles versions qui peuvent altérer les valeurs des signaux — modifier les chaînes user-agent, changer le comportement de rendu, ajouter ou retirer des API. Comme le note le guide W3C sur l'empreinte numérique, les navigateurs travaillent activement à limiter la surface exploitable pour l'empreinte. Pour les systèmes d'empreinte qui traitent tous les signaux de manière égale, chaque mise à jour est une rupture d'identité potentielle pour des millions de visiteurs.
Nous avons mené une analyse de stabilité complète à travers 50 mises à jour de navigateurs pour répondre à la question fondamentale : sur quels signaux pouvez-vous compter, et lesquels vous trahiront ?
Méthodologie
Nous avons instrumenté 200 appareils physiques répartis sur 5 systèmes d'exploitation (Windows 10, Windows 11, macOS Ventura, macOS Sonoma, Ubuntu 22.04) et 3 navigateurs (Chrome, Firefox, Safari). Chaque appareil a exécuté une collecte automatisée de signaux quotidiennement pendant 14 mois, couvrant 50 mises à jour majeures de versions de navigateurs : 24 versions de Chrome, 16 de Firefox et 10 de Safari.
Pour chaque signal, nous avons suivi : la fréquence à laquelle la valeur changeait, si le changement était corrélé à une mise à jour du navigateur ou à un facteur externe (mise à jour de pilote, correctif d'OS), et l'ampleur du changement (remplacement complet de la valeur ou variation mineure).
Les niveaux de stabilité
Niveau 1 : indestructible (stabilité ≥99.5%)
Ces signaux ne changeaient que lorsque le matériel physique changeait ou que les pilotes étaient mis à jour — jamais du fait des seules mises à jour de navigateurs.
Concurrence matérielle (navigator.hardwareConcurrency) : 99.97% stable. N'a changé que sur 1 appareil ayant reçu une mise à jour du BIOS affectant l'hyperthreading. Mémoire de l'appareil (navigator.deviceMemory) : 99.98% stable. Un appareil est passé de 8GB à 16GB pendant l'étude. Résolution d'écran et profondeur de couleur : 99.92% stable. Les changements étaient corrélés à des remplacements de moniteur et à des événements de station d'accueil. Taille maximale de texture WebGL : 99.99% stable. Aucun changement lié au navigateur. A changé une fois sur un appareil ayant reçu une mise à jour de pilote NVIDIA. Fréquence d'échantillonnage audio : 100% stable. Aucun changement sur l'ensemble des 200 appareils et des 50 mises à jour. C'est le signal le plus stable que nous suivions.
Niveau 2 : majoritairement stable (95-99.5%)
Ces signaux changent occasionnellement avec les mises à jour de navigateurs mais restent stables sur la plupart des versions.
Empreinte Canvas 2D : 97.8% stable. Des changements sont survenus sur Chrome 118 (mise à jour du moteur de rendu des polices), Chrome 122 (changement de l'anticrénelage sous-pixel) et Firefox 121 (mise à jour de la mise en forme du texte). Chaque changement a affecté simultanément tous les appareils sur ce navigateur — un motif détectable que nous gérons avec une correspondance tenant compte de la version du navigateur. Chaîne de rendu WebGL : 98.1% stable. Chrome reformate occasionnellement la chaîne d'enveloppe ANGLE. Les informations sous-jacentes du GPU restent inchangées, mais la représentation en chaîne se décale. Nous analysons le modèle de GPU à partir de la chaîne plutôt que de hacher la chaîne directement. Liste de polices : 96.4% stable. Les mises à jour d'OS ajoutent ou retirent occasionnellement des polices système. Les mises à jour de navigateurs affectent rarement l'énumération des polices, mais Chrome 120 a changé l'ordre dans lequel les polices sont rapportées, ce qui a cassé l'empreinte de polices basée sur le hachage. Nous utilisons une comparaison ensembliste (similarité d'ensembles) plutôt qu'un hachage ordonné.
Niveau 3 : stabilité modérée (80-95%)
Ces signaux changent à une fréquence notable mais fournissent tout de même une valeur d'identification utile entre les changements.
Plugins installés : 89.2% stable. La réduction continue du tableau de plugins de Chrome (navigator.plugins) a entièrement supprimé la visibilité des plugins dans certains contextes. Firefox a maintenu l'énumération des plugins. Safari l'a restreinte à un ensemble standard. Détection de fonctionnalités CSS : 91.7% stable. De nouvelles fonctionnalités CSS sont ajoutées à chaque version de navigateur, ce qui change l'ensemble des fonctionnalités détectées par notre sondage CSS. Nous pondérons les nouvelles fonctionnalités plus faiblement que les établies pour en réduire l'impact. Prise en charge tactile : 93.1% stable. Les navigateurs de bureau changent occasionnellement leur prise en charge tactile rapportée quand Chrome ajuste sa détection de l'émulation d'appareil.
Niveau 4 : volatil (<80%)
Ces signaux changent fréquemment et ne devraient jamais être des ancres d'identification primaires.
Chaîne User Agent : 42.3% stable. L'initiative de réduction de l'User-Agent de Chrome a changé le format de la chaîne à plusieurs reprises. Firefox met à jour le numéro de version à chaque édition. Safari modifie régulièrement la chaîne de version WebKit. C'était autrefois la colonne vertébrale des systèmes d'empreinte simples — ces systèmes sont désormais cassés. Type de connexion (navigator.connection) : 68.4% stable. Change avec les changements de réseau (WiFi vers cellulaire, différents réseaux WiFi). API Battery : 71.2% stable. Varie selon l'état de charge et la disponibilité de l'API dans le navigateur. Chrome a restreint l'accès à l'API Battery dans certains contextes. Surface d'écran disponible : 76.8% stable. Change selon la visibilité de la barre des tâches, la gestion des fenêtres et les ajustements de mise à l'échelle de l'affichage.
Comparaison inter-navigateurs
Chrome est le navigateur le plus volatil pour la stabilité de l'empreinte. Google travaille activement à réduire la capacité d'empreinte, ce qui signifie que les mises à jour de Chrome cassent plus de signaux que celles de Firefox ou Safari. Sur notre période d'étude :
Chrome a provoqué des changements de signaux dans 3.2% des sessions de collecte. Firefox a provoqué des changements de signaux dans 1.8% des sessions de collecte. Safari a provoqué des changements de signaux dans 1.1% des sessions de collecte.
La plus faible volatilité de Safari s'explique en partie parce qu'Apple publie moins de versions par an et en partie parce que les contre-mesures d'empreinte de Safari (Intelligent Tracking Prevention) opèrent au niveau réseau plutôt qu'en modifiant les valeurs de retour des API.
Recommandations pratiques
Sur la base de cette analyse, nous formulons cinq recommandations pour les systèmes d'empreinte en production :
N'utilisez jamais l'user-agent comme ancre d'identification. C'est le signal distinctif le moins stable. Utilisez-le uniquement pour la détection du navigateur et le score de confiance de niveau 3.
Séparez les signaux matériels des signaux logiciels. Les signaux matériels (GPU, écran, audio) sont 40x plus stables que les signaux logiciels (user agent, plugins, fonctionnalités CSS). Pondérez-les en conséquence.
Utilisez une comparaison ensembliste pour les signaux énumérables. Les listes de polices, les listes de plugins et les résultats de détection de fonctionnalités devraient être comparés à l'aide de la similarité d'ensembles ou de métriques de distance ensembliste similaires, pas d'un hachage ordonné. Les changements d'ordre sont courants ; les changements de contenu sont rares.
Implémentez une correspondance tenant compte de la version du navigateur. Quand Chrome 118 change le rendu canvas pour tous les utilisateurs de Chrome simultanément, votre système devrait reconnaître qu'il s'agit d'une mise à jour du navigateur, pas d'une rupture d'identité de masse. Suivez les versions des navigateurs et appliquez des tolérances de correspondance spécifiques à chaque version.
Surveillez la stabilité des signaux en continu. Nos pourcentages de stabilité reposent sur des données historiques. De futures mises à jour de navigateurs peuvent changer le profil de stabilité de n'importe quel signal. Nous menons une surveillance continue et ajustons automatiquement les poids des signaux lorsque la stabilité change.
Impact sur tracio.ai
Notre architecture d'identification multi-niveaux V3 reflète directement cette analyse de stabilité. Les signaux de niveau 1 (matériels) portent un poids de 60%. Les signaux de niveau 2 (rendu, polices) portent un poids de 30%. Les signaux de niveau 3 (métadonnées du navigateur, connexion) portent un poids de 10%. Cette pondération garantit que les signaux les plus stables pilotent l'identification, tandis que les signaux volatils contribuent au score de confiance sans provoquer de ruptures d'identité.
Le résultat : 99.5% de stabilité d'identification sur 50 mises à jour de navigateurs, contre 69% pour les systèmes utilisant une empreinte plate basée sur le hachage. La différence ne tient pas à une astuce algorithmique — c'est une analyse empirique des signaux appliquée à des décisions d'architecture.