Qual è lo scopo di $ LoginKey dalla perdita di Ashley Madison?

4

Secondo questo sito Ashley Madison teneva un hash insicuro memorizzato nel loro database usando MD5, oltre all'hash di bcrypt molto più sicuro. Questo gruppo ha utilizzato gli hash MD5 per rompere rapidamente il database delle password piuttosto che utilizzare gli hash di bcrypt molto più difficili da crack.

L'articolo fornisce solo questo breve indizio:

The $loginkey variable seemed to be used for automatic login, but we didn’t spend much time investigating further. It was generated upon user account creation and was re-generated when the user modified their account details including username, password and email address.

La domanda è: qual è lo scopo di questa variabile $ loginkey? Ovviamente è inutile usare bcrypt che è intenzionalmente lento quando si usa un hash molto più veloce, come l'MD5 altrove, che è un obiettivo più facile. Ovviamente questo è un grosso errore da parte degli sviluppatori di Ashley Madison, ma sono curioso di sapere perché avrebbero dovuto inserire questo in primo luogo, e perché non è mai stato corretto da quando qualcuno ha saputo usare bcrypt per hash della password principale.

    
posta Steve Sether 10.09.2015 - 21:17
fonte

2 risposte

3

Probabilmente come token per consentire agli utenti di accedere (ad esempio "Ricorda il mio login").

Se si desidera che gli utenti siano in grado di utilizzare la funzionalità di login memorizzata, è necessario utilizzare un generatore di numeri pseudo casuali (CSPRNG) crittograficamente sicuro per generare il token. Quindi calcolare una data di scadenza per quel token da utilizzare e memorizzare sia il token che la data di scadenza nel database. Una volta che l'utente ha effettuato l'accesso (e ha indicato al login di voler ricordare il proprio login), si memorizzerebbe il testo in chiaro del token sulla propria macchina sotto forma di cookie o memoria locale. Poi la volta successiva che hanno tentato di accedere a una pagina che richiedeva un accesso, dovresti cercare quel token nel cookie del browser o nella memoria locale. Se il token corrisponde a un token che hai archiviato nel tuo database e se la data di scadenza per quel token è ancora in futuro, allora considera l'utente per accedere; elimina il token dal browser e dal database e ripeti il processo di generazione e archiviazione di un nuovo token.

Per maggiore sicurezza, nel tuo database probabilmente vuoi memorizzare l'hash del token piuttosto che il token stesso. Finché hai utilizzato un CSPRNG per generare il token, dovresti essere in grado di utilizzare anche un algoritmo di hash veloce per hash il token.

Penso che gli sviluppatori di Ashley Madison semplicemente non usassero un CSPRNG per creare la chiave di accesso $ e usassero invece una sequenza di caratteri non casuali (nome utente più l'hash MD5 della password), che attualmente è ciò che lo rende così facile per i cracker per determinare la parte unhashed della chiave di accesso $, che in questo caso era la password.

    
risposta data 10.09.2015 - 22:17
fonte
0

La copertura di Ars Technica ha una buona discussione nei commenti. link

Alcune speculazioni:

  • Un hash legacy. Ad un certo punto gli sviluppatori sono passati a bcrypt ma hanno mantenuto il vecchio hash intorno "nel caso in cui".
  • $ loginkey è stato utilizzato per accedere più velocemente (bcrypt è lento di progettazione) o mantenere un utente loggato.
  • Utilizzato per mantenere un utente connesso in altre applicazioni. Come su una piattaforma del forum che non può fare bcrypt.
risposta data 10.09.2015 - 22:26
fonte

Leggi altre domande sui tag