Le color depth fingerprinting lit screen.colorDepth et screen.pixelDepth — deux propriétés du navigateur qui révèlent combien de bits par pixel votre écran utilise — et intègre cette valeur dans votre profil de navigateur unique. Une ligne de JavaScript suffit, aucune permission n'est requise, et la technique fonctionne dans tous les navigateurs depuis 2015. Vérifiez ce que votre navigateur révèle sur whatsmy.fyi.
En résumé
screen.colorDepth retourne un entier — presque toujours 24 ou 32 — qui décrit combien de bits votre écran utilise pour représenter la couleur de chaque pixel. Seul, il apporte une entropie modeste (~0,87 bits), mais combiné avec la résolution d'écran, le ratio de pixels, la concurrence matérielle, le fuseau horaire et les données GPU, il contribue à une empreinte qui atteint plus de 99 % de précision pour identifier les appareils individuels parmi des millions de profils. Contrairement aux cookies, il ne peut pas être supprimé, bloqué par les bandeaux de consentement, ni effacé avec l'historique du navigateur.
Qu'est-ce que le color depth fingerprinting ?
Le color depth fingerprinting est l'une des techniques du browser fingerprinting — la collecte d'attributs du navigateur et du matériel pour identifier un appareil sans rien stocker sur lui. Chaque navigateur expose deux propriétés étroitement liées via l'interface Screen :
screen.colorDepth— le nombre de bits utilisés pour représenter une valeur de couleur unique dans le tampon de couleur du périphérique de sortie (l'écran physique).screen.pixelDepth— la profondeur de bits de l'écran. Dans tous les navigateurs modernes, cette propriété retourne la même valeur quecolorDepth— elles sont effectivement identiques.
Les deux propriétés font partie de la spécification CSSOM View Module et sont disponibles depuis juillet 2015. Elles sont en lecture seule, ne nécessitent aucun geste utilisateur ni aucune invite de permission, et sont accessibles à chaque chargement de page. Contrairement au fingerprinting canvas ou WebGL qui nécessitent des opérations de rendu complexes, la lecture de la profondeur de couleur est instantanée et réussit toujours.
Comment fonctionne le color depth fingerprinting ?
Un script de fingerprinting lit la valeur en une ligne, puis la combine avec des dizaines d'autres attributs pour construire un profil d'appareil composite.
// Lecture de la profondeur de couleur — une ligne, sans permission
const colorDepth = screen.colorDepth; // ex. 24 ou 32
const pixelDepth = screen.pixelDepth; // identique sur les navigateurs modernes
// Valeurs courantes retournées sur les appareils réels :
// 24 — True Color standard (16,7 millions de couleurs)
// 30 — Deep Color / panneaux HDR (1 milliard de couleurs)
// 32 — True Color + canal alpha 8 bits (fréquent sur Windows)
// Comment un traceur le combine avec d'autres signaux d'écran :
const screenProfile = {
colorDepth: screen.colorDepth,
pixelDepth: screen.pixelDepth,
width: screen.width,
height: screen.height,
availWidth: screen.availWidth,
availHeight: screen.availHeight,
devicePixelRatio: window.devicePixelRatio,
};
// Cet objet de 7 valeurs produit des millions de combinaisons uniquesLa valeur elle-même est entièrement déterminée par le matériel d'affichage physique et la configuration du système d'exploitation. Un moniteur 1080p standard rapporte 24 ; un PC Windows avec un pilote d'affichage 32 bits rapporte 32 ; un panneau HDR peut rapporter 30. Ces valeurs étant dérivées du matériel, elles sont constantes d'une session à l'autre, d'un réseau à l'autre et d'une fenêtre privée à l'autre sur le même appareil.
Pourquoi colorDepth et pixelDepth sont presque toujours identiques
Historiquement, colorDepth désignait uniquement la composante couleur (canaux rouge, vert, bleu), tandis que pixelDepth incluait les bits supplémentaires comme le canal alpha. En pratique, toutes les implémentations majeures de navigateurs ont convergé pour retourner le même entier pour les deux. Firefox et Safari retournent toujours 24, quelle que soit la profondeur matérielle réelle, même sur les écrans capables de Deep Color 30 bits. Chrome rapporte la valeur matérielle réelle — une différence subtilement identifiante que les systèmes de fingerprinting enregistrent aux côtés de la chaîne user-agent du navigateur.
Signal color depth : statistiques et entropie
| Signal / Résultat | Valeur | Source |
|---|---|---|
Entropie individuelle de screen.colorDepth | ~0,87 bits | Recherche Fingerprint.com |
| Valeur dominante sur les appareils modernes | 24 bits (True Color) | CSSOM / données de compatibilité navigateurs, 2025 |
| Unicité de l'empreinte combinée (33+ signaux dont color depth) | > 99 % | Recherche Fingerprint.com |
| Navigateurs à empreinte unique (base EFF, 1M+ échantillons) | 83,6 % | EFF Cover Your Tracks |
| Valeur rapportée par Firefox / Safari (quelle que soit la réalité) | Toujours 24 | MDN Browser Compatibility Data, 2025 |
| Valeur Chrome sur pilotes d'affichage Windows 32 bits | 32 | BrowserLeaks |
RGPD et color depth fingerprinting
Selon le RGPD, collecter des caractéristiques d'affichage pour construire un identifiant de périphérique persistant constitue un traitement de données personnelles lorsque cet identifiant peut être lié à un individu. La CNIL a statué que le browser fingerprinting à des fins publicitaires requiert un consentement éclairé. La profondeur de couleur, bien que signal à faible entropie individuelle, fait partie de l'ensemble des signaux soumis à cette obligation. Des exemptions d'intérêt légitime s'appliquent uniquement aux cas d'usage de détection de fraude ou de sécurité informatique strictement définis.
Comment se protéger du color depth fingerprinting
- Firefox avec
privacy.resistFingerprinting(recommandé) : Lorsque ce paramètre est activé dansabout:config, Firefox rapporte toujours 24 pourcolorDepthetpixelDepth, quelle que soit la réalité matérielle. Votre navigateur devient indiscernable de tout autre utilisateur Firefox avec le même réglage. - Tor Browser (anonymat maximal) : Tor Browser standardise toutes les valeurs d'écran — y compris la profondeur de couleur — de sorte que tous les utilisateurs Tor paraissent identiques. C'est la protection la plus forte disponible, avec des compromis de vitesse liés au réseau Tor.
- Brave Browser (recommandé pour l'usage quotidien) : Le système Farbling de Brave ne randomise pas la profondeur de couleur (entier à faible entropie), mais randomise agressivement les signaux à plus haute entropie comme les sorties canvas et WebGL, réduisant significativement la précision globale de l'empreinte.
- Comprendre les limites des mesures partielles : Masquer la profondeur de couleur seule a un impact minimal sur la vie privée — car sa valeur est à faible entropie et partagée par de nombreux utilisateurs. Une protection efficace nécessite de couvrir l'ensemble des signaux de fingerprinting simultanément. Vérifiez votre niveau d'identification actuel sur whatsmy.fyi.
Foire aux questions
Quelles valeurs screen.colorDepth retourne-t-il ?
En pratique, les valeurs rencontrées sur les appareils réels sont 24(True Color — la norme universelle depuis la fin des années 1990, 16,7 millions de couleurs), 32 (True Color avec canal alpha 8 bits, fréquent sur Windows avec certains pilotes d'affichage) et occasionnellement 30(Deep Color / panneaux HDR, 1,07 milliard de couleurs). Les valeurs de 8 ou 16 bits sont effectivement obsolètes sur le matériel moderne.
screen.colorDepth est-il différent de screen.pixelDepth ?
Techniquement oui, mais dans la pratique non. Toutes les implémentations de navigateurs réelles retournent aujourd'hui le même entier pour les deux. Les scripts de fingerprinting lisent généralement les deux pour confirmer la cohérence — une incohérence entre les deux valeurs est elle-même un signal suspect.
Le color depth fingerprinting fonctionne-t-il en navigation privée ?
Oui. La navigation privée empêche l'enregistrement des cookies, de l'historique et des données de formulaire sur disque — mais elle ne modifie pas votre matériel d'affichage ni les valeurs retournées par les propriétés de l'interface Screen. screen.colorDepth est identique en fenêtre privée et en fenêtre normale. Seuls les navigateurs avec standardisation active des empreintes (Firefox avec privacy.resistFingerprinting, Tor Browser) rapportent une valeur différente.
Un VPN modifie-t-il ma profondeur de couleur ?
Non. Un VPN change votre adresse IP visible et route votre trafic via un tunnel chiffré, mais il n'a aucun effet sur ce que votre navigateur rapporte pour screen.colorDepth. Cette valeur est lue directement depuis la configuration graphique de votre système d'exploitation, indépendante du routage réseau.
Un site peut-il détecter si j'usurpe screen.colorDepth ?
Les systèmes de fingerprinting sophistiqués peuvent détecter les incohérences. Si votre navigateur rapporte une profondeur de couleur de 24 bits mais que votre empreinte canvas encode des motifs de couleur cohérents avec un matériel 32 bits, la discordance elle-même devient un signal — et peut ironiquement vous rendre plus identifiable. L'usurpation efficace nécessite des valeurs fictives cohérentes sur tous les signaux connexes simultanément, ce qui explique pourquoi la standardisation au niveau du navigateur (Tor, Firefox resistFingerprinting) est plus robuste que les extensions.
Articles connexes
- Qu'est-ce que le screen fingerprinting ? — comment screen.width, screen.height et devicePixelRatio combinent pour identifier votre appareil
- Qu'est-ce que le canvas fingerprinting ? — comment les différences de rendu GPU produisent un identifiant unique au pixel près
- Qu'est-ce que le browser fingerprinting ? — le guide complet de tous les signaux de fingerprinting combinés en un seul profil
- Qu'est-ce que le WebGL fingerprinting ? — comment l'API graphique 3D expose votre fabricant, modèle et version de pilote GPU


