Usando username come sale abbastanza sicuro? [duplicare]

1

Invece di creare un generatore di sale separato per ogni utente, non posso semplicemente usare il loro nome utente come sale? Sarebbe unico per tutti, e raggiunge lo scopo dei sali.

    <?php   
$hashedpass = sha1($username.$password)
 >?

Se il nome utente è troppo breve per essere usato come sale, posso semplicemente aggiungere una stringa globale al nome utente.

$salt =$username.'asdf1234'
$hashedpass = sha1($salt.$password)

Questo sarebbe sufficiente per la sicurezza? Crea ancora un sale unico per ogni utente e impedisce gli attacchi della tabella arcobaleno.

    
posta Kunal Chopra 21.06.2015 - 19:14
fonte

1 risposta

1

I nomi degli utenti sono prevedibili. Preferirei usare il valore casuale come un sale. Un utente malintenzionato potrebbe iniziare la generazione della tabella hash precompilata che punta a un utente (admin?) Anche prima di ottenere hash e sale da crack.

Quindi, dovresti NON .

Modifica :

Lo scopo principale di avere un sale è che i tavoli arcobaleno sono inutili. Dal mio punto di vista, usare un valore ipotetico (anche con un valore aggiunto statico) come sale è una cattiva pratica dato che consente a un utente malintenzionato di "preparare" gli hash prima di ottenere il database.

In alcuni scenari: se si distribuisce il codice e si dispone di un account "admin" predefinito, un utente malintenzionato sarà in grado di riutilizzare la tabella arcobaleno contro tutte le installazioni del software.

Altro esempio di @ Anti-weakpasswords: Pyrit , "uno strumento di cracking WPA / WPA2, il vantaggio dello strumento Protocollo WPA / WPA2 che utilizza il SSID (equivalente nome utente) come sale per consentire la precomputazione di dizionari di dimensioni ragionevoli rispetto ai comuni SSID - linksys, dlink, 2WIRE047. "

    
risposta data 21.06.2015 - 19:36
fonte

Leggi altre domande sui tag