Empreinte de navigateur

Votre navigateur révèle une combinaison de signaux techniques qui vous distingue, sans dépôt de cookie.
Cet outil la calcule sous vos yeux, en clair, signal par signal.

  • Calcul 100 % local, aucune donnée envoyée à un serveur
  • Identifiant SHA-256 recalculé à chaque visite, en direct
  • Détail signal par signal : Canvas, WebGL, audio, polices, matériel
  • Détection des protections anti-fingerprinting déjà actives
  • Distinction entre identifiant complet et identifiant stable
JavaScript ESM SHA-256 Zéro dépendance Zéro réseau RGPD
fingerprint.js
import { Fingerprint } from './fingerprint.es.js'; const fp = await Fingerprint.compute(); fp.visitorId; // SHA-256, 64 hex fp.stableId; // sans signaux volatils fp.entropy; // { bits, oneIn } fp.components.webgl.value .unmaskedRenderer; // GPU fp.protection.randomized;

Qu'est-ce qu'une empreinte de navigateur ?

Une empreinte de navigateur est un identifiant calculé à partir de dizaines de caractéristiques techniques exposées par un navigateur et son environnement d'exécution : version logicielle, matériel graphique, polices installées, réglages système. Combinées, ces caractéristiques forment une signature souvent unique à un appareil donné, sans qu'aucun cookie ni jeton ne soit déposé. Contrairement à un cookie, elle ne se supprime pas en vidant le cache et survit à la navigation privée, puisqu'elle ne repose sur aucun stockage mais sur une observation passive du terminal. C'est cette propriété qui en fait à la fois un outil de sécurité efficace et un sujet de vigilance en matière de vie privée.

Votre empreinte, calculée maintenant

Le calcul ci-dessous s'exécute dans votre navigateur dès l'ouverture de la page.

Identifiant complet — SHA-256
Calcul en cours…
Identifiant stable (sans signaux volatils)
Forme courte (16 hex)
bits d'entropie estimés
navigateurs partageant ce profil
signaux collectés
durée du calcul
Analyse des protections anti-fingerprinting en cours…
Confidentialité : l'intégralité du calcul de cette page s'exécute dans votre navigateur, sans le moindre appel à un serveur distant. Aucun des signaux mesurés ni l'identifiant obtenu n'est transmis, journalisé ou conservé par SynapxLab.

Signaux collectés

Cliquez sur une ligne pour afficher la valeur brute mesurée sur votre appareil.

Signal Type Entropie estimée Empreinte du signal Durée
Collecte en cours…
Type : un signal déclaré est une valeur annoncée par le navigateur, modifiable par l'utilisateur ou une extension. Un signal mesuré est le résultat d'un calcul exécuté par le terminal, qui dépend du GPU, des pilotes et du système.

Comment ça marche

Chaque signal collecté apporte une quantité d'information mesurée en bits d'entropie : plus une valeur est rare dans la population des navigateurs, plus elle contribue à distinguer un visiteur des autres. Certains attributs sont simplement déclarés par le navigateur, comme la langue ou le fuseau horaire, et peuvent être modifiés facilement ; d'autres sont mesurés en faisant travailler le terminal, comme le rendu d'un dessin Canvas 2D, une scène WebGL ou un signal audio traité par un compresseur. Ces derniers dépendent de la carte graphique, des pilotes installés, du système d'exploitation et de la version exacte des bibliothèques de rendu, ce qui les rend beaucoup plus difficiles à falsifier de façon cohérente qu'une simple valeur déclarative.

L'ensemble des signaux mesurés et déclarés est ensuite concaténé selon un ordre fixe puis haché avec SHA-256 pour produire un identifiant stable et reproductible tant que l'environnement ne change pas. Ce hachage n'ajoute aucune information : il condense l'entropie déjà présente dans les signaux bruts en une chaîne de longueur fixe, pratique à stocker et à comparer, mais qui ne peut techniquement pas être inversée pour retrouver les valeurs d'origine.

Entropie et unicité

