Canvas Fingerprinting : comment les sites vous tracent sans cookies
Navigateur & Appareil

Canvas Fingerprinting : comment les sites vous tracent sans cookies

Le canvas fingerprinting force votre navigateur à dessiner une image cachée pour extraire un hash GPU unique. Persistant, silencieux et sans cookies. Que dit le RGPD ? Comment se protéger ?

7 min de lecture·

Le canvas fingerprinting est une technique de pistage qui dessine une image invisible à l'aide de l'API HTML5 Canvas et lit les données de pixels résultantes pour créer un identifiant unique de votre appareil — sans cookies, sans stockage, rien à supprimer. Testez dès maintenant si votre navigateur expose une empreinte canvas sur whatsmy.fyi.

En résumé

Le canvas fingerprinting est une méthode de traçage qui demande à votre navigateur de dessiner une image cachée, puis lit les données de pixels pour identifier votre appareil. Cela fonctionne parce que votre GPU, votre système d'exploitation et votre moteur de rendu de polices introduisent chacun de minuscules différences cohérentes dans la façon dont cette image est dessinée — invisibles à l'œil humain, mais uniques à votre combinaison matérielle et logicielle.

Qu'est-ce que le canvas fingerprinting ?

Le canvas fingerprinting exploite l'API Canvas HTML5, une fonctionnalité conçue pour permettre aux navigateurs de dessiner des graphiques directement dans la fenêtre du navigateur. Tous les navigateurs modernes la prennent en charge — ce qui signifie que la surface de traçage est quasi universelle. Lorsqu'un script de fingerprinting s'exécute, il crée un élément canvas hors écran qui est complètement invisible pour vous, dessine du texte et des formes dessus, puis appelle canvas.toDataURL() pour lire en retour les données de pixels sous forme de chaîne Base64. Cette chaîne est ensuite hachée en une empreinte compacte et stable.

Ce qui rend le canvas fingerprinting puissant, c'est que les pixels ne sont pas parfaitement identiques d'un appareil à l'autre. Les mêmes instructions de dessin produisent des résultats subtilement différents selon votre fabricant de GPU, la version du pilote graphique, le système d'exploitation, les polices installées et les paramètres d'anti-aliasing. Deux machines identiques sur le papier — même OS, même version de navigateur — peuvent quand même produire un hash canvas différent parce que leurs pilotes GPU diffèrent. L'outil Cover Your Tracks de l'Electronic Frontier Foundation classe systématiquement la sortie canvas parmi les signaux d'entropie les plus élevés de la boîte à outils de fingerprinting.

Le canvas fingerprinting est l'une des composantes de la famille plus large des techniques de fingerprinting du navigateur. Contrairement aux cookies, il ne nécessite aucun stockage sur votre appareil et n'est absolument pas affecté par l'effacement de votre historique, l'activation du mode privé ou le changement de réseau.

Comment fonctionne le canvas fingerprinting ?

Le processus se déroule en quatre étapes, chacune ne prenant que quelques millisecondes et totalement invisible pour l'utilisateur.

Étape 1 — Dessin du canvas

Un fragment JavaScript crée un élément canvas hors écran et dessine une combinaison de texte, de formes et de dégradés en utilisant des polices, des couleurs et des modes de fusion spécifiques. La complexité du dessin compte : des formes géométriques simples produisent moins de variation ; un texte riche en polices avec des ombres et des dégradés en produit davantage.

Étape 2 — Rendu par le GPU et l'OS

Le navigateur transmet les instructions de dessin à la pile graphique du système d'exploitation. Sur Windows, ClearType gère le rendu des polices en sous-pixel. Sur macOS, Core Text applique son propre algorithme d'hinting. Sur Linux, FreeType rend différemment. Votre GPU gère l'anti-aliasing et l'interpolation des couleurs. Chaque couche introduit une variation cohérente mais spécifique à l'appareil au niveau des pixels.

Étape 3 — Extraction des pixels

Le script appelle canvas.toDataURL() pour lire l'image complète sous forme de PNG encodé en Base64. Cette chaîne encode chaque valeur de pixel — y compris les variations en sous-pixel introduites lors du rendu. Alternativement, les scripts peuvent utiliser canvas.getImageData() pour accéder directement au tampon de pixels bruts.

Étape 4 — Hachage

La chaîne Base64 ou le tampon de pixels bruts est haché — généralement avec MurmurHash ou MD5 — pour produire une empreinte compacte et stable. Ce hash est transmis au serveur de traçage et stocké comme identifiant d'appareil.

