Audio Fingerprinting : comment AudioContext piste votre navigateur
Navigateur & Appareil

Audio Fingerprinting : comment AudioContext piste votre navigateur

L'audio fingerprinting traite un signal via l'API AudioContext et mesure les micro-différences en virgule flottante de votre pile audio — identifiant unique, sans cookies. RGPD et protection.

7 min de lecture·

L'audio fingerprinting est une technique de pistage qui utilise l' API Web Audio pour rendre un signal silencieux en mémoire et mesurer les infimes différences en virgule flottante dans la sortie — différences uniques à votre matériel et à votre pile logicielle. Aucun son n'est joué, aucun microphone n'est utilisé, aucune permission n'est demandée. Vérifiez l'empreinte de votre navigateur dès maintenant sur whatsmy.fyi.

En résumé

L'audio fingerprinting crée une minuscule tâche de rendu audio entièrement dans la mémoire de votre navigateur, puis lit le résultat numérique. Parce que chaque combinaison de CPU, de pile audio du système d'exploitation et de moteur de navigateur traite les mathématiques en virgule flottante légèrement différemment, le résultat est un nombre stable qui identifie de façon unique votre appareil — survivant au mode navigation privée, à la suppression des cookies et même au changement de navigateur sur les navigateurs basés sur Chromium.

Qu'est-ce que l'audio fingerprinting ?

L'audio fingerprinting exploite l' OfflineAudioContext — une API de navigateur originalement conçue pour rendre de l'audio plus vite qu'en temps réel pour le traitement, le mixage et l'export. Les scripts de fingerprinting le détournent pour rendre une forme d'onde mathématiquement définie sans périphérique de sortie, puis mesurent comment l'arithmétique en virgule flottante de la plateforme a géré le calcul. Le résultat est un seul nombre — quelque chose comme 124.0434488 sur une machine ou 79.59 sur une autre — qui sert d'identifiant d'appareil.

Contrairement au canvas fingerprinting, qui sonde le pipeline de rendu 2D de votre GPU, l'audio fingerprinting sonde le pipeline de traitement du signal numérique (DSP) de votre CPU. Les deux capturent des couches complètement différentes de votre matériel, en faisant des signaux complémentaires lorsqu'ils sont déployés ensemble.

L'audio fingerprinting est l'une des composantes les plus difficiles à détecter de l'écosystème plus large du browser fingerprinting. Comme il ne nécessite aucun stockage, aucun cookie, aucune requête réseau et aucune interaction utilisateur, il est entièrement invisible dans le panneau Réseau de DevTools et ne produit aucun avertissement ni invite d'autorisation.

Comment fonctionne l'audio fingerprinting ?

Le processus s'exécute en arrière-plan en moins de 50 millisecondes et suit quatre étapes claires.

Étape 1 — Créer un OfflineAudioContext

Le script instancie un OfflineAudioContext avec un nombre de canaux, un nombre d'échantillons et une fréquence d'échantillonnage fixes — typiquement un canal, 5 000 échantillons à 44 100 Hz. "Hors-ligne" signifie qu'il rend entièrement en mémoire : aucun matériel audio n'est impliqué, aucun périphérique de sortie n'est requis et aucun son n'est produit.

Étape 2 — Générer une forme d'onde

Un OscillatorNode est configuré pour produire une onde triangulaire à 10 000 Hz. C'est une forme d'onde mathématiquement précise et répétitive — il n'y a aucune aléatoire dans l'entrée. Toute différence dans la sortie provient donc entièrement de la chaîne de traitement de la plateforme, pas du signal lui-même.

Étape 3 — Appliquer un DynamicsCompressor

Le signal de l'oscillateur est acheminé à travers un DynamicsCompressorNode configuré avec un seuil, un genou, un ratio, une attaque et une libération spécifiques. Le compresseur applique une courbe de gain non linéaire — le calcul implique des divisions et des exponentiations, pas seulement des additions. Les opérations non linéaires composent les erreurs d'arrondi en virgule flottante entre plateformes, ce qui est précisément pourquoi le compresseur est utilisé.

Étape 4 — Lire et hacher la sortie

Après la fin du rendu, buffer.getChannelData(0) retourne un Float32Array de 5 000 valeurs. Le script additionne typiquement les valeurs absolues des échantillons 4 500–5 000 pour produire un seul flottant. Ce flottant — ou un hash du tableau complet — devient l'empreinte audio.

