BCRYPT è facile da decifrare?

1

So che bcrypt non cripta, ma quanto sarebbe facile ottenere la password da un hash di bcrypt memorizzato?

Voglio dividere la domanda su bcrypt in 2:

  1. Ho letto qui che bcrypt genera casualmente sali per ogni hashing che fa. In che modo 2 differenti "hashing-action" con lo stesso numero di round e la stessa password hanno lo stesso output se bcrypt genera un salt casuale per ogni volta che si esegue un hashing?

  2. BCRYPT salva l'hash dell'output, il sale e il numero di round con il tipo di versione dell'algoritmo. L'output sarebbe simile a questo:

$ 2a $ 10 $ vI8aWBnW3fID.ZQ4 / zo1G.q1lRps.9cGLcZEiGDMVr5yUP1KUOYTa

In pratica hai tutto ciò di cui l'Algoritmo ha bisogno, tranne l'input, ma per questo invece hai l'output. Non sarebbe abbastanza facile decifrare / annullare l'hashing della password al suo stato originale?

    
posta Akise Aru 14.05.2017 - 16:45
fonte

1 risposta

2

Bcrypt come qualsiasi altro metodo di hash salato usa il sale per evitare che gli stessi hash delle password siano sulla stessa stringa. Lo fa generando inizialmente salt saltando la password e saltando. Questo può essere verificato solo se si utilizza lo stesso sale durante la verifica. Questo è il motivo per cui il sale viene salvato insieme all'hash.

Bcrypt come qualsiasi altro metodo hash iterato non può essere invertito direttamente, ma puoi provare tutte le password possibili per vedere se hanno un hash allo stesso risultato. In caso di metodi salati non è possibile prevederlo, perché devi provare con il sale effettivo (come descritto sopra).

L'idea di un hash iterato e salato è che questa bruteforcing è così lenta che ci vuole molto tempo per provare tutte le password possibili. Pertanto, le password lunghe e complesse ragionevoli non possono essere rapidamente rafforzate. Bcrypt è uno dei metodi (con un fattore di lavoro configurabile) più lento e quindi migliore (ma non è invincibile). Questo vale per tutti i metodi di hash delle password (a meno che non utilizzino una protezione aggiuntiva come la crittografia con una chiave sicura "pepper" che non può essere estratta dal server di autenticazione).

NB: Scrypt e Argon2 sono varianti più moderne di hashing della password. E PBKDF2 ha una forza simile a Bcrypt ma con un migliore fattore di cazzata di conformità.

    
risposta data 14.05.2017 - 16:52
fonte

Leggi altre domande sui tag