Il fingerprinting del browser è una tecnica praticabile per identificare utenti anonimi?


96

Il fingerprinting del browser è un metodo sufficiente per identificare in modo univoco gli utenti anonimi? Cosa succede se si incorporano dati biometrici come gesti del mouse o schemi di digitazione?

L'altro giorno mi sono imbattuto nell'esperimento Panopticlick EFF è in esecuzione sulle impronte digitali del browser .

Ovviamente ho pensato subito alle ripercussioni sulla privacy e al modo in cui poteva essere usato per il male. D'altra parte, questo potrebbe essere usato per il bene e, almeno, è un problema allettante su cui lavorare.

Durante la ricerca dell'argomento ho trovato alcune aziende che utilizzano le impronte digitali del browser per attaccare la frode. E dopo aver inviato alcune e-mail, posso confermare che almeno un sito di appuntamenti importante utilizza l'impronta digitale del browser come un meccanismo per rilevare account falsi. (Nota: hanno scoperto che non è abbastanza unico da fungere da identità quando si passa a milioni di utenti. Ma il cervello del mio programmatore non vuole crederci).

Ecco un'azienda che utilizza le impronte digitali del browser per il rilevamento e la prevenzione delle frodi:
http://www.bluecava.com/

Ecco un elenco abbastanza completo di cose che puoi usare come identificatori univoci in un browser:
http://browserspy.dk/


6
Quanto sarebbe facile scrivere un plugin per il tuo browser preferito per modificare le impronte digitali del browser? Immagino che se potesse essere fatto, qualcuno potrebbe distribuire un tale plug-in che ti consente di modificare la tua impronta digitale a piacimento. Potrebbe anche contenere "profili" precaricati in modo che un intero gruppo di utenti possa usare tutti la stessa impronta digitale ...
FrustratedWithFormsDesigner

1
Discussione correlata Meta Stack Overflow su come farlo su Stack Exchange: Implementa una qualche forma di fingerprinting del browser per aiutare a eliminare i calzini

Per quanto riguarda l'utilizzo di un plug-in per modificare l'impronta digitale del browser. Questo articolo IEEE ( spettro.ieee.org/computing/software/… ) spiega perché ciò potrebbe essere controproducente
Pimin Konstantin Kefaloukos

Risposte:


91

Innanzitutto, non credo sia realistico aspettarsi che gli utenti abbiano JavaScript disabilitato sul Web moderno. Quindi diamo un'occhiata a ciò che Panopticlick può raccogliere tramite JavaScript da solo, insieme al punteggio di unicità del mio browser specifico:

  • User Agent (1 su 4.184)
  • Intestazioni HTTP_ACCEPT (1 su 14)
  • Dettagli plugin browser (1 su 1,8 milioni)
  • Fuso orario (1 su 24)
  • Dimensioni dello schermo e profondità del colore (1 su 1.700)
  • Font di sistema (1 in 11)
  • Cookie abilitati? (1 in 1.3)
  • Test SuperCookie limitato (1 in 2)

Le caratteristiche distintive dell'unicità sono chiaramente i plug-in User Agent e Browser. Ricorda che questi elementi vengono utilizzati insieme per formare un'impronta digitale del browser, quindi sono più che forti dei punteggi individuali. L'unicità cumulativa qui è: 4,184 x 14 x 1.8 million x 24 x 1,700 x 11 x 1.3 x 2aka un VERAMENTE GRANDE NUMERO . È ... davvero unico.

Flash è disabilitato al momento, con "fai clic per attivare". Abilitando Flash si aggiunge:

  • Font di sistema (1 in 374k)

Flash fornisce il secondo elemento rilevabile più unico, ma dato l'enorme numero prodotto anche dal rilevamento JavaScript predefinito in Panopticlick, non sono sicuro che Flash sia necessario per far funzionare questo tipo di impronte digitali del browser. È sufficiente abilitare JavaScript.

