Matematicamente, quanto tempo ci vorrebbe per rompere un hash della password di bcrypt?

8

Quindi sto usando le password di bcrypt to hash con un sale generato casualmente (come visto nel modulo bcrypt pip), con 12 round.

Mi sono guardato intorno, ma non riesco a trovare un modo matematico dettagliato e chiaro per stimare quanto tempo occorrerebbe per una GPU strong (o anche altri metodi di cracking) per rompere il mio hash di bcrypt.

Ho trovato questo elenco che descrive 8x Nvidia GTX 1080 Hashcat Benchmark, ma non riesco a utilizzare le cifre previsto che bcrypt si applichi alla mia implementazione dell'algoritmo di hashing.

    
posta madcrazydrumma 22.03.2018 - 23:09
fonte

2 risposte

12

Ok, quindi dall'articolo che hai collegato, apprendiamo che l'installazione 8x di Nvidia può calcolare circa 100.000 hash di bcrypt al secondo (H / s). Il fattore di costo utilizzato per il benchmark è 5 - molto basso - se i commenti devono essere considerati. Per bcrypt, il numero di round è uguale a due alla potenza del fattore di costo. Quindi se il tuo è 12, il tuo hash sarà 2 12 / 2 5 = 2 7 = 128 volte più lento. Quindi da 10 5 H / s sei giù a 10 3 H / s.

Ora tutto quello che devi sapere è che per craccare un hash con n bit di entropia, in media devi provare 2 volte n-1 . Quindi prendi una password composta da 8 lettere minuscole casuali per esempio. Ha un'entropia di n = log 2 (26 8 ) = 38 bit. Per craccarlo avresti bisogno di 2 38-1 / 1000 secondi = 4 anni.

Da notare che il benchmark è del 2016. Con il passare del tempo, l'hardware diventa più veloce. Dovrai rivalutare regolarmente il tuo fattore di costo per rimanere aggiornato.

    
risposta data 23.03.2018 - 00:25
fonte
0

Questo è un malinteso comune sulle password. Dipende dalla tua definizione di password. Devi prima definire cosa intendi per password, come "8 caratteri alfanumerici". Una volta definito, possiamo calcolare.

Un "alfanumerico" è 26 maiuscolo, 26 minuscolo e 10 caratteri numerici o 62 possibili combinazioni.

Per provare tutte le combinazioni di una password di 8 caratteri, sarebbe: 62 * 62 * 62 * 62 * 62 * 62 * 62 * 62

Questo è 218.000.000.000.000.

Dividi questo per 13094 (il numero di hash al secondo) e ottieni 16674820955 secondi o 528 anni.

L'impossibilità di provare tutte le combinazioni porta ad altre strategie, come la scelta di parole del dizionario o "catene di Markov" per provare a scegliere i tipi di password, invece di provare tutte le combinazioni casuali. Non puoi calcolare matematicamente quanto è veloce perché è del tutto soggettivo. Dipende dalla fortuna, da quali password hanno scelto gli obiettivi e da quali password hai scelto di testare. Spesso è un po 'l'ordine di una probabilità del 10% di craccare una password con poche ore di crack, ma ancora una volta, questa è un'esperienza soggettiva. A seconda della password in cui stai cracciando e di come la stai risolvendo, la tua esperienza varierà.

Ad ogni modo, il punto è che questa domanda non ha una risposta. È un'idea sbagliata di come funzionano le cose. Ed è per questo che non puoi rispondere a Google.

    
risposta data 23.03.2018 - 12:50
fonte

Leggi altre domande sui tag