Le screen fingerprinting lit la résolution de votre écran, sa densité de pixels et sa profondeur de couleur via les API de navigateur intégrées pour construire un identifiant stable qui persiste entre les sessions, les fenêtres privées et les connexions VPN. Voyez exactement ce que votre écran expose dès maintenant sur whatsmy.fyi.
En résumé
Le screen fingerprinting combine des valeurs de window.screen et window.devicePixelRatio — votre résolution d'affichage, le viewport disponible, la profondeur de couleur et le ratio de densité de pixels — pour créer un identifiant de périphérique persistant. Seul, il contribue 3 à 5 bits d'entropie ; combiné avec d'autres signaux de fingerprinting, il devient un tracker fiable inter-sessions qu'aucune suppression de cookies ou navigation privée ne peut contrer.
Qu'est-ce que le screen fingerprinting ?
Le screen fingerprinting est une technique de pistage passif qui récolte les caractéristiques d'affichage exposées par l' API Screen et la propriété window.devicePixelRatio. Ces API ont été conçues pour aider les développeurs web à créer des mises en page adaptatives et à dimensionner correctement les images pour les écrans haute densité — mais elles transmettent simultanément aux scripts de fingerprinting une description détaillée de votre moniteur physique et de votre configuration matérielle.
Contrairement au canvas ou au WebGL fingerprinting, le screen fingerprinting ne nécessite aucun rendu — les valeurs sont disponibles de façon synchrone, sans aucun calcul, dès le chargement d'une page. Une seule ligne de JavaScript suffit à lire le profil écran complet d'un appareil.
Le screen fingerprinting est un signal clé dans la famille plus large des techniques de browser fingerprinting. Il est routinièrement combiné avec les données GPU du WebGL fingerprinting, les données de pile audio de l' audio fingerprinting et les différences de rendu capturées par le canvas fingerprinting pour former un identifiant composite.
Comment fonctionne le screen fingerprinting ?
Chaque navigateur expose un ensemble de propriétés en lecture seule décrivant l'affichage physique et la relation entre les pixels CSS et les pixels physiques. Les scripts de fingerprinting les collectent tous en une seule passe.
Les propriétés fondamentales
screen.width / screen.height — Les dimensions totales en pixels de l'affichage physique, rapportées en pixels CSS. Un moniteur 1920×1080 à 100 % de mise à l'échelle rapporte 1920 × 1080. Le même moniteur à 125 % de mise à l'échelle Windows rapporte 1536 × 864, révélant immédiatement le paramètre de mise à l'échelle du système d'exploitation.
screen.availWidth / screen.availHeight — La partie de l'écran disponible pour les fenêtres de navigateur, après soustraction des barres des tâches, docks et UI système. Sur une machine Windows 1920×1080 avec une barre des tâches de 40 px en bas, availHeight est 1040. Cela révèle quel OS vous utilisez et si votre barre des tâches est visible, épinglée ou en masquage auto.
window.devicePixelRatio — Le ratio de pixels d'affichage physiques aux pixels CSS. Un moniteur 1080p standard a un ratio de 1. Un MacBook Pro Retina a 2. Un iMac 5K 27 pouces a également 2. Un flagship Android moderne à 3× de mise à l'échelle a 3. Cette seule valeur distingue fiablement les appareils HiDPI des écrans standard.
screen.colorDepth / screen.pixelDepth — Le nombre de bits utilisés pour représenter la couleur de chaque pixel. En pratique c'est 24 sur pratiquement tous les appareils modernes, mais les systèmes hérités et certaines configurations de bureau à distance retournent 16 ou 8.
screen.orientation.type — Indique si l'affichage est en orientation portrait ou paysage. Sur un bureau c'est toujours landscape-primary ; sur mobile ça change.
// Screen fingerprinting — toutes les valeurs sont synchrones, aucun rendu nécessaire
function getScreenFingerprint() {
const dpr = window.devicePixelRatio;
return {
screenWidth: window.screen.width,
screenHeight: window.screen.height,
availWidth: window.screen.availWidth,
availHeight: window.screen.availHeight,
devicePixelRatio: dpr,
physicalWidth: Math.round(window.screen.width * dpr),
physicalHeight: Math.round(window.screen.height * dpr),
colorDepth: window.screen.colorDepth,
pixelDepth: window.screen.pixelDepth,
innerWidth: window.innerWidth,
innerHeight: window.innerHeight,
orientation: screen.orientation?.type ?? 'unknown',
};
}
// Exemple — MacBook Pro 14 pouces (2023), Chrome, plein écran
// {
// screenWidth: 1512, screenHeight: 982,
// availWidth: 1512, availHeight: 932, ← barre de menu macOS 50px
// devicePixelRatio: 2,
// physicalWidth: 3024, physicalHeight: 1964,
// colorDepth: 24, pixelDepth: 24,
// innerWidth: 1512, innerHeight: 879,
// orientation: 'landscape-primary'
// }Quelle est l'unicité d'une empreinte écran ?
| Signal / Résultat | Valeur | Source |
|---|---|---|
| Entropie de la résolution seule | ~3,3 bits | EFF Cover Your Tracks |
| Entropie avec devicePixelRatio ajouté | ~4,8 bits | BrowserLeaks |
| Résolution la plus courante mondialement (1920×1080) | ~24 % des utilisateurs | Statcounter GlobalStats, 2025 |
| Utilisateurs avec profil écran unique (résolution + DPR + mise à l'échelle OS) | ~18 % | Fingerprint.com |
| Valeurs distinctes de devicePixelRatio observées | 1, 1,25, 1,5, 1,75, 2, 2,5, 3, 3,5 | Jeu de données BrowserLeaks |
| Précision combinée (écran + canvas + WebGL) | >95 % | Fingerprint.com Pro |
Screen fingerprinting et droit — RGPD et CNIL
Le W3C Fingerprinting Guidance liste explicitement screen.width, screen.height et devicePixelRatio comme vecteurs de fingerprinting. Selon le RGPD, les données de fingerprinting qui peuvent raisonnablement être liées à un individu constituent un traitement de données personnelles, nécessitant soit un consentement éclairé soit une justification d'intérêt légitime. La CNIL et l'ICO britannique ont toutes deux déclaré que le fingerprinting à des fins publicitaires requiert un consentement explicite opt-in.
Comment se protéger du screen fingerprinting
- Tor Browser (protection maximale) : Tor normalise toutes les valeurs d'écran — il rapporte une résolution standardisée de
1000×900(ou similaire) indépendamment de votre affichage réel, et fixedevicePixelRatioà1. Chaque utilisateur Tor paraît identique aux scripts de fingerprinting. - Firefox avec
privacy.resistFingerprinting(RFP) : Firefox arrondit les dimensions d'écran à une valeur standardisée et plafonnedevicePixelRatioà1. Les tailles de viewport sont arrondies au palier de 200×100 pixels le plus proche. - Brave Browser (recommandé pour l'usage quotidien) : Brave applique sa technique Farbling aux données d'écran — il introduit une petite valeur de bruit unique par session et par origine dans
screen.width,screen.heightetdevicePixelRatio. Votre empreinte change à chaque session et diffère entre sites. - Éviter la mise à l'échelle OS non standard : Les utilisateurs Windows qui définissent une mise à l'échelle à 125 % ou 150 % produisent des valeurs
screenWidthinhabituelles (ex. :1536depuis un moniteur 1920 px) qui sont plus rares et donc plus identifiantes. - VPN — utile mais insuffisant : Un VPN masque votre adresse IP mais n'a aucun effet sur vos propriétés d'écran. Vérifiez ce que révèle votre IP réelle sur whatsmy.fyi.
Foire aux questions
Le screen fingerprinting fonctionne-t-il en navigation privée ?
Oui. La navigation privée ne change pas votre affichage physique. Votre screen.width, screen.height et devicePixelRatio sont identiques en navigation privée et en fenêtre normale. Seuls les navigateurs avec une normalisation d'affichage active — Tor Browser ou Firefox avec privacy.resistFingerprinting — produisent des valeurs différentes.
Le changement de niveau de zoom du navigateur affecte-t-il mon empreinte écran ?
Le zoom du navigateur affecte window.devicePixelRatio dans certains navigateurs — Chrome, par exemple, multiplie le DPR matériel de base par le facteur de zoom, donc un zoom à 125 % sur un affichage 1080p standard produit un devicePixelRatio de 1,25 au lieu de 1. Cela peut augmenter l'entropie si votre niveau de zoom est non standard.
Un site web peut-il détecter mon écran physique même si je redimensionne la fenêtre ?
Oui. screen.width et screen.height reflètent toujours les dimensions complètes de l'affichage physique — ils ne changent pas quand vous redimensionnez la fenêtre du navigateur. window.innerWidth et window.innerHeight changent avec la taille de la fenêtre, mais les valeurs screen.* sont fixées au matériel.
Articles connexes
- Qu'est-ce que le browser fingerprinting ? Comment les sites vous tracent sans cookies — le guide complet de tous les signaux de fingerprinting
- Qu'est-ce que le canvas fingerprinting ? — comment le rendu canvas caché révèle votre GPU et votre pile de polices
- Qu'est-ce que le WebGL fingerprinting ? — comment l'API graphique 3D expose directement votre fabricant et modèle GPU
- Qu'est-ce que le color depth fingerprinting ? — comment screen.colorDepth contribue à votre empreinte



