È sicuro archiviare l'hash della password in un cookie e usarlo per l'accesso "remember-me"?

15

Voglio memorizzare una stringa crittografata dell'hash della password in un cookie e utilizzare l'hash per cercare l'utente e registrarli (se vogliono essere ricordati).

Questo è sicuro? La password è hash unidirezionale con SHA-512, 1024 iterazioni, utilizzando un timestamp per il sale.

Immagino che questo sarebbe unico a causa del time-stamp salt.

    
posta Mohamad 05.12.2011 - 15:26
fonte

2 risposte

22

No, non è sicuro

Dovresti generare un numero casuale lungo e memorizzarlo in un cookie. Questo numero casuale è essenzialmente solo un'altra password per questo utente. Quindi, sul lato server, memorizzi solo un hash correttamente salato di questo numero casuale.

Dovresti solo assegnare ogni numero una volta e dovrebbe essere valido solo per 1 accesso. Quindi consenti più di uno di quegli hash per ogni utente. Dopo aver effettuato correttamente l'accesso, genera un nuovo numero casuale, assegna il nuovo numero nel cookie che hai fornito al tuo utente e memorizza l'hash (salato) di questo numero sul lato server.

(Nota a margine, MD5 non è più giudicato abbastanza buono per l'hashing della password e un salt dovrebbe essere casuale, un timestamp non è abbastanza casuale.Ricerca per l'archiviazione delle password qui per ulteriori informazioni su questo.)

    
risposta data 05.12.2011 - 15:36
fonte
9

No. Per verificare ciò, è necessario memorizzare il valore dell'hash sul server per il confronto, altrimenti non sarà possibile invalidare le sessioni di accesso; o, peggio ancora, avresti bisogno di memorizzare la password in chiaro e il timestamp utilizzato per rigenerare il valore. Se stai per memorizzare un valore tra due macchine da confrontare, quel valore dovrebbe essere casuale.

Mentre il tuo metodo aumenta il lavoro che dovrebbe essere fatto per compromettere il sistema, crea un lavoro più complesso dell'archiviazione di un valore casuale e espone una debolezza forzante bruta - specialmente dove molti browser registrano il tempo di creazione di un cookie, esponendo così i timestamp che probabilmente avresti usato.

    
risposta data 05.12.2011 - 15:37
fonte

Leggi altre domande sui tag