Font Fingerprinting : vos polices installées vous trahissent en ligne
Navigateur & Appareil

Font Fingerprinting : vos polices installées vous trahissent en ligne

Le font fingerprinting mesure silencieusement les largeurs de texte dans un canvas caché pour déduire quelles polices sont installées sur votre OS — identifiant stable, sans cookies. RGPD et protection.

7 min de lecture·

Le font fingerprinting est une technique de pistage qui lit silencieusement la liste des polices installées sur votre appareil via JavaScript — sans cookies, sans stockage, rien que vous puissiez supprimer. Votre combinaison de polices installées est étonnamment unique, et les sites web l'utilisent pour vous identifier entre sessions et entre différents sites. Découvrez quels signaux votre navigateur expose dès maintenant sur whatsmy.fyi.

En résumé

Le font fingerprinting fonctionne en mesurant comment votre navigateur rend du texte dans des centaines de polices différentes. Si une police est installée, le texte est rendu à une largeur spécifique ; si elle ne l'est pas, le navigateur revient à une police par défaut aux dimensions différentes. En sondant 300 à 700 noms de polices en quelques millisecondes, un script peut assembler une carte détaillée de vos polices installées — une combinaison si distinctive qu'elle peut ajouter 10 à 15 bits d'entropie à votre empreinte, suffisant pour vous distinguer de dizaines de milliers d'autres utilisateurs.

Qu'est-ce que le font fingerprinting ?

Le font fingerprinting exploite le fait que chaque appareil est livré avec une sélection différente de polices. Les polices que vous avez installées dépendent de votre système d'exploitation, des applications que vous avez installées, du fait que vous ayez ajouté manuellement des polices personnalisées et de la langue de votre système. Une installation macOS fraîche inclut les polices Apple intégrées. Une machine Windows ajoute son propre ensemble. Un utilisateur Linux gérant une suite de conception peut avoir des centaines de polices supplémentaires d'Adobe, Google ou d'autres sources. Chaque combinaison est effectivement une empreinte.

Contrairement aux cookies, le font fingerprinting ne laisse rien sur votre appareil. Il ne stocke rien, n'inscrit pas de traceur et ne demande pas de permission. Il lit simplement des données déjà accessibles publiquement via les API standard de rendu de polices du navigateur.

Le font fingerprinting est l'un des signaux au sein de la famille plus large des techniques de browser fingerprinting. Il est souvent déployé conjointement avec le canvas, WebGL et l'audio fingerprinting pour construire un identifiant inter-sessions à haute confiance.

Comment fonctionne le font fingerprinting ?

Il existe deux méthodes techniques distinctes utilisées en pratique. Les deux atteignent le même objectif — détecter quelles polices sont présentes — mais via des API de navigateur différentes.

Méthode 1 — Mesure de texte CSS (measureText)

L'approche la plus courante utilise la méthode measureText() de l'API Canvas ou le rendu CSS pour mesurer la largeur en pixels d'une chaîne rendue dans une police spécifique. Le script rend la même chaîne trois fois : une fois dans une police de secours connue (comme monospace), une fois en serif et une fois en demandant la police testée. Si la largeur de la police demandée correspond exactement à la police de secours, la police n'est pas installée. Si la largeur diffère, la police est présente.

Cette comparaison est effectuée pour chaque police de la liste de sondage — typiquement 300 à 700 noms de polices. Le scan complet se termine en moins de 100 millisecondes et s'exécute entièrement en JavaScript sans aucun effet visible sur la page.

Méthode 2 — Rendu pixel sur canvas

Une variante plus précise dessine du texte sur un élément canvas caché dans la police cible, extrait les données pixel résultantes avec canvas.toDataURL() et compare la sortie pixel à celle produite par une police de secours connue. Si les tableaux de pixels diffèrent, la police demandée a été utilisée — ce qui signifie qu'elle est installée.

// Font fingerprinting simplifié via measureText
function detectInstalledFonts(fontList) {
  const canvas = document.createElement('canvas');
  const ctx = canvas.getContext('2d');
  const testString = 'mmmmmmmmmmlli';
  const baseFonts = ['monospace', 'sans-serif', 'serif'];
  const testSize = '72px';

  // Mesurer chaque largeur de police de base (les largeurs de secours)
  const baseWidths = {};
  for (const base of baseFonts) {
    ctx.font = `${testSize} ${base}`;
    baseWidths[base] = ctx.measureText(testString).width;
  }

  const detected = [];
  for (const font of fontList) {
    for (const base of baseFonts) {
      ctx.font = `${testSize} '${font}', ${base}`;
      const width = ctx.measureText(testString).width;
      if (width !== baseWidths[base]) {
        detected.push(font);
        break;
      }
    }
  }
  return detected; // Tableau des noms de polices installées
}

Quelle est l'unicité d'une empreinte de polices ?

RésultatValeurSource
Entropie ajoutée par la liste de polices seule10–15 bitsÉtude EFF Panopticlick
Polices installées en moyenne par appareil de bureau50–200BrowserLeaks / recherche terrain
Polices sondées par un script de fingerprinting typique300–700BrowserLeaks Font Test
Temps pour compléter le sondage complet des polices< 100 msBrowserScan / mesure terrain
Sites dans le top 10 000 utilisant la détection de polices~38 %Browser Fingerprinting Survey (arXiv)
Utilisateurs identifiés de façon unique avec polices + 4 autres signaux> 99 %Plateformes commerciales de fingerprinting

Qui utilise le font fingerprinting dans le monde réel ?

Réseaux publicitaires et pistage inter-sites

