Le "browser fingerprinting" est une méthode qui consiste, comme son nom l'indique, à générer une "empreinte" unique basée sur les caractéristiques de votre machine et de votre navigateur, le tout sans jamais rien stocker.

Comment ça marche ?

Grâce à un bout de code Javascript présent dans la page, le site en question va essayer de récupérer un maximum d'informations mises à disposition par le navigateur.

Mais quelles informations me direz-vous ?

En voici une liste non-exhaustive :

  • La langue par défaut
  • La timezone
  • Le user-agent
  • La liste des polices installées
  • Les plugins installés
  • La résolution de l'écran
  • Le ratio des pixels
  • etc...

Certaines librairies utilisent des dizaines de caractéristiques différentes, et certains sites utilisent aussi des informations récupérées par le serveur telles que l'adresse IP, l'adresse MAC, etc...

Il est parfois possible d'arriver à 99.5% de précision d'identification en quelques millisecondes, vous pouvez par exemple tester la librairie fingerprintjs dans sa version 2, disponible sur Github : https://github.com/fingerprintjs/fingerprintjs2

fingerprintjs/fingerprintjs2
Modern & flexible browser fingerprinting library. Contribute to fingerprintjs/fingerprintjs2 development by creating an account on GitHub.

Dans quel but ?

Vous connaissez certainement la méthode de tracking la plus courante qui consiste à déposer un cookie sur la machine du visiteur et de récupérer sa valeur entre chaque visite.

Encore mieux, il est possible d'importer un script d'un domaine particulier (chaque cookie est relié à un domaine) sur plusieurs sites pour tracker la navigation du visiteur entre ces sites, c'est le principe de Google Analytics.

Mais que se passe-t'il si l'utilisateur supprime ce cookie ? S'il passe en navigation privée ou qu'il bloque le chargement des scripts tiers comme certains AdBlocker ?

Le tracking devient alors impossible.

Enfin, jusqu'à ce que le fingerprinting s'en mêle, car grâce à (ou à cause de) lui, il est possible d'identifier un utilisateur sans rien stocker sur sa machine, en toute discrétion, même si il change de navigateur ou passe en navigation privée. L'algorithme de fingerprinting devra simplement recalculer l'identifiant unique, et pourra le comparer aux sessions précédentes.

Les deux principales utilisations de cette méthode sont le tracking publicitaire (j'en reparle à la fin de l'article) et la détection de fraude.

Par exemple, une plateforme ne voulant autoriser qu'un seul compte par utilisateur pourra comparer l'empreinte d'un visiteur lors de la création du compte pour vérifier qu'il n'est pas déjà inscrit avec un autre email.

Comment s'en protéger

Se protéger de ce système de traçage est plus complexe que de bloquer les cookies ou les scripts tiers car tout le code est en local sur le site, il faudrait donc une analyse complète du code du site afin de déceler un algorithme de fingerprinting.

Heureusement, certains éditeurs de logiciels arrivent à trouver des solutions partielles, comme cette extension pour le navigateur Firefox, censée empêcher le fingerprinting : https://www.presse-citron.net/firefox-de-nouvelles-fonctionnalites-anti-fingerprinting-pour-proteger-votre-vie-privee/

Il existe aussi une initiative appelée "Am I Unique ?" qui permet d'analyser votre navigateur de manière à découvrir à quelle point votre navigateur peut être pisté ou non : https://amiunique.org

AmIUnique
Fingerprint collecting platform

Cette pratique est-elle autorisée par la RGPD ?

Le but d'une réglementation comme la RGPD est de rester valable pour un maximum de cas malgré l'évolution rapide des technologies.

C'est pourquoi vous ne verrez pas de mention du "fingerprinting" dans le texte de loi, mais plus globalement de toutes informations personnelles permettant de traquer un utilisateur.

Oui les caractéristiques de votre navigateur peuvent être considérées comme des données personnelles si elles sont recoupées entre elles.

En résumé, le fingerprinting est autorisé à condition d'avoir un consentement explicite de l'utilisateur ou bien de ne pas stocker le résultat de l'algorithme pour l'utiliser à seule fin de détection de fraudes par exemple.

En tout cas en pratique, rien ne vous empêche d'expérimenter de votre côté pour comprendre son fonctionnement !

Pour plus d'informations sur le fingerprinting et la RGPD, je vous mets le lien d'un article de l'Electronic Frontier Foundation (en anglais) : https://www.eff.org/deeplinks/2018/06/gdpr-and-browser-fingerprinting-how-it-changes-game-sneakiest-web-trackers

The GDPR and Browser Fingerprinting: How It Changes the Game for the Sneakiest Web Trackers
Browser fingerprinting is on a collision course with privacy regulations. For almost a decade, EFF has been raising awareness about this tracking technique with projects like Panopticlick. Compared to more well-known tracking “cookies,” browser fingerprinting is trickier for users and browser...

À bientôt sur le blog !


À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage de d'expériences et de connaissances.

Aujourd'hui je suis aussi coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter "JAW : de Junior à Warrior" pour recevoir 1 conseil par semaine par email.


Photo par George Prentzas sur Unsplash