Devo usare SHA-512 con molti round o bcrypt / scrypt

0

Attualmente sto usando SHA-512 con 100000 colpi a causa dell'implementazione più semplice. L'algoritmo genera password da un servizio (ad esempio amazon) e una password principale. Trarterò vantaggio dal passaggio a bcrypt / scrypt?

    
posta R3turnz 08.07.2017 - 07:45
fonte

1 risposta

4

Sulla base dei chiarimenti forniti dall'OP, cambierò la mia risposta.

Quindi stai facendo qualcosa di equivalente a:

sha-512x100000("stackexchange.com"|"master password")

... non è davvero una grande idea. La tua scelta della funzione di hash non è il tuo problema più grande qui. Come utente malintenzionato, una volta che creo una delle tue password e ripristino la password principale, diventa banale che io scriva tutti gli altri account.

Ti suggerisco di passare all'utilizzo di password derivate da /dev/random o di utilizzare un gestore di password appropriato.

RISPOSTA ORIGINALE

Sì, per favore non usare le funzioni hash SHA-X per l'hashing della password. Sarebbe meglio passare a qualcosa progettato per essere una funzione di hashing della password.

hash SHA-2 (che includono SHA-224, SHA-256, SHA-384 e SHA -512) sono stati progettati per le prestazioni: era parte del requisito di progettazione che l'implementazione di hardware e software di queste funzioni hash fosse la più veloce possibile. Supponendo che il tuo server stia utilizzando un'implementazione software di SHA-512 e che l'utente malintenzionato cerchi di forzare le password utilizzando un GPU rig o un hardware SHA-512 dedicato, allora stai dando un vantaggio all'utente malintenzionato perché possono esegui ipotesi con un'efficienza molto più elevata di quanto il server possa generare gli hash in primo luogo.

In breve, gli hash SHA sono progettati per essere veloci, specialmente nell'hardware. Una proprietà molto brutta per una funzione di hashing della password.

bcrypt , scrypt , e in misura minore PBKDF2 , sono progettati per essere lenti e inefficienti nell'hardware - ottime proprietà per le funzioni di hashing della password.

Di questi tre (bcrypt, scrypt e PBKDF2) sembra che scrypt sia la scelta più moderna e migliore. Tuttavia, dai risultati del Concorso di freccie password del 2013-2015, sembra che Argon2 (ei secondi classificati Catena, Lyra2, yescrypt e Makwa) saltano fuori dall'acqua, quindi usa uno di questi se ce l'hai.

    
risposta data 08.07.2017 - 08:15
fonte

Leggi altre domande sui tag