Perché LastPass memorizza gli hash delle password sul server?

4

Durante la lettura della violazione di LastPass, mi chiedevo perché il negozio LastPass avrebbe rafforzato gli hash delle password sul lato server? Potrebbero solo memorizzare i dati crittografati AES e quando l'utente ottiene i suoi dati crittografati potrebbe eseguire il rafforzamento della password + decrittografarlo e ricodificare tutto sul lato client in modo che l'unica informazione a cui LastPass è mai esposto è AES 256-bit crittografato dati e quella sarebbe l'unica cosa che avrebbero archiviato in caso di violazione.

Mentre scrivo questo post, sto pensando che forse l'hash memorizzato fa parte della fase di autenticazione per non fornire i dati crittografati AES a nessuno, ma sarebbe l'unica ragione per archiviare l'hash sul server?

Supponendo che esista un metodo alternativo per autenticare dati crittografati specifici per l'utente che tenta di accedervi, ad es. una stringa casuale condivisa tra client e server non derivata dalla password master memorizzata sul lato server, potrebbe la crittografia hashing / password + crittografia / decodifica essere eseguita sul lato client senza necessità di memorizzare altro sul lato server AES 256-bit?

Perché non sarebbe più facile per qualcuno dedurre la password dall'hash solo che dal prodotto finale crittografato AES che è stato crittografato con tale hash delle password rafforzato? La mia ipotesi è che i dati crittografati AES richiederebbero più tempo per interromperli rispetto al solo hash, solo per il passaggio supplementare del calcolo dell'hash e quindi della crittografia. Quindi non sarebbe un altro punto per non memorizzare gli hash rafforzati sul server, non importa quanto sia complicato l'algoritmo di hashing dato che è una funzione della password principale.

    
posta Wadih M. 23.10.2015 - 04:22
fonte

2 risposte

2

Sì, hai ragione - il valore hash è per l'autenticazione, in modo che i dati crittografati non vengano distribuiti senza le credenziali corrette fornite al servizio.

Un altro servizio simile, Roboform, ha diverse password di autenticazione e decrittografia per ogni account. Tuttavia, c'era un grave difetto che quando veniva usata l'interfaccia web - la password master era stata inviata a Robofom , anche se non erano destinati a riceverlo .

Vedi questa risposta per i dettagli completi dell'autenticazione LastPass e del processo di crittografia, anche se derivati dalla sicurezza ora podcast.

Da questi dettagli, la mia ipotesi migliore è che la chiave di decrittografia LastPass sia calcolata da:

DK = PBKDF2(HMAC-SHA256, password, email, <user set>, 256)

e la chiave di autenticazione fornita dal client JavaScript o dall'applicazione prima che il servizio LastPass ti dia accesso al tuo blob crittografato:

AK = PBKDF2(HMAC-SHA256, DK, password, <user set>, 256)

Tuttavia, questo è memorizzato come hash sul loro back-end:

Stored_AK = PBKDF2(HMAC-SHA256, AK, salt, 100000, 256)

Come puoi vedere, c'è un sacco di lavoro da fare per ottenere dalla password in chiaro nel modulo in cui l'hash è memorizzato nel back-end. Il numero di arrotondamenti lato client (come indicato da <user set> ) può anche essere aumentato, a seconda delle capacità del dispositivo meno potente di ciascun utente, quindi viene nuovamente eseguito l'hashing sul client e infine sottoposto a hashing sul lato server prima del confronto con l'hash memorizzato . Ciò significa che c'è ancora molto lavoro da fare se un utente malintenzionato accede agli hash memorizzati dal server ( come potrebbero aver già fatto ).

    
risposta data 23.10.2015 - 10:09
fonte
1

Gli hash compromessi sono stati utilizzati per autenticare l'utente.

The investigation has shown, however, that LastPass account email addresses, password reminders, server per user salts, and authentication hashes were compromised

Se non vuoi dare i dati crittografati a tutti, devi fare un qualche tipo di autenticazione. Naturalmente potrebbe esserci una seconda password che viene utilizzata per decrittografare i dati e ovviamente potrebbe essere eseguita sul lato client. Ma ciò solleverebbe la domanda perché c'è bisogno di un servizio come LastPass poiché la pubblicazione di dati crittografati potrebbe essere eseguita utilizzando qualsiasi tipo di spazio di archiviazione online.

Questo è un tipico caso di conforto da parte dell'utente rispetto alla sicurezza.

    
risposta data 23.10.2015 - 09:06
fonte

Leggi altre domande sui tag