// Exemple minimal de canvas fingerprinting
function getCanvasFingerprint() {
  const canvas = document.createElement('canvas');
  canvas.width = 280;
  canvas.height = 60;

  const ctx = canvas.getContext('2d');

  // Fond — le mélange de couleurs varie selon le GPU
  ctx.fillStyle = 'rgb(255, 102, 0)';
  ctx.fillRect(10, 10, 100, 30);

  // Texte — le rendu des polices varie selon l'OS (ClearType / Core Text / FreeType)
  ctx.fillStyle = '#069';
  ctx.font = '18px Arial';
  ctx.fillText('Canvas fingerprint', 2, 45);

  // Ombre — le rendu des ombres varie selon le pilote graphique
  ctx.shadowColor = 'rgba(0, 0, 0, 0.5)';
  ctx.shadowBlur = 6;
  ctx.shadowOffsetX = 2;
  ctx.shadowOffsetY = 3;

  // Retourne une chaîne Base64 qui diffère subtilement d'un appareil à l'autre
  // même avec des versions identiques de navigateur et d'OS
  return canvas.toDataURL();
}

À quel point une empreinte canvas est-elle unique ?

Le canvas fingerprinting apporte une entropie significative à l'empreinte globale du navigateur. Les résultats de recherche varient selon les ensembles de données et les méthodologies, mais la direction est cohérente : la sortie canvas est un identifiant à signal élevé, particulièrement lorsqu'elle est combinée avec d'autres attributs du navigateur.

RésultatValeurSource
Entropie canvas en isolation8–10 bitsEFF Cover Your Tracks
Navigateurs identifiables uniquement via canvas83,6 %BrowserLeaks
Part des 20 000 premiers sites utilisant le canvas fingerprinting12,7 %ACM Internet Measurement Conference, 2025
Unicité réelle (8 millions d'empreintes)33,6 %Étude académique, 2018
Unicité canvas sur les appareils mobiles62 %ACM Internet Measurement Conference, 2025

L'écart entre les résultats en laboratoire (80–90 % d'unicité) et les données réelles (33,6 %) existe parce que de nombreuses configurations populaires produisent une sortie canvas identique. Tous les MacBook Pro fonctionnant avec le même macOS et la même version de Safari partagent par exemple le même hash canvas. L'unicité est la plus élevée sur les appareils avec des combinaisons inhabituelles de GPU et de pilotes. Les appareils mobiles obtiennent un score plus élevé car la fragmentation matérielle est plus grande.

Qui utilise le canvas fingerprinting dans la pratique ?

Réseaux publicitaires

Les entreprises d'ad-tech utilisent le canvas fingerprinting pour suivre les utilisateurs sur les sites web à des fins de ciblage comportemental. Il est devenu particulièrement précieux avec la disparition des cookies tiers dans les principaux navigateurs — le canvas fingerprinting remplit le même rôle d'identification sans nécessiter de cookies ni de consentement de l'utilisateur dans la plupart des implémentations actuelles.

Plateformes de détection de fraude

Des entreprises de sécurité comme Fingerprint (anciennement FingerprintJS) utilisent le canvas fingerprinting pour détecter les prises de contrôle de comptes, le credential stuffing et l'activité des bots. Si l'empreinte canvas d'un appareil ne correspond pas à celle enregistrée pour un compte, cela déclenche un signal de risque. Ce cas d'usage relève généralement de l'intérêt légitime au sens du RGPD sans nécessiter de consentement explicite.

Application des paywalls et des accès limités

Les éditeurs de presse et les services d'abonnement utilisent le canvas fingerprinting pour appliquer des limites d'articles aux utilisateurs qui effacent leurs cookies pour réinitialiser leur compteur. Parce que l'empreinte est dérivée du matériel plutôt que des données stockées, elle persiste à travers la suppression des cookies et la navigation privée.

Le canvas fingerprinting est-il légal ?

En vertu du RGPD en Europe, le canvas fingerprinting constitue un traitement de données personnelles lorsque le hash résultant peut raisonnablement être lié à un individu. La CNIL (autorité française de protection des données) a explicitement nommé le fingerprinting du navigateur comme nécessitant un consentement éclairé, sauf si une exemption d'intérêt légitime étroite s'applique. Sous le CCPA et le CPRA américains, les données de fingerprinting sont traitées comme des informations personnelles soumises à des droits d'opt-out, et plusieurs actions collectives ont été intentées contre des entreprises d'ad-tech utilisant le fingerprinting sans divulgation.

Le Guide de fingerprinting du W3C reconnaît le canvas comme un « vecteur de fingerprinting haute fidélité » et conseille aux auteurs de spécifications web de considérer le risque de fingerprinting lors de la conception de nouvelles API. L'application reste incohérente selon les juridictions.

Comment vous protéger du canvas fingerprinting

