Saltar al contenido principal
fr/blog/obscura/research/uncontrollable/behavioral-biometrics/

obscura/research/uncontrollable/behavioral-biometrics

6 min de lecture

Catégorie : Comportement Utilisateur / Interaction Humain-Machine


1. Description

La biométrie comportementale mesure comment un utilisateur interagit avec son appareil. Contrairement aux empreintes matérielles, celles-ci sont dynamiques — elles varient avec l'humeur, le contexte, la fatigue et la pratique. Cependant, elles sont aussi hautement individuelles : la dynamique de frappe seule peut identifier un utilisateur avec une précision >95% dans des environnements contrôlés.


2. Vecteurs

2.1 Dynamique de Frappe

document.addEventListener('keydown', event => {
  console.log({
    key: event.key,
    timestamp: performance.now(),
    code: event.code,
    location: event.location
  })
})
document.addEventListener('keyup', event => {
  console.log({
    key: event.key,
    timestamp: performance.now(),
    holdTime: performance.now() - keydownTime, // Durée de maintien de la touche
  })
})

Caractéristiques mesurables :

  • Temps de maintien de la touche : Durée entre keydown et keyup (typiquement 50-150ms)
  • Intervalle inter-touche : Temps entre les pressions de touches successives
  • Pression de la touche (sur appareils supportés) : Pression tactile pour chaque touche
  • Motifs d'erreur : Utilisation de la touche retour, comportement de correction
  • Vitesse de frappe : Caractères par minute (varie selon la tâche)
  • Rythme : Motifs cohérents d'intervalles longs/courts

Entropie : ~15-25 bits (hautement individuelle)

Stabilité : Modérée — affectée par la fatigue, l'émotion, l'appareil, le type de clavier

2.2 Motifs de Mouvement de Souris

document.addEventListener('mousemove', event => {
  console.log({
    x: event.clientX,
    y: event.clientY,
    timestamp: performance.now(),
    button: event.buttons,
    movementX: event.movementX,
    movementY: event.movementY
  })
})

Caractéristiques mesurables :

  • Trajectoire : Courbure du chemin, rectitude, dépassement
  • Profil vitesse-accélération : Comment la vitesse change pendant le mouvement
  • Comportement de clic : Temps entre enfoncement et relâchement, précision de position
  • Motifs de survol : Où la souris fait une pause
  • Couplage de défilement : Mouvement de souris pendant le défilement

Entropie : ~10-20 bits (modérément individuelle)

Stabilité : Faible-Modérée — affectée par la surface, l'appareil, la tâche

2.3 Motifs de Défilement

document.addEventListener('scroll', event => {
  console.log({
    scrollY: window.scrollY,
    timestamp: performance.now(),
    deltaMode: event.deltaMode,
    deltaY: event.deltaY
  })
})

Caractéristiques mesurables :

  • Vitesse de défilement : Pixels par événement de défilement
  • Accélération : Comment la vitesse de défilement change
  • Fréquence de pause : À quelle fréquence le défilement s'arrête
  • Rythme : Défilement régulier vs par salves
  • Modèle lire-puis-défiler : Temps entre l'arrêt du défilement et le défilement suivant

Entropie : ~8-12 bits

Stabilité : Faible — dépendante de la tâche (article vs résultats de recherche vs réseaux sociaux)

2.4 Gestes Tactiles (Mobile)

element.addEventListener('touchstart', e => { /* début toucher */ })
element.addEventListener('touchmove', e => { /* trajectoire toucher */ })
element.addEventListener('touchend', e => { /* fin toucher, vitesse */ })

Mesurable :

  • Angle, vitesse, accélération du balayage
  • Pression d'appui (sur appareils supportés)
  • Motifs de pincement-zoom
  • Coordination multi-doigts
  • Taille de contact (zone de contact du doigt)

Entropie : ~12-18 bits

Stabilité : Modérée — affectée par l'appareil, la prise en main, la posture


3. Forces de l'Attaquant

Force Explication
Hautement individuelle La dynamique de frappe peut identifier un utilisateur avec >95% de précision
Continue Pas une vérification ponctuelle — surveillance continue
Difficile à imiter Falsifier le comportement d'une autre personne est extrêmement difficile
Aucune autorisation requise Les événements souris/clavier/tactiles sont lisibles depuis JS
Passif L'utilisateur ne peut pas savoir qu'il est mesuré

4. Faiblesses de l'Attaquant

Faiblesse Explication Exploitable ?
Nécessite une interaction Ne peut pas empreinter sans entrée utilisateur Limiter l'interaction
Haute variance Change avec l'humeur, la fatigue, le contexte Réduit la fiabilité
Long temps de collecte Nécessite des minutes de données pour la précision Les sessions courtes sont sûres
ML requis Le simple hachage ne fonctionne pas pour les données comportementales Non
Dépendant de la tâche Pas cohérent entre différents sites web Corrélation limitée
Facilement perturbé L'interférence de timing JS brise la mesure Oui

5. Détection de la Manipulation

Technique Comment Ça Marche
Écouteurs d'événements manquants Aucun événement souris/clavier capturé est suspect
Motifs de bruit injecté Données de timing avec des motifs inhabituels (trop réguliers, trop aléatoires)
Qualité du signal Caractéristiques de micro-timing attendues du matériel manquantes

6. Atténuations pour Obscura

6.1 Ce Qu'Obscura Peut Faire

Atténuation Efficacité Détectabilité Implémentation
Surcharger l'enregistrement d'écouteurs d'événements Faible Élevée Proxy des gestionnaires d'événements
Injecter du bruit de timing Faible-Moyenne Moyenne Arrondir les horodatages des événements
Bloquer des types d'événements spécifiques Moyenne Élevée Surcharger addEventListener

6.2 Ce Qu'Obscura Ne Peut Pas Faire

Ne Peut Pas Pourquoi
Changer le comportement utilisateur L'utilisateur déplace la souris, tape, définit — c'est physique
Supprimer la saisie au clavier La frappe est nécessaire pour l'interaction
Normaliser les motifs de souris Le mouvement de souris est contrôlé par l'utilisateur
Empêcher la classification ML Le ML peut trouver des motifs dans des données bruitées

6.3 Approche Recommandée

1. Arrondir les horodatages des événements à 50ms  (réduit la précision du timing)
2. Accepter — la biométrie comportementale nécessite une infrastructure ML (la plupart des attaquants n'en auront pas)
3. Utiliser Tor Browser pour la navigation à haute sensibilité (Tor désactive de nombreux événements)

Note : La biométrie comportementale est principalement une préoccupation pour les cibles de grande valeur (banques, réseaux sociaux) avec un investissement ML significatif. Pour la navigation typique, ce vecteur est rarement exploité.


7. Références de Recherche

  • Monaco, J. et al. (2018). "Behavioral Biometrics: A Survey." ACM Computing Surveys.
  • Teh, P. et al. (2014). "A Survey on Keystroke Dynamics." ACM Computing Surveys.
  • Yampolskiy, R. et al. (2011). "Behavioral Biometrics: A Survey and Classification." International Journal of Biometrics.
  • Acar, G. et al. (2014). "The Web Never Forgets" — mentionne le suivi comportemental dans le contexte de la corrélation inter-sites.