// Audio fingerprinting — exemple minimal
async function getAudioFingerprint() {
  const AudioCtx =
    window.OfflineAudioContext || window.webkitOfflineAudioContext;

  // 1. Contexte en mémoire — pas de matériel, pas d'autorisations
  const ctx = new AudioCtx(1, 5000, 44100);

  // 2. Oscillateur — onde triangulaire à 10 kHz (entrée déterministe)
  const osc = ctx.createOscillator();
  osc.type = 'triangle';
  osc.frequency.setValueAtTime(10000, ctx.currentTime);

  // 3. DynamicsCompressor — les maths non linéaires amplifient les différences de plateforme
  const comp = ctx.createDynamicsCompressor();
  comp.threshold.setValueAtTime(-50, ctx.currentTime);
  comp.knee.setValueAtTime(40, ctx.currentTime);
  comp.ratio.setValueAtTime(12, ctx.currentTime);
  comp.attack.setValueAtTime(0, ctx.currentTime);
  comp.release.setValueAtTime(0.25, ctx.currentTime);

  osc.connect(comp);
  comp.connect(ctx.destination);
  osc.start(0);

  // 4. Rendu et lecture — s'exécute hors du thread principal
  const buffer = await ctx.startRendering();
  const data = buffer.getChannelData(0);

  // Chrome macOS : ~101.46  |  Safari : ~79.59  |  Firefox : ~80.95
  return data.slice(4500).reduce((acc, v) => acc + Math.abs(v), 0);
}

Pourquoi chaque appareil sonne-t-il différemment ?

La variation vient de la façon dont chaque plateforme implémente l'arithmétique en virgule flottante IEEE 754 pour le traitement audio. Trois couches contribuent :

  • Architecture CPU et instructions SIMD : Les processeurs x86 utilisent des instructions vectorielles SSE2 ou AVX2 ; les processeurs ARM utilisent NEON. La même multiplication produit un bit de poids faible différent selon le jeu d'instructions utilisé. Des milliers de telles opérations sur un rendu de 5 000 échantillons produisent une somme différente de façon mesurable.
  • Pile audio du système d'exploitation et version du pilote : Chrome utilise une implémentation FFT interne différente sur macOS, Windows et Linux. Android 9 et Android 10 produisent des valeurs différentes sur le même appareil physique parce qu'une mise à jour du système d'exploitation a modifié le pipeline de traitement audio.
  • Divergence des moteurs de navigateur : Blink, WebKit et Gecko partagent des racines dans la base de code WebKit 2011 de Google mais ont accumulé plus d'une décennie de modifications indépendantes à leur code de traitement audio. Firefox retourne une valeur différente de Chrome sur le même matériel macOS.

Quelle est l'unicité d'une empreinte audio ?

RésultatValeurSource
Entropie de l'empreinte audio (isolation)~4,8 bitsarXiv 2107.14201 (2021)
Entropie canvas fingerprinting (pour comparaison)~5,7 bitsEFF Cover Your Tracks
Sites parmi les 100k Alexa utilisant des scripts de fingerprinting~10 %Étude académique 2021
Précision combinée (100+ signaux dont audio)jusqu'à 99,6 %Fingerprint.com
Contournement de la protection bruit Safari 17 par moyenne d'échantillons40 000 échantillonsFingerprint.com, 2023

Qui utilise l'audio fingerprinting dans le monde réel ?

Plateformes de détection de fraude

La prévention de la fraude est le cas d'usage légitime dominant. Des plateformes comme Fingerprint.com, DataDome, ThreatMetrix et Sift utilisent l'audio fingerprinting comme l'un des nombreux signaux pour détecter les prises de contrôle de comptes, le credential stuffing et le trafic de bots.

Réseaux publicitaires inter-sites

Avec la suppression des cookies tiers dans les grands navigateurs, les sociétés ad-tech ont accéléré leurs investissements dans le fingerprinting pour la résolution d'identité. L'audio fingerprinting est attrayant car il ne nécessite aucun stockage — ce qui signifie qu'il échappe techniquement au libellé originel de l'article 5(3) de la directive ePrivacy sur les cookies, bien que les régulateurs européens le classent désormais explicitement comme nécessitant un consentement.

Contournement des paywalls