Tuttavia, le impronte digitali del browser sono solo una parte della storia. Considera la somma di tutto ciò che possiamo rilevare dagli utenti anonimi, perché può lavorare tutti insieme per gli utenti anonimi delle impronte digitali. Quanto è difficile raccogliere e utilizzare i dati rilevati?

  1. Sniffing dei dettagli del browser, come mostrato sopra (facile)
  2. Indirizzo IP, che ha un livello noto di affidabilità con pro e contro (facile)
  3. Modelli di comportamento dell'utente come utilizzo (ora del giorno), digitazione, movimenti del mouse o delle dita, uso delle parole (difficile, alcuni lato server, alcuni lato client)

Una cosa di cui mi preoccupo solo quando si annusa il browser è quanto sia banalmente facile per gli utenti cambiare browser. Esistono almeno quattro alternative di browser fantastiche e gratuite sulla maggior parte delle piattaforme: Chrome, Opera, Firefox, Safari. Quindi, per interrompere lo sniffing del browser o almeno interromperlo, è possibile cambiare frequentemente i browser.

Vale la pena menzionare qui i cosiddetti SuperCookie poiché possono effettivamente funzionare, in alcuni casi, anche se si cambia browser e anche se JavaScript, l'archiviazione locale HTML 5 e Flash sono disabilitati .

Un ricercatore sulla privacy ha rivelato il genio malvagio dietro un servizio di analisi web a scopo di lucro in grado di seguire gli utenti su oltre 500 siti, anche quando tutta la memorizzazione dei cookie è stata disabilitata e i siti sono stati visualizzati utilizzando la modalità di privacy di un browser.

