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

obscura/research/uncontrollable/behavioral-biometrics

5 min di lettura

Categoria: Comportamento Utente / Interazione Uomo-Macchina


1. Descrizione

La biometria comportamentale misura come un utente interagisce con il proprio dispositivo. A differenza dei fingerprint hardware, questi sono dinamici: variano con umore, contesto, stanchezza e pratica. Tuttavia, sono anche altamente individuali: le dinamiche di battitura da sole possono identificare un utente con >95% di precisione in ambienti controllati.


2. Vettori

2.1 Dinamiche di Battitura

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, // Durata pressione tasto
  })
})

Caratteristiche misurabili:

  • Tempo di pressione tasto: Durata tra keydown e keyup (tipicamente 50-150ms)
  • Intervallo tra tasti: Tempo tra pressioni successive
  • Pressione tasto (su dispositivi supportati): Pressione touch per ogni tasto
  • Pattern di errore: Uso del backspace, comportamento di correzione
  • Velocità di digitazione: Caratteri al minuto (varia per attività)
  • Ritmo: Pattern coerenti di intervalli lunghi/corti

Entropia: ~15-25 bit (altamente individuale)

Stabilità: Moderata: influenzata da stanchezza, emozione, dispositivo, tipo di tastiera

2.2 Pattern di Movimento del Mouse

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

Caratteristiche misurabili:

  • Traiettoria: Curvatura del percorso, linearità, overshoot
  • Profilo velocità-accelerazione: Come la velocità cambia durante il movimento
  • Comportamento click: Tempo tra mouse-down e mouse-up, precisione posizione
  • Pattern hover: Dove il mouse si ferma
  • Accoppiamento scroll: Movimento del mouse durante lo scroll

Entropia: ~10-20 bit (moderatamente individuale)

Stabilità: Bassa-Moderata: influenzata da superficie, dispositivo, attività

2.3 Pattern di Scroll

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

Caratteristiche misurabili:

  • Velocità di scroll: Pixel per evento scroll
  • Accelerazione: Come cambia la velocità di scroll
  • Frequenza pausa: Quanto spesso lo scroll si ferma
  • Ritmo: Scroll regolare vs a raffica
  • Pattern leggi-poi-scroll: Tempo tra l'arresto dello scroll e lo scroll successivo

Entropia: ~8-12 bit

Stabilità: Bassa: dipendente dall'attività (articolo vs risultati di ricerca vs social media)

2.4 Gesture Touch (Mobile)

element.addEventListener('touchstart', e => { /* inizio tocco */ })
element.addEventListener('touchmove', e => { /* traiettoria tocco */ })
element.addEventListener('touchend', e => { /* fine tocco, velocità */ })

Misurabili:

  • Angolo di swipe, velocità, accelerazione
  • Pressione tocco (su dispositivi supportati)
  • Pattern pinch-zoom
  • Coordinazione multi-dito
  • Dimensione tocco (area di contatto del dito)

Entropia: ~12-18 bit

Stabilità: Moderata: influenzata da dispositivo, presa, postura


3. Punti di Forza dell'Attaccante

Forza Spiegazione
Altamente individuale Le dinamiche di battitura possono identificare un utente con >95% di precisione
Continuo Non un controllo una tantum: monitoraggio continuo
Difficile da imitare Fingere il comportamento di un'altra persona è estremamente difficile
Nessun permesso richiesto Gli eventi mouse/tastiera/touch sono leggibili da JS
Passivo L'utente non può sapere di essere misurato

4. Debolezze dell'Attaccante

Debolezza Spiegazione Sfruttabile?
Richiede interazione Non può fingerprintare senza input utente Limita interazione
Alta varianza Cambia con umore, stanchezza, contesto Riduce affidabilità
Tempo di raccolta lungo Necessita di minuti di dati per precisione Sessioni brevi sono sicure
ML richiesto L'hashing semplice non funziona per dati comportamentali No
Dipendente dall'attività Non coerente tra siti web diversi Correlazione limitata
Facilmente interrotto L'interferenza di temporizzazione JS rompe la misurazione

5. Rilevamento della Manipolazione

Tecnica Come Funziona
Event listener mancanti Nessun evento mouse/tastiera catturato è sospetto
Pattern di rumore iniettato Dati di temporizzazione con pattern insoliti (troppo regolari, troppo casuali)
Qualità del segnale Micro-caratteristiche di temporizzazione mancanti attese dall'hardware

6. Mitigazioni per Obscura

6.1 Cosa Può Fare Obscura

Mitigazione Efficacia Rilevabilità Implementazione
Sovrascrivi registrazione event listener Bassa Alta Proxy gestori eventi
Inietta rumore di temporizzazione Bassa-Media Media Arrotonda timestamp eventi
Blocca tipi di evento specifici Media Alta Sovrascrivi addEventListener

6.2 Cosa Non Può Fare Obscura

Non Può Perché
Cambiare il comportamento dell'utente L'utente muove il mouse, digita, scrolla: questo è fisico
Rimuovere l'input della tastiera Digitare è necessario per l'interazione
Normalizzare i pattern del mouse Il movimento del mouse è controllato dall'utente
Prevenire la classificazione ML Il ML può trovare pattern in dati rumorosi

6.3 Approccio Raccomandato

1. Arrotonda timestamp eventi a granularità 50ms  (riduce precisione temporizzazione)
2. Accetta: la biometria comportamentale richiede infrastruttura ML  (la maggior parte degli attaccanti non l'avrà)
3. Usa Tor Browser per navigazione ad alta sensibilità  (Tor disabilita molti eventi)

Nota: La biometria comportamentale è principalmente una preoccupazione per target di alto valore (settore bancario, social media) con significativi investimenti in ML. Per la navigazione tipica, questo vettore è raramente sfruttato.


7. Riferimenti di Ricerca

  • 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": menziona il tracciamento comportamentale nel contesto della correlazione cross-site.