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 | Sì |
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.