Domanda di sicurezza derivata dalla chiave LastPass

4

Ho fatto qualche ricerca sui gestori di password e ovviamente sono incappato in LastPass. Ci sono un sacco di domande e risposte sulla sicurezza di LastPass, ma per quanto ne so nessuno di loro ha parlato direttamente di questa specifica implementazione. Quando ho letto questo sono rimasto piuttosto sorpreso

LastPass has opted to use SHA-256, a slower hashing algorithm that provides more protection against brute-force attacks. LastPass utilizes the PBKDF2 function implemented with SHA-256 to turn your master password into your encryption key. LastPass performs x number of rounds of the function to create the encryption key, before a single additional round of PBKDF2 is done to create your login hash.

Ecco come dovrebbe funzionare (se capito correttamente) in base al loro sito web

  1. Usa PBKDF2 sulla password principale, con il nome utente come salt
  2. Iterare almeno 5000 volte (o superiore se configurato)
  3. La chiave master è il risultato delle iterazioni
  4. Fai uno giro aggiuntivo di PBKDF2 e invialo al server per l'autenticazione
  5. Il server esegue altri 100.000 cicli di PBKDF2 con un sale diverso & scrypt with unknown parameter since the security breach

  6. Archivia e / o confronta in / con Database (usa HSM per qualche parte qui o sotto il 5.)

  7. Invia risposta al client con Vault (crittografato)

  8. Il client decrittografa con la chiave master

Mentre in teoria tutto è bello e sicuro, sappiamo che LastPass ha avuto violazioni della sicurezza in passato. La chiave master viene solo sottoposta a un altro round prima di essere inviata a LastPast. Supponendo che un utente malintenzionato possa potenzialmente accedere all'infrastruttura LastPass e leggere i valori ricevuti prima del passaggio 5.), ciò mette in serio pericolo la chiave master?

Potrei pensare forse, ma non possiamo fare un attacco di dizionario sulla chiave, quindi il classico vettore di attacco su PBKDF2 non si applica. A meno che non abbiamo un hardware personalizzato molto strong, in modo da poter eseguire un attacco di dizionario sulla password principale, nonostante i 5000 round. Ma d'altra parte essere a un solo giro dalla Master Key sembra un po 'troppo vicino per il comfort.

Esistono minacce realistiche per la chiave master in tali circostanze?

    
posta John 21.10.2015 - 21:04
fonte

1 risposta

4

In primo luogo, tieni presente che il 99,99% dei siti trasmette la password al server in chiaro su testo (tramite una connessione SSL, ovviamente). Lì il server ha effettivamente la tua password in chiaro durante l'autenticazione. Quindi anche questo hash aumenta la sicurezza.

Facendo un passo indietro, il motivo per cui eseguiamo numerosi round per hashing o derivazione di chiavi per le password è che stiamo andando da un insieme relativamente piccolo di input possibili (es: password scelte da noi utenti stupidi). Poiché la dimensione impostata è piccola, è necessario aumentare la spesa computazionale di un dizionario o di un attacco a forza bruta rendendo il calcolo di ciascun hash (molto) più costoso. Facciamo questo ripetendo l'hash più e più volte.

Nella situazione Lastpass che chiedi, l'input dell'hash è l'output di un altro hash. Quindi lo spazio di input è relativamente ben distribuito tra i 256 bit completi. Almeno lo sarà dopo aver saltato le password (senza sale questo sarebbe suscettibile di un attacco pre-calcolo ). Ciò significa che un attacco a forza bruta dovrebbe testare l'intero spazio a 256 bit per invertire l'unico hash. Questo è troppo grande per gli attacchi di precomputazione (ad esempio: uso di tabelle arcobaleno ).

Ora, se viene sviluppato un attacco che consente di invertire SHA-256, ciò aumenterebbe il rischio in questa situazione, insieme a molti, molti altri.

    
risposta data 21.10.2015 - 21:27
fonte

Leggi altre domande sui tag