Les éditeurs utilisent l'audio fingerprinting pour identifier les utilisateurs qui suppriment leurs cookies pour contourner les limites d'articles. Comme l'empreinte est calculée à partir du matériel plutôt que des données stockées, elle persiste à travers la suppression des cookies et les sessions de navigation privée.

L'audio fingerprinting est-il légal ? Que dit le RGPD ?

La situation juridique s'est considérablement durcie depuis 2020. Selon le RGPD, une empreinte audio qui peut identifier un individu constitue une donnée personnelle au sens de l'article 4, indépendamment du fait qu'un nom y soit attaché. La CNIL a statué en 2020 que le canvas fingerprinting est "équivalent à un cookie" et a sanctionné une entreprise pour l'avoir utilisé sans consentement. Les mêmes principes s'appliquent à l'audio fingerprinting. Pour une utilisation publicitaire, le consentement est requis dans toute l'UE.

La détection de fraude peut se qualifier au titre de l'intérêt légitime de l'article 6(1)(f) — mais uniquement lorsque c'est strictement nécessaire, divulgué dans la politique de confidentialité et non utilisé à des fins de marketing secondaire.

Comment se protéger de l'audio fingerprinting

  • Tor Browser (protection maximale) : Tor désactive entièrement l'API Web Audio (dom.webaudio.enabled = false). Rien à empreinter. La contrepartie est que tout site utilisant légitimement Web Audio — apps musicales, médias interactifs, jeux — cessera de fonctionner.
  • Brave Browser — Farbling (meilleur équilibre pour l'usage quotidien) : Le Farbling de Brave multiplie les valeurs du buffer audio par un infime facteur aléatoire dérivé d'une graine par session et par site. La perturbation est cohérente dans une session pour que la lecture audio fonctionne normalement, mais elle change entre sessions et diffère entre sites.
  • Firefox privacy.resistFingerprinting : Ce paramètre dans about:config fait retourner à Firefox des valeurs audio uniformes partagées par tous les utilisateurs avec le même paramètre. Non activé par défaut et peut causer des problèmes de compatibilité.
  • Safari 17+ Navigation privée : Safari injecte un petit bruit (magnitude 0,001) dans les valeurs du buffer audio. C'est la protection la plus faible — Fingerprint.com a démontré un contournement en faisant la moyenne de 40 000 échantillons rendus.
  • Mode navigation privée standard — aucune protection : Chrome, Firefox et Edge en mode incognito retournent des empreintes audio identiques au mode normal. Vérifiez vos autres signaux exposés sur whatsmy.fyi.

Foire aux questions

L'audio fingerprinting utilise-t-il mon microphone ?

Non. L'audio fingerprinting utilise l'API OfflineAudioContext, qui rend l'audio entièrement en mémoire sans accéder à aucun périphérique d'entrée. Il ne nécessite aucune permission, ne produit aucun son et n'apparaît nulle part dans les invites ou indicateurs d'autorisation du navigateur.

Fonctionne-t-il en navigation privée ?

Oui, complètement. La navigation privée empêche votre navigateur d'enregistrer l'historique, les cookies et les données locales — mais l'empreinte audio est calculée à partir des caractéristiques matérielles et logicielles, pas des données stockées. Votre CPU et votre pile audio du système d'exploitation se comportent de façon identique en mode navigation privée.

Un VPN peut-il protéger contre l'audio fingerprinting ?

Non. Un VPN change votre adresse IP et chiffre votre trafic, mais n'a aucun effet sur la façon dont votre navigateur traite les mathématiques audio en virgule flottante. L'empreinte audio est dérivée entièrement de votre matériel et logiciel local. Utilisez Brave Browser ou Firefox avec privacy.resistFingerprinting pour une protection. Vérifiez si votre VPN masque bien votre IP sur whatsmy.fyi.

L'audio fingerprinting est-il plus ou moins précis que le WebGL fingerprinting ?

Le WebGL fingerprinting produit une entropie plus élevée — il peut exposer votre modèle GPU exact, la version du pilote et la liste des extensions supportées. L'audio fingerprinting produit une entropie plus faible (~4,8 bits) mais excelle en stabilité dans le temps. En pratique, les systèmes commerciaux combinent les deux : WebGL pour l'identification initiale haute résolution, l'audio comme ancre stable qui empêche l'empreinte de se dégrader. Lisez le guide sur le WebGL fingerprinting pour voir comment le côté GPU fonctionne.

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

Audio Fingerprinting : comment AudioContext piste votre navigateur | whatsmy.fyi