Come i bene informati sapranno, le password contenute in un computer non sono MAI scritte in chiaro ma criptate secondo un algoritmo che ne genera un codice chiamato Hash [che in Inglese vuol dire "mischiare o pasticciare"]. Di algoritmi ne esistono diversi, dal più complesso che richiedere una “certa” potenza di calcolo ad altri studiati per essere più veloci da creare ma entrambe, a prescindere dalla complessità, sono tutti “mono direzionali”. Questo termine vuol dire che una volta creato l’hash, non si può più risalire all’oggetto di partenza. Quando inseriamo la password, ad esempio nel login del computer, questa viene convertita tramite l’algoritmo e confrontato l’hash generato dalla parola inserita con quella che il computer possiede in memoria. Se gli hash non corrispondono allora il login fallisce.

Per scardinare tali algoritmi esistono 2 strade. Uno è trovare una vulnerabilità nell’algoritmo e l’altro è un attacco di tipo BruteForce. Nel primo caso non sempre è possibile che esista e se ciò accade allora tale algoritmo verrà sostituito con uno più robusto ove possibile. Un esempio classico è l’MD5. Usatissimo, si è rivelato nel tempo essere affetto da “collisioni”, ossia a più password corrisponde il medesimo Hash. Capite che se per proteggere un’informazione ho utilizzato una password che rispetta certi canoni di sicurezza come complessità, lunghezza e tipologia di simboli mi aspetto in certo grado di protezione che è vanificato se l’hash della mia password corrisponde all’hash della parola “ciao”. Ecco che una volta trovato un grimaldello escano software interessanti come Ophcrack. Anche se non è mono direzionale, il codice fiscale è un codice che ci identifica come cittadini italiani per ragioni fiscali e sono dolori se esistono 2 persone col medesimo codice fiscale, e purtroppo ne esistono con tutti i problemi del caso.
Il secondo modo per conoscere la password a cui corrisponde un hash è il BruteForce. Tradotto volgarmente in “attacco di forza bruta” dove non si sfruttano vulnerabilità nell’hash ma si tentano tutte le possibili combinazioni fino a quando non si ottiene un riscontro positivo. Se la mia password è “ciao” il programma incomincerà dicendo:
la “a” corrisponde all’hash che voglio conoscere? No!
la “b” corrisponde all’hash che voglio conoscere? No!
la “c” corrisponde all’hash che voglio conoscere? No!
…
la “aaa” corrisponde all’hash che voglio conoscere? No!
la “aab” corrisponde all’hash che voglio conoscere? No!
la “aac” corrisponde all’hash che voglio conoscere? No!
…
la “abcz” corrisponde all’hash che voglio conoscere? No!
…
la “cian” corrisponde all’hash che voglio conoscere? No!
la “ciao” corrisponde all’hash che voglio conoscere? Si! - FINE -
Qualcuno quindi potrebbe dire: semplice, facciamolo…!
Il problema in questo genere di attacchi è che:
Per ovviare al problema di calcolo delle belle teste, è proprio il caso di dirlo, hanno pensato bene di usare le odierne schede grafiche.
Quasi tutte le schede grafiche, oramai, hanno al loro interno una CPU chiamata GPU per sobbarcarsi, al posto della CPU, il peso delle applicazioni grafiche come giochi, programmi di modellazione, editing video etc. Questa specificità nella tipologia di calcolo ha fatto si di avere uno strumento potentissimo, a pochi euro, in grado effettuare milioni di “comparazioni” in pochi istanti.
Ecco che nasce Extreme GPU Bruteforcer, a dir il vero non è il solo e il primo programma che lavora in tal senso. Sul sito è possibile trovare un programma in prova che dura 3 minuti e una tabella compativa che mostra il numero delle combinazioni fatte con una NVIDIA GeForce 8800GS [150€]. Tanto per sparare qualche cifra basti pensare che al secondo questa scheda grafica riesce a generare e comparare 270 millioni di hash md5 al SECONDO, cosa che con una CPU richiedono diversi giorni.
Note dolenti. Per poter utilizzare questo programma non basta una semplice scheda grafica con GPU. Ma deve essere della NVIDIA perché in questo modo è possibile fruttare CUDA. Inoltre il programma funziona solo per 3 minuti, ma per chi sa un po di reversing engenering il problema è facilmente superabile.
<a href="" title=""></a><blockquote></blockquote><code></code><em></em><strong></strong>
cavolo! con quel processore li si potrebbe anche decifrare un messaggio rsa se i due numeri primi di partenza non sono abbastanza grandi. Peccato che non abbiano fatto i test con i cifrari a chiave pubblica, sarebbe stato interessante…. ma anche molto complicato..
Non mi è chiaro comunque come faccia a riconoscere se il digest sia stato “hasciato” ricorsivamente, ad esempio applicando più volte l’md5. Bisogna saperlo a priori forse..
Ma tu ce l’hai questa NVIDIA GeForce 8800G? hai provato?
26 novembre, 2008 14:30
Allora, il funzionamente è molto semplice: hai l’eseguibile e un file di testo dentro il quale hai inserito la lista degli hash che possiedi, eh eh eh non voglio indagare come, e lui fa tutte le permutazioni fino a trovare qualcosa che ricrei il medesimo hash.
Io no, non ho quella scheda. Ho provato con una NVIDIA GeForce normalissima e il programma funziona.
26 novembre, 2008 17:21
ciao ho letto il tuo Articolo e innanzi tutto ti faccio i miei complimenti…….avrei bisogno di craccare un hash di dominio…….mscache..intendi?
Vorrei sapere se il programma funziona veramente…………..e se con questa mia scheda grafica quanto tempo potrei impiegarci…..sai darmi delle info di piu’ sul programma? per la licenza?
ecco la mia scheda grafica:
ZOTAC NVIDIA GeForce GTX260 896Mb Gddr3 448bit 2*Dvi HDTV PCi-Ex
e’ meglio di quella nell’esempio?
GRAZIE INFINITE.
COMPLIMENTI PER IL BLOG
5 dicembre, 2008 15:19