Metodi usati per invertire un hash

2

So che un hash è una funzione a senso unico e che quindi non esiste una funzione di inversione. Invertendo un hash voglio solo trovare un testo in chiaro che fornisca l'hash.

Penso di capire che per invertire un hash si può

  • usa i dizionari, cioè uno genera un elenco di coppie di testi in chiaro e hash. Dato un hash, uno cerca quindi nel dizionario il testo in chiaro relativo. In un certo senso, direi che questo sembra molto simile al metodo di forzatura bruta in cui si calcola un sacco di hash finché non c'è una corrispondenza.
  • usa le tabelle arcobaleno. Non sono completamente sicuro di capire come funziona, ma vedo questa domanda / risposta .

Le mie domande:

  1. Esistono altri metodi in pratica?

  2. Esistono metodi che mirano all'algoritmo sottostante?

posta Thomas 29.06.2013 - 03:07
fonte

5 risposte

5

Con un hash serio, l'unico modo per trovare un preimage è di indovinare e verificarlo. "Serious" significa non il metodo homegrown di qualcuno, ma anche MD5, che è rotto per alcuni usi, è considerato serio qui, così come il tradizionale hashing delle password basato su DES di Unix che ha ancora la resistenza che avrebbe dovuto avere (è solo che questa quantità è troppo poco per la potenza di calcolo di oggi). In altre parole, se ho H e voglio trovare P tale che Hash (P) = H, allora l'unico modo è trovare P è fare un'ipotesi, calcolare l'hash di questa ipotesi e vedere se è uguale a H.

Tutti i metodi di cracking della password possono quindi essere classificati come forza bruta. La forza bruta può ancora usare astuti trucchi. È possibile calcolare gli hash di molte potenziali password e quindi cercare molti hash nelle tabelle risultanti, ovvero un dizionario. Dovevi ancora calcolare tutti gli hash che stai per crackare (e altro ancora). Le tabelle Rainbow consistono nel calcolare un numero enorme di hash e memorizzarle in modo intelligente. Una tabella arcobaleno è un metodo per comprimere un dizionario. Questi metodi basati sul dizionario si basano sulla precomputazione che può essere condivisa tra molti tentativi di cracking e sono resi inutili dalla corretta salatura.

I password cracker funzionano sempre enumerando tutte le password possibili. L'intelligenza deriva dall'enumerazione delle parole chiave più probabili prima - p@ssw0rd e 1loveYou prima di navpbtbf e homechasebogbigamy .

    
risposta data 29.06.2013 - 11:27
fonte
3

La ricerca esauriente è la (sola) risposta. Le tabelle Rainbow sono una ricerca esauriente eseguita in anticipo e la salatura è un metodo utile per legare un determinato tentativo di hash SOLO a una singola voce di password (per contrastare tabelle arcobaleno e tecniche simili).

Puoi accelerare le ricerche esaustive cercando prima le password comuni. Questa è l'idea dietro un attacco di dizionario.

    
risposta data 29.06.2013 - 03:38
fonte
0
  1. Sì, un altro metodo è una ricerca approfondita delle chiavi, per quanto ne so.
  2. Non sono sicuro. ma la ricerca di una chiave esaustiva può essere scelta come target.

Again Not sure.

    
risposta data 29.06.2013 - 03:14
fonte
0

Con gli hash devi indovinare la password giusta o indovinare una stringa che genera lo stesso hash della password. Questo è noto come collisione hash. Ci sono alcuni attacchi basati su collisioni che aiutano a sfruttare le collisioni nell'algoritmo di hashing tuttavia gli algoritmi di hashing moderni hanno meno possibilità di collisione. Non ci sono attacchi noti sull'inversione degli algoritmi di hashing (chiunque mi corregga se ho torto).

L'unico algoritmo di hashing che sospetto possa essere reversibile è SHA, ma solo perché sono paranoico e credo che la NSA si sarebbe costruita in una backdoor al momento della creazione. È loro compito screpolare messaggi crittografati! Se fossi in loro avrei costruito una backdoor:)

Prova alcuni degli elenchi di password su SkullSecurity sono abbastanza buoni. Controlla anche Ophcrack e JohnTheRipper .

    
risposta data 29.06.2013 - 04:28
fonte
0

Se si tratta di MD4, MD5, SHA1, DCC, NTLM, MySQL che stai cercando di invertire, puoi usare Hashcat ( link )

    
risposta data 29.06.2013 - 07:26
fonte

Leggi altre domande sui tag