La prévention complète est difficile — les défenses efficaces impliquent des compromis en matière de compatibilité web. Ces options sont classées de la plus puissante à la plus pratique pour un usage quotidien :

  • Navigateur Tor (protection la plus forte) : Tor normalise la sortie canvas de sorte que chaque utilisateur Tor renvoie un hash canvas identique, rendant l'identification individuelle impossible. Le compromis est une navigation plus lente via le réseau Tor.
  • Navigateur Brave (recommandé pour un usage quotidien) : Brave utilise une technique appelée Farbling — il injecte une petite valeur de bruit aléatoire par session dans les pixels canvas. Votre empreinte change à chaque session et par site, rendant le suivi intersites peu fiable tout en restant visuellement indiscernable pour vous.
  • Firefox avec privacy.resistFingerprinting : Mettre ce paramètre à true dans about:config fait retourner à Firefox une sortie canvas uniforme similaire au navigateur Tor. Il est désactivé par défaut ; certains sites qui dépendent de graphiques basés sur canvas peuvent se comporter de façon inattendue.
  • Extension CanvasBlocker (Firefox et Chrome) : Cette extension intercepte les appels canvas.toDataURL() et getImageData()et les bloque ou renvoie des données aléatoires. Utile pour les utilisateurs qui ont besoin de protection sans changer de navigateur.
  • Éviter les polices rares et les pilotes GPU inhabituels : Maintenir ses pilotes à jour et utiliser du matériel standard réduit l'unicité de votre sortie canvas. Les versions de pilotes rares produisent des artefacts de rendu plus distinctifs.
  • Utiliser un VPN — mais comprendre ses limites : Un VPN masque votre adresse IP mais n'a aucun effet sur la sortie canvas. Il supprime une couche de traçage mais ne résout pas le fingerprinting. Vérifiez si votre VPN fonctionne sur whatsmy.fyi.

Foire aux questions

Le canvas fingerprinting fonctionne-t-il en mode incognito ou privé ?

Oui. Le mode de navigation privée empêche votre navigateur de sauvegarder l'historique, les cookies et les données de formulaire sur le disque — mais il ne change pas votre GPU, votre pilote graphique ni le moteur de rendu des polices de votre OS. Votre empreinte canvas est identique en mode incognito et dans une fenêtre normale. Seuls les navigateurs avec une randomisation active des empreintes, comme Brave ou le navigateur Tor, se comportent différemment.

Un VPN peut-il empêcher le canvas fingerprinting ?

Non. Un VPN change votre adresse IP visible et achemine le trafic via un tunnel chiffré, mais il ne touche pas à la pile de rendu du navigateur. Le canvas fingerprinting lit des données de rendu au niveau GPU et OS, ce qui n'est absolument pas affecté par le serveur par lequel votre trafic transite. Pour vous protéger du canvas fingerprinting, utilisez Brave, Firefox avec privacy.resistFingerprinting, ou le navigateur Tor.

Le canvas fingerprinting est-il identique au suivi par cookies ?

Non. Le suivi par cookies stocke un fichier identifiant sur votre appareil, que vous pouvez consulter, supprimer ou bloquer. Le canvas fingerprinting ne stocke rien — il reconstruit un identifiant à partir des caractéristiques matérielles et logicielles de votre appareil à chaque visite. Effacer les cookies, supprimer le stockage local ou bloquer les cookies tiers n'a aucun effet sur le canvas fingerprinting.

Désactiver JavaScript empêche-t-il le canvas fingerprinting ?

Oui — le canvas fingerprinting nécessite JavaScript pour fonctionner. Si vous désactivez JavaScript entièrement, le script de fingerprinting ne peut pas s'exécuter. Cependant, désactiver JavaScript casse la plupart des sites web modernes. Une approche plus pratique est d'utiliser le Farbling de Brave ou l'extension CanvasBlocker, qui interceptent spécifiquement les appels à l'API canvas sans désactiver JavaScript en général.

Quelle est la différence entre le canvas fingerprinting et le WebGL fingerprinting ?

Les deux exploitent le pipeline de rendu graphique du navigateur, mais ciblent des API différentes. Le canvas fingerprinting utilise l'API Canvas 2D et est sensible aux différences de rendu des polices et du texte en sous-pixel. Le WebGL fingerprinting utilise l'API graphique 3D et expose directement le nom de votre fournisseur GPU, le modèle GPU et la version du pilote. Ils sont souvent déployés ensemble car ils capturent des dimensions complémentaires de l'unicité des appareils. Consultez le guide WebGL fingerprinting pour plus de détails.

Articles connexes

Vérifiez votre adresse IP, localisation et score de confidentialité — instantanément.

Zéro log. Zéro tracking. Zéro API externe.

Lancer la vérification →

Articles connexes

Canvas Fingerprinting : comment les sites vous tracent sans cookies | whatsmy.fyi