Les plateformes ad-tech intègrent des scripts de détection de polices dans des tags publicitaires tiers et des pixels de pistage. Avec la disparition progressive des cookies tiers dans Chrome, Safari et Firefox, le font fingerprinting a gagné en importance comme identifiant stable inter-sessions.

Détection de fraude et scoring de risque

Les plateformes de sécurité utilisent les empreintes de polices pour détecter les prises de contrôle de comptes et le credential stuffing. Si la liste de polices d'un utilisateur qui revient diffère drastiquement du profil stocké — par exemple parce qu'un attaquant utilise une machine virtuelle fraîche avec un minimum de polices — cela déclenche un signal de risque.

Contournement des paywalls et lutte anti-bots

Les éditeurs et services par abonnement utilisent le font fingerprinting pour faire respecter les limites d'articles chez les utilisateurs qui réinitialisent leur accès en supprimant leurs cookies. Comme le profil de polices reflète le système d'exploitation sous-jacent et les applications installées plutôt que l'état de navigation, il persiste à travers la suppression des cookies, le mode privé et même certaines configurations VPN.

Le font fingerprinting est-il légal ? Que dit la CNIL ?

Selon le RGPD, le font fingerprinting constitue un traitement de données personnelles lorsque l'identifiant résultant peut être lié à un individu. La CNIL (Commission Nationale de l'Informatique et des Libertés) a explicitement classé le browser fingerprinting — y compris l'énumération des polices — comme nécessitant un consentement éclairé, sauf si une exception d'intérêt légitime étroit s'applique, comme la prévention de la fraude. Aux États-Unis, le CCPA et le CPRA traitent les données d'empreinte de polices comme des informations personnelles soumises aux droits d'opt-out.

Le W3C Fingerprinting Guidance identifie l'énumération des polices comme une "surface de fingerprinting passif à haute entropie" et conseille aux éditeurs de navigateurs de restreindre l'accès aux polices installées localement.

Comment se protéger du font fingerprinting

  • Tor Browser (protection maximale) : Tor Browser restreint les pages à un ensemble fixe de polices livrées avec le navigateur lui-même. Vos polices localement installées sont complètement invisibles pour les sites web, et chaque utilisateur Tor présente une liste de polices identique — rendant impossible l'identification basée sur les polices.
  • Brave Browser (recommandé pour l'usage quotidien) : À partir de la version 1.39, Brave randomise la liste de polices exposée aux pages web. Au lieu de révéler vos vraies polices installées, il retourne un sous-ensemble mélangé et réduit qui change par site et par session.
  • Firefox avec privacy.resistFingerprinting : Quand ce paramètre est activé dans about:config, Firefox restreint l'accès aux polices à l'ensemble standard de polices livrées avec votre système d'exploitation — les polices personnalisées ou installées par les applications sont cachées.
  • Éviter d'installer des polices inhabituelles : Chaque police non-standard supplémentaire augmente l'unicité de votre empreinte de polices. Les designers et typographes qui installent de grandes bibliothèques de polices professionnelles sont significativement plus identifiables.
  • Utiliser un VPN — mais comprendre ses limites : Un VPN masque votre adresse IP mais n'a absolument aucun effet sur la liste de polices que votre navigateur expose. Vérifiez si votre VPN fonctionne correctement sur whatsmy.fyi.

Foire aux questions

Le font fingerprinting fonctionne-t-il en navigation privée ?

Oui. La navigation privée empêche votre navigateur d'enregistrer l'historique, les cookies et les données de session — mais elle ne change pas les polices installées sur votre système. Votre empreinte de polices est identique en fenêtre privée et en fenêtre normale. Seuls des navigateurs avec une protection active des polices, comme Brave ou Tor Browser, présentent un profil de polices différent.

Un VPN peut-il arrêter le font fingerprinting ?

Non. Un VPN chiffre votre trafic et change votre adresse IP visible, mais il n'a pas accès au moteur de rendu de votre navigateur. Le font fingerprinting lit des données du registre de polices du système d'exploitation via l'API JavaScript du navigateur — une couche entièrement non affectée par votre configuration réseau.

Combien de polices un script de fingerprinting vérifie-t-il réellement ?

Les scripts de production typiques sondent entre 300 et 700 noms de polices. La liste de sondage inclut les polices système courantes (Arial, Times New Roman, Georgia), les polices spécifiques aux OS (San Francisco sur macOS, Segoe UI sur Windows), les polices d'application installées par Adobe Creative Cloud, Microsoft Office ou Google Drive, et des polices spécifiques aux langues pour le chinois, l'arabe, l'hébreu et d'autres écritures.

Les machines de designers ou développeurs sont-elles plus traçables via les polices ?

Oui, significativement. Un designer utilisant Adobe Creative Cloud peut avoir 500 polices supplémentaires ou plus chargées au-delà de la valeur par défaut du système. Un développeur qui a installé des polices de programmation comme JetBrains Mono, Fira Code ou Cascadia Code ajoute des signaux uniques supplémentaires. Les utilisateurs intensifs de polices qui accordent de l'importance à la vie privée devraient utiliser la randomisation de polices de Brave ou Tor Browser.

La suppression des cookies efface-t-elle mon empreinte de polices ?

Non. Le font fingerprinting dérive son identifiant du registre de polices du système d'exploitation, pas de données stockées dans le navigateur. Supprimer les cookies, le stockage local, réinitialiser les paramètres du navigateur ou même réinstaller le navigateur n'a aucun effet sur la liste de polices que votre système expose. L'empreinte ne change que si vous installez ou supprimez des polices.

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

Font Fingerprinting : vos polices installées vous trahissent en ligne | whatsmy.fyi