Sans cookies ne veut pas dire anonyme
Vider ses cookies donnait l’impression de repartir de zéro. Ce n’est pas le cas. Le tracking moderne s’appuie de plus en plus sur la mesure (le fingerprinting) et sur des canaux annexes : caches et protocoles auxquels personne ne pense. Pour rendre cela concret, j’ai testé mon propre navigateur avec l’outil Cover Your Tracks de l’EFF. Résultat : une empreinte unique parmi 303 650 navigateurs testés sur 45 jours, avec au moins 18,21 bits d’information identifiante.
L’article se découpe en deux parties. La première est un catalogue pratique des signaux qui permettent de suivre, ou au moins de relier, un navigateur et un appareil. La seconde recense des cas réels documentés, en publicité, en prévention de la fraude et en détection de bots.
Partie 1 : toute la surface technique du tracking navigateur
Le modèle mental : stockage, mesure, réseau
Pour s’y retrouver, classons les signaux en trois familles :
- La persistance par stockage : cookies et stockages « type cookie » qui conservent un identifiant.
- Le fingerprinting par mesure : signaux issus du comportement de l’appareil quand on lui demande d’afficher, de calculer ou de déclarer ses capacités.
- Le fingerprinting réseau et protocole : signaux issus de la façon dont le client négocie et parle sur les protocoles réseau (TLS, HTTP/2, QUIC/HTTP/3).
Point clé : le fingerprinting n’identifie pas une personne à lui seul. Il crée un identifiant stable qui devient puissant dès qu’il touche une connexion, un paiement, un clic d’e-mail ou tout événement rattaché à un compte.
Les en-têtes web (aucun JavaScript nécessaire)
Ils partent avec chaque requête (certains seulement s’ils sont activés ou demandés) et arrivent aux trackers sans effort.
- User-Agent : famille de navigateur, moteur de rendu, OS et souvent version détaillée. Il réduit fortement la population, et même quand l’UA est réduit, d’autres signaux compensent. On peut le falsifier, mais une falsification incohérente vous rend plus unique.
- Accept, Accept-Encoding, Accept-Language : types de contenu, formats de compression (gzip, br, zstd) et langues préférées. Faible entropie seul, mais très stables dans le temps. La force vient de l’empilement, et ils servent à repérer les outils d’automatisation qui « parlent faux ».
- Do Not Track et Global Privacy Control (Sec-GPC) : DNT est déprécié (Safari l’a retiré), son successeur est l’en-tête Sec-GPC (MDN : DNT). Paradoxalement, comme il est rare dans certaines populations, il peut ajouter de l’entropie. WebKit l’a retiré parce qu’il « était utilisé comme vecteur de fingerprinting » (WebKit tracking prevention).
Heure, langue et géométrie de l’écran
Fuseau horaire et langue servent à inférer la géographie et à contrôler la cohérence (fuseau, IP, langue). Taille d’écran et de fenêtre, Device Pixel Ratio, zoom : très discriminants mais fragiles, et les dimensions bizarres trahissent les environnements headless.
Polices installées
Un site déduit les polices présentes en affichant du texte dans de nombreuses polices candidates et en mesurant les écarts de mise en page. Les jeux de polices peuvent être très uniques, surtout avec des polices de niche (outils de design, polices de marque, packs de langues). Les postes créatifs sont souvent extrêmement uniques. Pour un profil de navigation quotidien à faible entropie, gardez des polices banales et séparez la navigation « créative » de la navigation sensible.
Canvas, WebGL, WebGPU, audio
- Canvas (2D) : un site dessine formes et texte dans un canvas invisible, relit les pixels et en calcule un hash. Le résultat dépend de l’OS, de la rastérisation des polices, du GPU, des pilotes et du navigateur. Il sert à relier des sessions quand les cookies sont bloqués, et à détecter l’automatisation. Certains navigateurs orientés vie privée randomisent ou standardisent la sortie.
- WebGL : même principe avec le rendu 3D, qui ajoute les caractéristiques du GPU. L’entropie est souvent plus riche que le canvas seul. Les chaînes vendor et renderer exposent le GPU. Désactiver WebGL casse cartes et 3D : mieux vaut un profil durci qui normalise plutôt que tout couper.
- WebGPU : nouvelle surface GPU. Plus de capacités signifie plus de traits mesurables, sauf si les navigateurs réduisent l’exposition. Les stratégies de mitigation varient encore.
- Audio (AudioContext) : un script génère un signal audio en interne, le traite et hache le résultat. Il ne s’agit pas d’enregistrer le micro, mais du comportement du calcul interne (matériel, pilotes, virgule flottante). Un VPN ou la navigation privée n’y changent rien : ce n’est ni du stockage ni une identité réseau.
Matériel, tactile, cookies
Plateforme, nombre de cœurs CPU, mémoire, points tactiles, cookies activés ou non : chacun est faible seul, mais ensemble ils servent à classer l’appareil et à repérer l’automatisation qui déclare des valeurs irréalistes.
Stockages « supercookies »
Même cookies effacés, d’autres stockages persistent : localStorage, sessionStorage, indexedDB et des mécanismes plus anciens selon les environnements. Un tracker y range des identifiants que l’utilisateur ne pense pas à vider.
Supercookies de cache (favicon)
Un site encode un identifiant dans l’état du cache (par exemple via les requêtes de favicon), puis le relit plus tard en observant quelles requêtes manquent parce que les ressources sont en cache. C’est documenté dans l’article NDSS 2021 Tales of Favicons and Caches. Cela exploite l’écart entre ce que l’on croit avoir effacé (les cookies) et ce qui persiste (le cache). Mitigations : vider toutes les données du site et pas seulement les cookies, utiliser des profils de navigateur séparés (pro, perso, recherche), préférer des navigateurs qui isolent le stockage par défaut.
Client Hints, mesures de layout, fuites WebRTC et DNS
- Client Hints : des indices structurés pour optimiser la livraison (classe d’appareil, plateforme). Quelques indices à faible entropie partent par défaut, les détaillés seulement après demande du serveur via Accept-CH (MDN : Client hints). Trop détaillés, ils élargissent la surface de fingerprinting alors que l’UA est réduit.
- ClientRects et géométrie subpixel : les scripts mesurent le rendu des éléments au sous-pixel. Il dépend des polices, de l’OS, du zoom et du ratio de pixels : de petites différences s’additionnent.
- WebRTC et DNS : pas toujours des empreintes, mais des fuites de métadonnées. WebRTC peut exposer des candidats réseau, la gestion DNS peut révéler des requêtes hors du chemin attendu. Testez régulièrement ces fuites.
Fingerprinting TLS, HTTP/2 et QUIC
Sous les API du navigateur, les clients ont des poignées de main et des comportements de protocole distinctifs : empreintes TLS ClientHello (type JA3/JA4), paramètres et trames HTTP/2, traits de négociation QUIC/HTTP/3. Changer d’IP ne change pas la façon dont votre client négocie. C’est très utilisé en détection de bots et en analytique de sécurité. En tant qu’utilisateur, on ne peut généralement pas supprimer ces empreintes. L’approche pragmatique : rester mainstream et à jour, éviter les piles de réglages « vie privée » exotiques, et isoler les identités pour que l’entropie ne s’accumule pas d’un contexte à l’autre.
Partie 2 : des cas d’usage documentés
Le même mécanisme peut servir la publicité et la mesure, la prévention de la fraude et la protection des comptes, ou la détection de bots et la lutte contre les abus. Voici où cela se passe en pratique.
| Domaine | Cas | Ce qui s’est passé ou à quoi cela sert |
|---|---|---|
| Publicité | AddThis et le canvas fingerprinting | L’EFF a documenté qu’AddThis a commencé à l’utiliser en 2014 et a subi une forte réaction négative, après quoi la pratique aurait été arrêtée. Preuve que le canvas fingerprinting n’était pas théorique. |
| Réseau | Verizon UIDH (ère 2012-2016) | Verizon injectait un en-tête d’identifiant unique dans les requêtes HTTP de ses clients, ce qui a mené à une action et un règlement de la FCC. Même une hygiène parfaite des cookies ne suffit pas si l’identifiant est injecté au niveau réseau. |
| Fraude | ThreatMetrix (LexisNexis Risk) | Intelligence d’appareil et scoring de risque : détecter une activité suspecte même cookies supprimés ou navigation privée. Le fingerprinting est ici une fonction commerciale explicite, présentée comme de la sécurité. |
| Bots | Cloudflare Bot Management | Profilage des clients SSL/TLS (JA3/JA4) pour la détection de bots et le scoring des requêtes : du fingerprinting de protocole dans un produit d’entreprise. |
| Sécurité | JA3 / JA3S | Les équipes sécurité empreintent clients et serveurs TLS pour la détection et la corrélation (voir Cloudflare : JA3/JA4 fingerprint). Même en bloquant JS et en vidant le stockage, votre comportement TLS peut être profilé. |
Sources
- EFF : Cover Your Tracks
- Ronni K. Gothard Christiansen : Beyond cookies, the quiet tracking techniques hiding in your browser
- NDSS 2021 : Tales of Favicons and Caches
- WebKit tracking prevention
- EFF : Verizon UIDH
- LexisNexis ThreatMetrix
- Cloudflare : JA3/JA4 fingerprint
- MDN : Client hints
Pour aller plus loin, lisez la version complète de l’article (en anglais) : Beyond Cookies: The Complete Map of Browser Tracking Signals (and Documented Use Cases).
Besoin d’aide sur ce sujet ? Consent Mode v2 et CMP.