(Se sei curioso, la versione TL; DR è che lo fanno sfruttando oscuri principi dell'intestazione ETag .)

In ogni caso, tornando allo sniffing del browser, ci sono due cose un po 'scomode che gli utenti possono fare per sconfiggere questo:

  1. Cambia costantemente browser.
  2. Naviga sempre con JavaScript e Flash disabilitati.

Tuttavia, se l'utente non sa che le impostazioni del proprio browser vengono sniffate e utilizzate come parte del metodo per imprimere le impronte digitali, dubito fortemente che si troverebbero necessariamente nel problema di fare queste due cose. È lavoro.

Sulla base dei dati di cui sopra, credo che lo sniffing del browser possa aiutare a identificare il tipico utente anonimo di Internet, ma è efficace solo in combinazione con le altre cose che generalmente rileviamo da utenti anonimi di Internet come l'indirizzo IP.


7
+1 Hacker. I tuoi genitori sanno come trascorri il tuo tempo?
P.Brian.Mackey,

2
"In primo luogo, non credo sia realistico aspettarsi che gli utenti abbiano JavaScript disabilitato sul Web moderno." Sono contento che una semplice soluzione NoScript interrompa completamente la mia tracciabilità.
Arda Xi,

93
"aka un VERAMENTE GRANDE NUMERO. È ... davvero unico." È unico solo se tali funzionalità sono distribuite tra gli utenti a caso. È possibile che la maggior parte degli utenti esegua un sottoinsieme molto più piccolo di agenti e configurazioni di plugin? Ci sono alcuni agenti o configurazioni di plugin che sono altamente correlati? Se hai intenzione di fare affidamento sul fatto che questo è unico, dovresti considerare la distribuzione di queste funzionalità tra gli utenti, non solo il miglior caso possibile.
Charles E. Grant,

3
@Arda Xi: Rende ancora un'esperienza di navigazione problematica ...;)
BoltClock

1
"In primo luogo, non credo sia realistico aspettarsi che gli utenti abbiano JavaScript disabilitato sul Web moderno." Cordialmente, ti sbagli. Con l'addon noscript è facile disabilitare gli script per il tuo sito Web sconosciuto mentre ti godi il web moderno su siti noti.
Arkh,

11

L'impronta digitale del browser si basa su un ecosistema di browser / dispositivo molto eterogeneo. Una cosa da considerare è che ci stiamo muovendo verso un ecosistema sempre più omogeneo poiché sempre più navigazione viene fatta su smartphone e tablet / pad che tendono ad essere molto meno frammentati in questo senso. Ad esempio, gli iPhone / iPad appariranno sostanzialmente identici.


3
un punto eccellente e un po 'triste. Ma questa è una realtà molto probabile.
Jeff Atwood,

Il numero di modelli di iPhone e iPad è divergente.
JoJo,

10

Il fingerprinting del browser è un metodo sufficiente per identificare in modo univoco gli utenti anonimi?

No, nella migliore delle ipotesi può identificare in modo univoco un computer . Non è possibile distinguere tra 2 computer nuovi (e simili) sulla stessa rete (stesso IP) senza cookie \ sessione.

Cosa succede se si incorporano dati biometrici come gesti del mouse o schemi di digitazione?

Questo non sembra realistico. Questo dovrebbe essere codificato quasi interamente in JavaScript poiché i "dati bio-metrici" sono tutti lato client. L'utente può semplicemente spegnerlo. Inoltre come saranno i tuoi "dati bio-metrici" per un Perl Script?


Detto questo, usare questo tipo di tattiche per combattere la frode è una buona idea, non deve essere un 100% .. qualsiasi riduzione della frode è buona, anche se è solo un miglioramento del 5%.

La lotta contro la frode è incrementale, non esiste una soluzione a proiettile unica per combattere la frode, non preoccuparti nemmeno di cercarne una.


MODIFICA: Per rispondere ai commenti sottostanti (e poiché è molto rilevante), il fatto che l'impronta digitale tratti diversi profili è, nelle mie convinzioni, un NEGATIVO netto *. Questo è qualcosa che un utente malintenzionato utilizzerà per ingannare il meccanismo delle impronte digitali, il fatto che l'utente abbia il controllo su tutte le variabili utilizzate nelle impronte digitali è un grave difetto di per sé .

* Ecco perché dico al meglio che può identificare un singolo computer, perché è MEGLIO quindi identificare un singolo account su un computer. Se riesci a fare entrambe le cose, è fantastico.


3
"dati bio-metrici" potrebbero essere anche quando le persone accedono al sito, quali URL, con quale frequenza, i loro schemi di parole e linguaggio .. nulla di tutto ciò richiede JavaScript
Jeff Atwood,

2
Le impronte digitali possono infatti identificare anche account diversi sulla stessa macchina. Conosco l'inglese, lo svedese e un po 'di spagnolo. Ho configurato il mio Mac di conseguenza. Quando Firefox richiede una pagina, invia "Accept-Language: en-us, en; q = 0.8, sv; q = 0.5, es; q = 0.3". Mia moglie non conosce lo spagnolo. Firefox sul suo account sullo stesso computer non include il termine "es". Abbastanza chiaramente questo qualcosa che dici non è possibile.
Andrew Dalke,

Andy, solo perché è il tuo profilo utente, non significa che sei seduto di fronte al computer.
Morons,

4
Mor, la tua affermazione "nella migliore delle ipotesi può identificare in modo univoco un computer" non è corretta. Nella migliore delle ipotesi è in grado di distinguere account diversi sullo stesso computer. Se si tratta di un account di rete, potrebbe essere possibile distinguere tra due account diversi sulla stessa rete. Che più persone possano utilizzare l'account è una questione diversa.
Andrew Dalke,

6

Concordo con @vincentcr , ma aggiungerei un altro ambiente da considerare: la rete aziendale.

Qui è probabile che tu trovi molte dozzine o centinaia di (potenziali) utenti con lo stesso browser, plugin, font, ecc. Gli altri fattori che @vincentcr suggerisce anche non riescono qui - gli indirizzi IP sono probabilmente gli stessi se gli utenti sono dietro a un firewall aziendale, così come le posizioni segnalate dagli utenti.

Anche con gesti del mouse e schemi di digitazione presi in considerazione, dubito che queste tecniche possano essere utilizzate per identificare utenti unici con qualsiasi forma di sicurezza e se si desidera che gli account utente siano in grado di sopravvivere all'utente che cambia browser, è necessario eseguirne il backup comunque con un sistema di autenticazione più tradizionale.

Sebbene, come altri hanno già detto, può essere in qualche modo utile per rilevare spambots e simili. Ad esempio, il plugin WordPress "Bad Behavior" analizza le intestazioni HTTP (tra gli altri fattori) nel tentativo di rilevare gli spambots.


Ottimo punto Sebbene sia possibile rilevare elementi come l'inclinazione dell'orologio, che varia da computer a computer, e apparentemente è possibile arrivare agli IP reali tramite il flash. Esiste anche la risoluzione del monitor, che varrebbe la pena ma che sarebbe meno utile in un ambiente aziendale.
SMrF,

4

Anche se esiste un numero enorme di combinazioni, non sono tutte distribuite in modo uniforme.

Pensa a quante persone, per esempio, su un macbook, useranno solo la configurazione stock. O quelli che non installano mai alcun plug-in: sospetto che quelli siano la maggioranza degli utenti.

E alla fine, hai il segmento di dispositivi in ​​più rapida crescita: utenti di telefoni cellulari e tablet, in particolare iPhone e iPad, dove sei ridotto a solo due variabili: marca e numero di versione.

Quindi potrebbe essere una buona euristica se combinata con altri fattori (come l'indirizzo IP o la posizione quando disponibile), ma non molto di più.


3

Utilizzando le impronte digitali del browser è possibile identificare un singolo utente sul Web e l'unico inconveniente è che è necessario rendere javascript obbligatorio per ogni utente.

Funziona su due principi:

  1. Rileva l'impronta digitale del browser in base a 8 parametri
  2. Rileva se qualcuno ha cambiato la sua impronta digitale modificando qualsiasi parametro.

Il successo dell'impronta digitale dipende dal secondo principio; per rilevare se qualcuno ha cambiato l'impronta digitale.

Per maggiori informazioni basta provare il codice disponibile . Devi sviluppare il tuo algoritmo per rilevare un utente che ritorna perché l'algoritmo utilizzato da https://panopticlick.eff.org/ non è al 100% efficiente in questo momento.


1
"non efficiente al 100%" o forse "non efficace al 100%"? Potresti approfondire su questo punto?
Martijn Pieters,

2

Alcuni browser possono anche essere identificati tramite Supercookies HSTS.

È qui che puoi incorporare una pagina con richieste di insiemi casuali di risorse sicure e non sicure per ciascun visitatore, quindi monitorare lo schema delle loro richieste durante una visita di ritorno. Se ogni risorsa viene richiesta nello stesso modello, è possibile utilizzare tali informazioni per identificare l'utente.

Questi sono particolarmente utili per identificare iPhone / iPad che altrimenti avrebbero un'impronta digitale del browser più generica. Questo approccio non è così utile per Internet Explorer in cui HSTS non è supportato.

Questo articolo spiega l'approccio; http://www.radicalresearch.co.uk/lab/hstssupercookies/

Questo articolo fornisce un buon esempio di come sfruttare i Supercookie HSTS per identificare gli utenti; https://nakedsecurity.sophos.com/2015/02/02/anatomy-of-a-browser-dilemma-how-hsts-supercookies-make-you-choose-between-privacy-or-security/


0

Javascript non è obbligatorio a ci sono molti altri parametri da annusare da PHP. Detto questo, il 99% degli utenti ha JS, quindi perché preoccuparsi

Le impronte digitali possono fornire un'identificazione abbastanza unica? Credo di sì. E così dice www.visitor-intelligence.com con la sua successiva filosofia di screening. Pensaci.

La tua galassia privata non è grande come il nostro intero pianeta.

Quanti capelli alti, castani, occhi blu ragazza con un accento francese cammina nella tua strada? Su scala planetaria, milioni. Ma scommetto che sarebbe piuttosto unica nella tua strada (o visitando il tuo negozio).

A meno che tu non viva negli Champs Elysees. Quindi guarda più da vicino. È magra e cammina come una modella? Indossa una borsa costosa? Va bene, ora è assolutamente unica :-)

Guardare puramente le intestazioni è sbagliato perché include il numero di versione del browser e parametri più variabili.

Siamo ora su Chrome 27 e Firefox 21. Stiamo aggiornando la versione del browser senza nemmeno accorgercene.

Ora, anche l'elenco completo dei plug-in è abbastanza sbagliato. Prova questo: installa Firefox, installa Acrobat Reader, quindi installa Chrome. Scommetto che Acrobat Reader non verrà visualizzato nell'elenco dei plug-in di Chrome :-)

Quindi ... La linea di fondo è: se cerchi un sistema di identificazione decente per un negozio di dimensioni standard, l'impronta digitale è abbastanza e ancora più stabile dei cookie (elimino personalmente tutti i miei cookie quasi ogni giorno).

Solo i miei 2 centesimi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.