L'entropie d'un signal s'exprime en bits : un signal apportant 20 bits d'entropie signifie qu'il divise en moyenne la population des navigateurs par 220, soit environ un million, si sa distribution était parfaitement uniforme et indépendante des autres signaux. En pratique, les signaux ne sont jamais indépendants : la résolution d'écran, la densité de pixels et le rendu WebGL sont fortement corrélés au même modèle d'appareil, si bien qu'additionner leurs bits individuels surestime largement l'entropie réellement gagnée en les combinant. Les valeurs affichées sur cette page pour chaque signal proviennent d'études publiques comme Panopticlick de l'EFF ou Am I Unique, menées sur des populations de plusieurs centaines de milliers de navigateurs. Elles ne mesurent donc pas la diversité réelle des visiteurs de ce site, mais donnent un ordre de grandeur permettant de comparer le pouvoir discriminant relatif de chaque signal.

Stabilité dans le temps

Une empreinte n'est pas figée dans le temps : une mise à jour du navigateur ou du système, un changement d'écran, l'installation d'une nouvelle police ou le remplacement d'une carte graphique modifient un ou plusieurs signaux et font donc varier l'identifiant complet. Pour rester exploitable au-delà de quelques jours ou semaines, un identifiant stable est calculé en excluant les signaux les plus volatils, notamment ceux liés au bruit anti-fingerprinting réinjecté à chaque exécution. Cet identifiant stable est moins précis que l'identifiant complet, mais il conserve un usage pratique pour reconnaître un même appareil sur une période prolongée sans dépendre d'un cookie.

Se protéger

Aucune protection ne supprime totalement le fingerprinting, mais plusieurs stratégies réduisent son efficacité en rendant les signaux moins discriminants ou en les uniformisant entre utilisateurs. Certaines consistent à ajouter du bruit aléatoire aux mesures instables comme le Canvas ou l'audio, d'autres à faire converger tous les navigateurs vers un même profil déclaré. Le compromis est réel : réduire trop agressivement les signaux exposés peut, paradoxalement, rendre un navigateur plus reconnaissable en le distinguant du reste de la population.

  • Tor Browser — uniformise systématiquement tous les utilisateurs sur un même profil déclaré, au prix d'un rendu et de performances dégradés
  • Firefox avec privacy.resistFingerprinting — applique la même stratégie d'uniformisation que Tor, mais peut casser certains sites mal préparés à ces valeurs génériques
  • Brave — injecte un bruit aléatoire différent à chaque session sur le Canvas et l'audio, rendant l'identifiant complet instable sans bloquer le rendu
  • Extensions anti-fingerprinting — utiles en complément, mais souvent détectables elles-mêmes par leur signature d'exécution, ce qui peut créer un nouveau signal distinctif
  • Navigation privée seule — n'a aucun effet sur le fingerprinting puisqu'elle ne modifie ni ne bloque les signaux mesurés, elle empêche seulement l'écriture de cookies et l'historique local

Cadre juridique

En droit français, l'article 82 de la loi Informatique et Libertés, qui transpose la directive ePrivacy, encadre toute opération d'accès à des informations déjà stockées dans le terminal d'un utilisateur ou d'inscription d'informations dans ce terminal. La CNIL considère que la lecture des caractéristiques techniques d'un navigateur à des fins de fingerprinting relève de ce même régime, même en l'absence de cookie, et soumet donc cette pratique à un consentement préalable sauf exception strictement définie. L'EDPB retient une lecture similaire au niveau européen, refusant qu'une finalité de traçage publicitaire échappe au consentement au seul motif qu'aucun cookie n'est utilisé.

Indépendamment de ce cadre ePrivacy, l'identifiant produit constitue une donnée à caractère personnel au sens du RGPD dès lors qu'il permet, seul ou combiné à d'autres informations, de singulariser une personne physique parmi d'autres. Les exceptions au consentement prévues par la loi, notamment pour la sécurité de l'information ou la lutte contre la fraude, sont interprétées restrictivement par la CNIL et ne dispensent pas de documenter précisément la finalité poursuivie, la durée de conservation et la proportionnalité du traitement au regard de cette finalité.

