Le touch fingerprinting est une technique de pistage qui exploite les API Web liées aux écrans tactiles pour identifier silencieusement votre type d'appareil. En lisant navigator.maxTouchPoints, en testant le constructeur TouchEvent et en inspectant le media query CSS pointer, les scripts peuvent distinguer un desktop, un smartphone ou une tablette — sans aucun cookie, sans aucune permission. Découvrez ce que votre navigateur révèle sur whatsmy.fyi.
En résumé
Trois signaux JavaScript exposent votre capacité tactile au navigateur : navigator.maxTouchPoints (0 = desktop, 5 = iPhone, 10 = Surface Pro), le constructeur TouchEvent (présent sur les appareils tactiles Gecko/WebKit) et le media query CSS pointer: coarse (qui s'active sur les écrans tactiles). Combinés avec d'autres signaux matériels, ils forment un identifiant stable sans cookies. La meilleure protection reste Tor Browser, qui normalise ces valeurs pour tous ses utilisateurs.
Qu'est-ce que le touch fingerprinting ?
Le touch fingerprinting est l'utilisation des informations liées aux capacités tactiles d'un appareil, exposées par les API du navigateur, pour contribuer à un identifiant de périphérique unique. Contrairement au fingerprinting par canvas ou WebGL qui exploite le rendu graphique, le touch fingerprinting s'appuie sur la distinction fondamentale entre appareils à pointeur précis (souris/trackpad) et appareils à pointeur grossier (doigt sur écran tactile).
Le touch fingerprinting s'inscrit dans la technique plus large du browser fingerprinting, qui assemble des dizaines de signaux en un seul identifiant persistant. Sa valeur réside moins dans son entropie individuelle que dans sa capacité à segmenter précisément les catégories d'appareils, réduisant l'espace de recherche pour les traceurs.
Les trois signaux du touch fingerprinting
Signal 1 — navigator.maxTouchPoints
navigator.maxTouchPoints est une propriété en lecture seule définie dans la spécification Pointer Events du W3C. Elle retourne le nombre maximum de points de contact simultanés que l'écran peut détecter. Sa valeur est révélatrice : 0 pour un desktop sans écran tactile, 5 pour la plupart des smartphones (iPhone, Pixel), 10 pour les tablettes et appareils hybrides (Surface Pro, iPad).
// Détection du type d'appareil via maxTouchPoints
const points = navigator.maxTouchPoints;
// → 0 : desktop (Windows/Mac/Linux sans écran tactile)
// → 5 : iPhone, Android standard
// → 10 : iPad, Surface Pro, Chromebook tactile
// → 1 : rare (certains trackpads Windows anciens)Signal 2 — Présence du constructeur TouchEvent
Le test de l'existence du constructeur TouchEvent révèle si le moteur du navigateur a compilé le support tactile. Cette vérification produit des résultats différents selon les moteurs : Chromium expose le constructeur sur les plateformes macOS même sur les Mac sans écran tactile, créant une divergence comportementale exploitable par les traceurs.
// Test de support TouchEvent natif
const supportsTouchEvent = 'TouchEvent' in window;
// → true : iOS, Android, Chromium sur macOS
// → false : Firefox desktop, Safari sur macOS
// Méthode alternative
const isTouchDevice = navigator.maxTouchPoints > 0 ||
'ontouchstart' in window;Signal 3 — Media query CSS pointer
Le media query pointer du W3C distingue trois types de pointeurs : none (aucun pointeur), coarse (pointeur imprécis, typiquement un doigt) et fine (pointeur précis, typiquement une souris). Les Surface Pro et appareils hybrides connectés à une souris retournent fine malgré leur écran tactile, ajoutant une couche de complexité exploitable.
// Lecture du type de pointeur principal
const pointerType = window.matchMedia('(pointer: coarse)').matches
? 'coarse' // écran tactile (smartphone, tablette)
: window.matchMedia('(pointer: fine)').matches
? 'fine' // souris, trackpad
: 'none'; // TV, interface vocaleTableau de fingerprinting tactile par appareil
| Appareil | maxTouchPoints | pointer CSS | TouchEvent |
|---|---|---|---|
| Desktop Windows/Linux (sans tactile) | 0 | fine | false (Gecko) / true (Chromium) |
| Mac sans Touch Bar | 0 | fine | false (Safari/Firefox) / true (Chrome macOS) |
| iPhone / Android | 5 | coarse | true |
| iPad / tablette Android | 5 ou 10 | coarse | true |
| Surface Pro (avec souris) | 10 | fine | true |
| Chromebook tactile | 10 | coarse | true |
Comment les traceurs combinent ces signaux
Aucun de ces trois signaux n'est suffisamment unique pour vous identifier seul. Leur valeur pour les traceurs réside dans la segmentation : un script qui connaît votre maxTouchPoints, votre type de pointer et votre résultat TouchEvent peut vous classer dans une catégorie d'appareils très précise. Cette catégorie est ensuite croisée avec le hash canvas, les données WebGL et le fingerprinting d'écran pour produire un identifiant global.
// Collecteur minimal d'empreinte tactile
function getTouchFingerprint() {
return {
maxTouchPoints: navigator.maxTouchPoints,
touchEventSupported: 'TouchEvent' in window,
pointerType: window.matchMedia('(pointer: coarse)').matches
? 'coarse'
: window.matchMedia('(pointer: fine)').matches ? 'fine' : 'none',
anyHover: window.matchMedia('(any-hover: hover)').matches,
};
}RGPD et touch fingerprinting
Selon le RGPD, collecter des caractéristiques matérielles pour construire un identifiant d'appareil persistant constitue un traitement de données personnelles lorsque cet identifiant peut être lié à un individu. La CNIL a précisé que le browser fingerprinting à des fins de pistage publicitaire requiert un consentement explicite, même lorsque aucun cookie n'est déposé. Les exemptions d'intérêt légitime s'appliquent uniquement aux cas d'usage étroitement définis de prévention de la fraude ou de sécurité informatique.
Comment se protéger du touch fingerprinting
- Tor Browser (protection maximale) : Tor Browser normalise
navigator.maxTouchPointset les API tactiles connexes pour tous ses utilisateurs, rendant impossible la distinction individuelle par ces signaux. - Brave Browser (recommandé pour l'usage quotidien) : Brave applique une randomisation légère des signaux de fingerprinting par site et par session, réduisant l'efficacité du pistage inter-sites sans casser la navigation normale.
- Firefox avec
privacy.resistFingerprinting: Ce paramètre dansabout:confignormalisemaxTouchPointset d'autres signaux matériels, réduisant simultanément des dizaines de surfaces de fingerprinting. - Les limites des VPN : Un VPN masque votre adresse IP mais n'a aucun effet sur les valeurs matérielles rapportées par votre navigateur. Vérifiez ce que votre configuration expose réellement sur whatsmy.fyi.
Foire aux questions
Un desktop peut-il avoir un maxTouchPoints supérieur à 0 ?
Oui. Les desktops et laptops équipés d'écrans tactiles (Surface Studio, certains Dell XPS) retournent un maxTouchPoints de 10. Inversement, Chromium sur macOS expose le constructeur TouchEvent même sur les Mac sans aucune capacité tactile, créant une incohérence caractéristique exploitable par les traceurs.
Le mode privé cache-t-il mes capacités tactiles ?
Non. La navigation privée empêche l'écriture de l'historique et des cookies sur disque, mais elle ne modifie pas les valeurs matérielles rapportées par le navigateur. navigator.maxTouchPoints retourne la même valeur en fenêtre privée qu'en fenêtre normale.
Pourquoi les iPhones retournent-ils 5 et non 10 ?
Apple limite maxTouchPoints à 5 sur iOS pour refléter le nombre maximum de points de contact que l'interface Multi-Touch d'iOS prend en charge simultanément. Les iPads retournent également 5, bien que certains modèles récents retournent 10 selon la version d'iOS et la génération d'appareil.
Le touch fingerprinting fonctionne-t-il sur les appareils hybrides ?
Oui, et c'est là que le signal devient le plus intéressant pour les traceurs. Un Surface Pro connecté à une souris externe retourne maxTouchPoints: 10 (indiquant un écran tactile) mais pointer: fine (indiquant un pointeur précis). Cette combinaison inhabituelle identifie précisément les appareils hybrides Microsoft dans l'espace des empreintes.
Articles connexes
- Qu'est-ce que le browser fingerprinting ? — le guide complet de tous les signaux de fingerprinting combinés
- Qu'est-ce que le screen fingerprinting ? — résolution et densité de pixels comme identifiant d'appareil
- navigator.platform : comment les sites détectent votre OS — l'API qui révèle votre système d'exploitation sans permission
- Qu'est-ce que le CPU fingerprinting ? — comment hardwareConcurrency expose votre nombre de cœurs



