Il mio metodo di hashing è sicuro? [duplicare]

0

Uso bcrypt (32 round) e una volta che l'hash è stato prodotto, ottengo il sha512 di quell'hash e poi l'ho cancellato con blow fish e una volta fatto, lo ho rifatto con sha512 con un salt che è stato sottoposto a hash con bcrypt (94 round) di 33 caratteri per ogni password utente.

Quindi è sicuro o no?

    
posta sss 10.03.2014 - 17:29
fonte

2 risposte

14

Sì, ma tutto ciò che segue il primo bcrypt è completamente inutile. bcrypt genera e aggiunge automaticamente anche un salt (nell'implementazione di ruby in ogni caso), e la modifica del numero di round è sufficiente per garantire che lo schema di hashing sia abbastanza lento da impedire la forzatura bruta offline.

    
risposta data 10.03.2014 - 17:33
fonte
8

Il tuo schema è sicuro quanto bcrypt con 32 round, ma molto più complicato. L'aggiunta di complessità non aumenta la sicurezza del sistema, ma rende più probabile l'esistenza di bug.

Gli hash basati su SHA-512 e Blowfish non aggiungono alcun fattore di lavoro significativo rispetto al bcrypt. E i turni extra di bcrypt applicati al sale non aggiungono nulla alla difficoltà di indovinare la password brute-force, perché devono essere calcolati solo una volta per password di destinazione, non una volta per ipotesi.

Suggerisco caldamente di usare solo bcrypt standard. Per aumentare la forza dell'hash basta aumentare il numero di round. (Molto, supponendo che tu intenda 32 iterazioni, questo è quasi nulla. Vedi Numero di round consigliati per bcrypt per numeri più realistici.)

Questo faciliterà l'interoperabilità e ti consentirà di aumentare il numero di round man mano che procedi senza rompere tutti gli hash esistenti.

    
risposta data 10.03.2014 - 18:50
fonte

Leggi altre domande sui tag