Pour recueillir ce consentement dans les règles, voyez le SDK Cookie Consent : le calcul d'empreinte doit être conditionné à une finalité acceptée, exactement comme un traceur.

Usages légitimes

  • Anti-fraude sur les paiements — détecter qu'un même appareil enchaîne des tentatives d'achat avec des identités ou des moyens de paiement différents
  • Détection de bots et de comptes multiples — repérer des inscriptions massives ou des scripts automatisés qui ne présentent pas les variations naturelles d'un vrai parc de navigateurs
  • Sécurité de session — identifier qu'un cookie de session utilisé depuis un appareil à l'empreinte radicalement différente signale probablement un vol de session
  • Mesure d'audience sans cookie — distinguer les visiteurs d'un site sans déposer de traceur, dans une logique de statistiques agrégées plutôt que de suivi individuel

Intégration

Le moteur est un module ES autonome, sans dépendance et sans appel réseau.

<script type="module">
  import { Fingerprint } from 'https://synapx.fr/assets/vendor/fingerprint.es.js';

  const fp = await Fingerprint.compute();

  fp.visitorId;            // SHA-256 sur 64 caractères hexadécimaux
  fp.stableId;             // identifiant calculé sans les signaux volatils
  fp.entropy.bits;         // entropie cumulée estimée
  fp.protection.protected; // true si une protection a été détectée
  fp.components.fonts.value.detected; // polices identifiées
</script>

Structure du résultat

ChampTypeDescription
visitorIdstringEmpreinte SHA-256 de tous les signaux
stableIdstringEmpreinte SHA-256 des seuls signaux non volatils
shortIdstring16 premiers caractères de visitorId
componentsobjectValeur brute, empreinte, catégorie, entropie et durée de chaque signal
entropyobjectrawBits, bits plafonnés à 33 et oneIn
protectionobjectrandomized, protected et flags détaillant les protections repérées
algorithmstringSHA-256, ou repli FNV-1a hors contexte sécurisé
Contexte sécurisé requis : crypto.subtle n'est disponible qu'en HTTPS ou sur localhost. Hors de ce contexte, le moteur bascule sur un hachage FNV-1a, utilisable pour la démonstration mais pas pour une comparaison cryptographique.

Questions fréquentes

Peut-on empêcher totalement le fingerprinting ?

Non, aucune protection ne l'élimine complètement, car un navigateur doit exposer un minimum d'informations pour fonctionner. Les meilleures stratégies réduisent l'entropie exploitable ou l'uniformisent entre utilisateurs, sans jamais l'annuler.

Une empreinte de navigateur est-elle toujours unique ?

Elle est souvent unique parmi les navigateurs desktop récents équipés de Canvas et WebGL actifs, mais pas systématiquement. Sur des appareils très standardisés comme certains modèles d'iPhone récents, plusieurs utilisateurs peuvent partager une empreinte identique.

La navigation privée protège-t-elle du fingerprinting ?

Non, la navigation privée empêche uniquement l'écriture de cookies et la conservation de l'historique local, mais elle n'agit ni sur le rendu Canvas, ni sur WebGL, ni sur les autres signaux mesurés. Le fingerprinting fonctionne de façon identique en navigation privée et en navigation normale.

Combien de temps une empreinte reste-t-elle valable ?

L'identifiant complet évolue dès qu'un signal change, par exemple lors d'une mise à jour du navigateur ou d'un changement de matériel graphique, ce qui limite sa durée de vie utile à quelques semaines ou mois. L'identifiant stable, calculé sans les signaux les plus volatils, tient généralement plus longtemps.

Faut-il le consentement de l'utilisateur pour collecter une empreinte ?

Oui dans la très grande majorité des cas, car la CNIL et l'EDPB assimilent cette collecte à un accès à des informations du terminal soumis à l'article 82 de la loi Informatique et Libertés. Seules des finalités strictement nécessaires à la sécurité ou à la fourniture du service demandé peuvent, sous conditions restrictives, s'en dispenser.