Come determinare gli hash / secondi nella cryptanalisi delle password

1 risposta

3

Per John the Ripper, @dr jimbob ti ha dato le informazioni: vedi la pagina di benchmark e usa --test flag della riga di comando per prendere le tue misure.

Per rcracki-mt, la situazione è leggermente diversa. Utilizza una tabella arcobaleno che è un tipo specifico di tabella di ricerca che contiene, in una struttura ottimizzata per le dimensioni, molto degli hash delle password precomputed . Pertanto, la maggior parte dell'hash si verifica quando la tabella viene creata (con qualche altro software), non quando viene utilizzata. Lì è un po 'di hashing al momento dell'utilizzo, ma meno, e l'hashing non è l'unico parametro nella velocità di cracking.

In effetti, una tabella arcobaleno può essere caratterizzata dal numero N di hash password che contiene virtualmente (es. ci sono esattamente N password distinte che il tavolo può decifrare; avrà sempre successo per una di queste N password e fallirà sempre per tutte le altre) e per la sua "lunghezza interna della catena" t . La lunghezza della catena viene scelta quando viene creata la tabella. I costi medi sono:

  • Dimensione tabella: N / t catena finisce.
  • Costo di attacco: t ricerche, hash t 2 per calcolare.
  • Costo di costruzione della tabella: circa gli hash 1,7 * N e un passo di ordinamento completo sulla catena N / t .

Una "fine catena" è una sequenza di bit di lunghezza un po 'al di sopra di log N , ad esempio una dozzina di byte ciascuno. A seconda di alcuni dettagli tecnici, in alcuni punti puoi risparmiare un fattore 2, il che può essere importante nella pratica ma non cambia il quadro generale.

Le tabelle arcobaleno sono una variante di un metodo precedente con un nome più chiaro: Tempo di Hellman / Scambio di memoria . Ciò indica che attraverso la lunghezza della catena scelta per costruire la tabella (i) (il parametro t ), si salva spazio (la dimensione della memoria è divisa per t ) ma si aumenta costo di utilizzo (con una semplice grande tabella di hash precalcolati, fai una ricerca e no hash; con la tabella arcobaleno, fai t ricerche e t 2 hash per ogni hash della password attaccata). Il trade-off è in realtà tra la CPU disponibile per la creazione di tabelle, la dimensione dei dischi rigidi, la CPU disponibile in fase di attacco e il tempo impiegato per ogni ricerca. Le ricerche sono spesso il collo di bottiglia in fase di attacco: un hard disk meccanico tollera circa un centinaio di accessi al secondo (questi non sono affatto sequenziali). Ovviamente SSD offre ricerche molto più veloci, ma anche molto più costose per gigabyte memorizzati, quindi il trade-off spostamenti di equilibrio.

Riepilogo: per le tabelle arcobaleno, "quante" password al secondo è il risultato di una combinazione di più parametri sintonizzabili (lunghezza della catena, ma anche numero di tabelle e divisione tra tabelle) e comprende diverse caratteristiche hardware (CPU, dimensioni del disco, tecnologia del disco ...) per la costruzione della tabella e l'utilizzo della tabella. Non c'è una risposta semplice; ci vuole davvero un sacco di riflessioni e molta sintonia con l'hardware reale - e, ovviamente, qualsiasi risultato effettivo delle prestazioni è soggetto a una rapida obsolescenza a causa delle tecnologie in evoluzione.

Va sottolineato che i tavoli arcobaleno sono completamente sconfitti dai sali (come impiegati da qualsiasi funzione di hashing della password ). Quando i sali sono applicati correttamente, solo la forza bruta senza precomputazione può essere usata dagli attaccanti e in nessun modo per attaccare più hash delle password in parallelo; quindi sei di nuovo a John the Ripper.

    
risposta data 26.04.2013 - 13:28
fonte

Leggi altre domande sui tag