Utilizzo di hashcat per l'attacco di collisione [chiuso]

0

Ogni volta che ho provato a generare casualmente √N (possibili combinazioni di lunghezza della password), trovo sempre poche collisioni della password hash indipendentemente dalla lunghezza, se la password è stata fatta di caratteri interamente casuali, quindi testò questo caso hashcat. Ho notato che il suo metodo di generazione mantiene sempre alcune cifre intatte e amp; prova tutte le altre posizioni possibili combinazioni come questa

caefnNHJKn854557 --> plOcmawJKn854557

Questo rende la possibilità che il collison avvenga molto in basso. C'è un modo per impostare o configurare hashcat per generare un'intera combinazione casuale ogni volta che prova candidati?

ho provato l'esperimento con C ++ e amp; C # usando la loro funzione di generatore casuale e amp; molte volte ha avuto la collisione. Voglio provare questo con hashcat perché il suo generatore casuale è stato il più veloce, ma non so come sia caldo configurarlo

    
posta うちはサラダ 23.12.2018 - 17:28
fonte

1 risposta

3

Per qualsiasi funzione di hash decente a metà, anche hash che sono completamente inadatti per la crittografia, se cerchi le collisioni con la forza bruta, non importa come esplori lo spazio di ricerca. Mantenere un prefisso fisso e cambiare il suffisso, o mantenere un suffisso fisso e cambiare il prefisso, sono buoni come qualsiasi altro metodo. Questo perché tutte le funzioni di hash sono progettate per produrre risultati distinti per input simili.

Se ci sono N possibili valori di hash, devi calcolare e memorizzare circa √ N hash finché non hai una buona possibilità di trovare una collisione (il compleanno limitato ). Per un hash a 32 bit come usato nelle tabelle hash, N = 2 32 così √N = 2 16 che viene raggiunto molto rapidamente. Per un hash a 128 bit come gli hash crittografici più vecchi, √N = 2 64 . Una GPU in questi giorni può calcolare qualcosa come 2 34 (16 miliardi) hash MD5 al secondo, il che significa che calcola 2 hash 64 in circa 2 30 secondi ≈ 34 anni).

Ma non è tutto: per trovare una collisione, è necessario memorizzare il risultato di tutti questi calcoli, quindi il fattore limitante sarà la larghezza di banda della memoria. E una volta che la RAM si riempie, questa sarà la larghezza di banda della memoria. Non troverai una collisione in un hash a 128 bit nella tua vita.

Hashcat è progettato per trovare le pre-immagini di hash, non per cercare le collisioni. Hashcat è progettato per invertire gli hash delle password (e gli hash ordinari che vengono utilizzati in modo improprio per le password) e le collisioni non sono rilevanti per questo. Ma anche con uno strumento ottimizzato, quello che stai cercando di fare non è fattibile per qualsiasi hash di crittografia.

Se vuoi trovare una collisione per un hash a 128 bit, devi capirne la struttura. Esistono metodi noti per trovare le collisioni per MD4 e MD5 , ad esempio. Questi metodi sono pratici perché non usano la forza bruta su tutto lo spazio di ricerca.

A proposito, stai chiamando gli hash input "password", ma password gli hash sono diversi dagli hash crittografici "ordinari" . Sono più lenti e salati. L'uso di un salt casuale significa che con un hash della password, non si ottiene lo stesso output due volte, nemmeno se si utilizza la stessa password due volte.

    
risposta data 31.12.2018 - 02:11
fonte

Leggi altre domande sui tag