Utilizzo di MD5 come sale

0

So che MD5 è una scelta sbagliata per le password di hashing, ma non è la mia ideia.

Immagina che useremo il nome utente come meccanismo di salatura, che è anche una cattiva idea, ma solo per un esempio. Innanzitutto, abbiamo md5 o sha1 questo nome utente e quindi concateniamo con la password come salt, quindi lo abbiamo hash: sha2 (md5 (username) .password).

È più o meno sicuro che aggiungere il nome utente con la password: sha2 (username.password).

Le chiedo a causa delle dimensioni e della casualità di un md5 rispetto a un nome utente, ma c'è il lato negativo della collisione dell'hash.

    
posta h0m3 19.08.2017 - 03:25
fonte

1 risposta

2

Is this more or less safe than just adding the username with the password: sha2(username.password).

Non c'è alcuna differenza reale. Sia l'uso di un nome utente semplice che di md5(username) sono idee sbagliate e mostrano una comprensione mancante di ciò che viene usato per il sale e di come generarlo e memorizzarlo. Un sale viene utilizzato per aumentare drasticamente lo spazio di ricerca per l'utente malintenzionato in quanto le stesse password produrranno diverse password hash e quindi pre-calcolano molte password hash per rendere facile il confronto non fattibile.

Se si utilizza un sale non casuale derivato dal nome utente (o dallo stesso nome utente) si aumenta comunque lo spazio di ricerca ma non tanto quanto un puro sale casuale verrà utilizzato. Dal momento che il sale per una password hash non è un segreto in ogni caso (vedi Come conservare il sale? ) non ci sono vantaggi nell'usare un sale non casuale derivato dal nome utente rispetto a un sale casuale, ma ci sono solo ovvi svantaggi. Ma, per tornare a username rispetto a md5(username) - non c'è praticamente nessuna differenza nell'aumento dello spazio di ricerca perché la probabilità di nomi utente diversi che hanno come risultato lo stesso hash (cioè collisione) è praticamente zero. Ancora, non usare nessuno di questi, ma usa un sale casuale.

A parte il fatto che usare sha2(salt,username) per calcolare l'hash della password è una cattiva idea perché SHA-2 è veloce e quindi gli attacchi a forza bruta sono facili rispetto all'utilizzo di un hash più lento. Vedi Qual è il motivo specifico per preferire bcrypt o PBKDF2 su SHA256-crypt negli hash delle password? per ulteriori dettagli.

Nel complesso, per favore non inventare ancora un altro modo per memorizzare le password. Studia invece Come password di hash sicure? per scoprire come farlo correttamente e anche per le spiegazioni sul perché dovrebbe essere fatto in questo modo.

    
risposta data 19.08.2017 - 07:29
fonte

Leggi altre domande sui tag