È una buona idea usare due sali? [duplicare]

4

È una buona idea usare due sali? Ciò implica che uno sarebbe unico per l'utente e uno sarebbe unico per il server, utilizzando ovviamente Bcrypt.

Quindi, ad esempio, se stai usando Golang come back-end, sarebbe una buona idea generare un lungo sale di 20 caratteri da / dev / random, infornarlo nel binario di Golang e usarlo con 20 caratteri di lunghezza sali generati da / dev / urandom che sono unici per ciascun utente? Il processo di hashing sarà simile a userSalt + serverSalt + password = password digest

L'idea alla base di questo è che anche se un utente malintenzionato accede al tuo database, non sarebbe comunque in grado di decifrare le password perché avrebbero anche bisogno di decompilare il tuo server per ottenere il server Salt. Anche se avessero il server Salt, avrebbero quindi bisogno di generare tabelle arcobaleno, il che richiederebbe molto tempo a causa di Bcrypt.

Grazie in anticipo!

    
posta Belthian 24.02.2015 - 09:43
fonte

1 risposta

9

I sali non sono intesi per essere comunque privati. Servono per evitare attacchi di tabelle dizionario / arcobaleno sugli hash (vedi Perché sono salati hash più sicuro per l'archiviazione delle password? per ulteriori dettagli).

hashed_pwd = hash_function(salt + password)

Quindi usare due sali ha lo stesso scopo di usare un sale.

hashed_pwd = hash_function(salt1 + salt2 + password)

Se salt1 + salt2 == salt ottieni il primo codice indietro.

    
risposta data 24.02.2015 - 09:54
fonte

Leggi altre domande sui tag