Autenticazione multi-fattore: implementazione di una funzione "non chiedere più per questo computer"

2

Molti siti che supportano l'autenticazione a più fattori forniscono un'opzione "non chiedermi di nuovo per questo computer". Spero di ottenere alcune informazioni su come questa funzione possa essere implementata al meglio.

La mia ipotesi iniziale sarebbe che sia implementato usando un cookie (ip-locked?) sul sistema degli utenti.

Ciò tuttavia sembrerebbe indebolire drasticamente la sicurezza, dal momento che se il cookie viene rubato, 2fa viene essenzialmente sconfitto (specialmente se viene rubato anche un cookie di accesso).

Qualche idea?

    
posta GBC 24.05.2014 - 08:14
fonte

3 risposte

2

Il blocco del cookie sull'IP non è pratico. Immagina un telefono cellulare che cambia costantemente reti.

Ho sentito parlare di bloccare il cookie sulle chiavi di sessione SSL in applicazioni ad alta sicurezza. Il server consentirebbe un cookie specifico solo se viene fornito tramite la sessione SSL specifica utilizzata per avviare quel cookie.

Un modo diverso di rendere il cookie inutilizzabile su un altro computer è impronte digitali del computer originale. La combinazione di sistema operativo, browser, risoluzione dello schermo, componenti aggiuntivi installati, può formare un'impronta digitale unica che identifica un computer.

Quando i cookie di hit e di sessione Heartbleed sono stati esposti, un sacco di autenticazione di secondo fattore è diventato inutile e il "ricordami" peggiora il problema perché i cookie non scadono alla fine di una sessione.

La funzionalità "ricordami" è per comodità. La convenienza è quasi sempre in disaccordo con la sicurezza. Immagina di utilizzare il riconoscimento vocale nel tuo ufficio per inserire comodamente le password e il secondo fattore. Il multi fattore riduce la convenienza e aumenta la sicurezza.

In realtà, l'autenticazione a più fattori richiede gli input multipli dall'utente mentre il "ricordami" viene utilizzato per chiedere gli input less . Stai chiedendo qualcosa che aumenti la sicurezza e di convenienza. È qui che la ricerca sulla nuova autenticazione viene attualmente applicata. La biometria, i dispositivi personali e altre tecnologie stanno lavorando per raggiungere questo obiettivo.

  • Servizi come LastPass e KeePass possono fornire l'illusione del "ricordami" e avere ancora maggiore sicurezza.
  • Google sta lavorando su suoneria e una tecnologia che utilizza il smartphone e l'audio non udibile per autenticare l'utente.
  • YubiKey è un dispositivo hardware che può eliminare il ricordo e la digitazione delle password.
risposta data 24.05.2014 - 11:18
fonte
0

Puoi vedere da molti siti che è implementato con i cookie; L'ho visto implementato in altri modi (per non essere criptico - su un sito sono ancora ricordato anche quando uso altri profili del browser sospetto Flash Local Storage o cattiva impronta digitale).

Potrebbero esserci altri metodi di rilevamento delle impronte digitali per proteggere dai cookie di copia. Molto simile a te che hai citato con gli indirizzi IP, anche se improbabile come gli IP possono essere diversi legittimamente, specialmente negli ambienti aziendali che possono avere più IP esterni e un NAT senza garanzie che il tuo IP esterno sia statico per le nuove connessioni.

Puoi testare tu stesso la memorizzazione dei cookie esportando i cookie su un computer, importandoli su un altro e tentando di accedere.

In alternativa, puoi anche utilizzare uno strumento come Fiddler per fungere da proxy; puoi quindi modificare le richieste per vedere cosa è e non è rilevante per ricordare il tuo stato autenticato. Ciò ti consentirà di simulare i cookie copiati o con una serie di cookie copiati simula il computer originale.

    
risposta data 24.05.2014 - 08:32
fonte
0

Oltre ai cookie, questo può essere facilmente implementato anche dal lato server. A volte gli utenti rifiutano o eliminano i cookie, quindi i metodi lato server possono essere utili.

In ogni caso, di solito prendi nota di un numero di variabili come:

  • Indirizzo IP
  • ID utente
  • Qualche forma di token sicuro (che indica che il loro accesso è andato a buon fine)

Questi possono essere archiviati, con un hash unidirezionale, in una tabella del database e ogni accesso al sito esegue una funzione che riproduce l'hash per verificarlo rispetto alla tabella del database e restituisce true o false a seconda che l'utente sia autenticato.

    
risposta data 24.05.2014 - 11:09
fonte

Leggi altre domande sui tag