2012-01-24 13 views
6

Questa domanda mi ha fatto ricominciare a pensare all'hash con password. Attualmente utilizzo bcrypt (in particolare py-bcrypt). Ho sentito molto su PBKDF2 e scrypt.Quale metodo di hashing della password devo usare?

Quello che mi chiedo è se ci sono dei metodi di hashing della password "più moderni" che potrei non sapere (perché sono nuovi, quindi le persone non ne parlano più), o forse altri metodi Non lo so.

E poi da lì, quale dovrei usare? La maggior parte delle persone sembra raccomandare bcrypt, ma mi chiedo se è solo perché è vecchio (leggi: noto). scrypt sembra migliore (quantità variabile di utilizzo della memoria). Non so molto su PBKDF2.

Quindi, se faccio uno schema di gestione degli utenti, quale di questi dovrei usare? O dovrei usare qualcosa di completamente diverso?

risposta

6

PBKDF2 viene utilizzato in WPA/WPA2 e Credenziali cache del dominio 2 (AKA DCC2). È possibile modificare le iterazioni per HMAC-SHA1 per aumentare la sicurezza. Questo metodo di rallentare il processo di cracking è ininterrotto. Tuttavia, poiché è basato su SHA1, puoi chiamarlo GPU-friendly per attaccare.

Entrambi, bcrypt e scrypt, utilizzano una tabella di ricerca. Questa dipendenza dalla memoria rende GPU-ostile. Le ultime 28 architetture GPU   nm riabilitano tuttavia un accesso molto rapido alla memoria.

Per ora si dovrebbe preferire bcrypt o scrypt. È una buona scelta utilizzare hash dipendenti dalla memoria, ma in futuro potrebbe cambiare. Tieni d'occhio il modo in cui le prestazioni della GPU dei cracker aumentano. È possibile che raggiungano un orizzonte di eventi su cui sarà meglio tornare indietro per eseguire solo hash compatibili con GPU ma aumentare il conteggio delle iterazioni.

Problemi correlati