Ottieni valori diversi perché vengono utilizzati diversi sali. Il sale è il secondo campo nella password con hash.
Esistono grandi tabelle rainbow che rendono molto economica la ricerca di hash di password comuni. Il punto di sale è aumentare drasticamente il costo degli hash di precalcolo per tutte le password comunemente usate. Quindi, Salt rende fondamentalmente una password non comune. Cioè, rende una password così lunga e casuale che non è possibile precalcolare l'hash per tutte le password comuni per tutti i possibili sali .
Dato che l'obiettivo del sale è prevenire attacchi di precalcolazione di successo, non è necessario che sia un segreto, ma deve essere lungo e casuale. Ciò consente di memorizzare il sale in testo in chiaro insieme a ciascuna password con hash. È una fortuna visto che il sale è necessario per convalidare la password quando l'utente si autentica.
Un esempio di cattiva implementazione di sale sarebbe l'uso di un singolo byte. In tale scenario, un utente malintenzionato può precalcolare tutti gli hash per le password comuni per i 256 possibili sali. È costoso ma non abbastanza costoso. Quel sale non è abbastanza grande.
Un altro esempio di mis-salting è di usare lo stesso sale su ogni password. Ciò consente a un utente malintenzionato di precalcolare una singola tabella che contiene gli hash di tutte le password comuni per quell'unica soluzione. Questo sarebbe costoso ma molto più economico di dover creare una tabella per ogni password. Ecco perché ogni hash della password ha il suo sale.
Modifica: Salting non riduce il costo della forzatura bruta di una singola password. Salatura ti costringe semplicemente a usare password brute-force invece di precalorizzare i loro hash. Proteggi contro la forzatura bruta usando una lenta funzione hash e chiamandola più volte sull'output successivo di se stessa. Ad esempio, eseguendo bcrypt (che è progettato per essere lento anche con una GPU o altro hardware specializzato) 1024 volte. Mentre PHP memorizza il numero di iterazioni nel campo password , su Linux il numero di iterazioni è configurato dall'opzione PAM '' . Diversi utenti qui dicono che l'impostazione predefinita per l'installazione di Debian Linux è di 1000 iterazioni per SHA-512.
Ovviamente, nessuna risposta sulle password è completa senza un riferimento a questa risposta , una spiegazione dettagliata stato dell'arte per la memorizzazione delle password.