C'è qualche problema con l'uso di sali vuoti con PBDKF per questo scopo?

0

L'obiettivo è generare una chiave sicura per la crittografia simmetrica.

Ho una password principale, da cui voglio generare la chiave per la crittografia simmetrica, al fine di crittografare altre password. L'idea è di usare PBDKF2 per la generazione di quella chiave.

Questa password principale è piuttosto difficile da dedurre, dal momento che memorizzo solo il suo sha256 hash. Ma l'utente lo fornisce ogni volta che effettua il login.

Con lo scenario descritto, direi che ho una chiave sicura per la crittografia simmetrica, dal momento che non è memorizzata da nessuna parte, e non può essere dedotta con le informazioni che è memorizzata.

Quindi, il mio dubbio è, la salatura è utile qui? Non riesco a vederlo. Penso che un sale vuoto sarebbe ok.

O forse lo scenario che sto considerando ha un qualche senso ...

    
posta Julen 24.08.2015 - 21:45
fonte

1 risposta

3

Innanzitutto, non memorizzare SHA256 della tua password principale ! Vedi questa risposta per come memorizzare l'hash del master password.

Sulla tua domanda ...

Salt è usato per prevenire che l'attaccante precalcoli gli hash per molti / tutti i possibili input. Nel caso specifico di memorizzazione dell'hash della password master, un salt sufficientemente ampio e casuale impedirà a un attacco di utilizzare una singola tabella che mappa tutti gli input ai loro hash. Affinché un compito di precomputazione funzioni, l'utente malintenzionato dovrebbe creare una tabella univoca per ogni sale unico. Questo diventa computazionalmente irrealizzabile. Quindi, se hai salato e utilizzato un algoritmo di hashing appropriato (vedi la risposta di cui sopra), anche se un utente malintenzionato ruba il tuo database delle password, non possono invertire gli hash alle loro password.

Nel tuo caso, la chiave è l'output dell'algoritmo PBKDF2 e non verrà memorizzato in un database. Quindi non c'è modo che un utente malintenzionato possa rubare l'hash per invertire la procedura per ottenere la password principale. Quindi non è necessario salare l'algoritmo PBKDF2 per generare la chiave. Ma, come per la risposta collegata a prima, devi salare la versione con hash che tu memorizzerai nel tuo database.

    
risposta data 24.08.2015 - 22:08
fonte

Leggi altre domande sui tag