DI JOHN MADERO

Trovare password? Bazzicando sulla blogosfera vedrete che il nuovo “standard” è multipiattaforma e si chiama Ophcrack.
Per intenderci, riesce a craccare la password saMejus9 in 140 secondi e Fgpyyih804423 in soli 159!

Come funzione? Utilizza le cosiddette Rainbow tables, un gigantesco archivio di password che viene mano a mano copiato nella ram del vostro pc per poi essere confrontato, valore per valore, con la password da trovare.

Il meccanismo si basa sull’uso degli hash: quando una password viene salvata sul vostro pc non viene memorizzata in chiaro (in ‘plain text’), ma viene codificata con una funzione non reversibile (una delle più popolari, per esempio, si chiama MD5), il cui risultato è appunto un cosiddetto hash.
Tanto per capirci la password “pippo”, codificata con una nostra funzione non reversibile (chiamate anche “a senso unico” – “one-way”), potrebbe diventare te63h73ifd92jd62hs7fhei827dhs83e, e così essere memorizzata.

Immagine del post

In seguito, per capire se l’utente ha inserito la password corretta, è sufficiente applicare alla password da lui proposta la stessa funzione e confrontarne il risultato con l’hash che sappiamo essere corretto.
In questo modo, anche se qualcuno accedesse al file con gli hash delle password, non riuscirebbe comunque a trafugare le password stesse.

Ma torniamo al software di cui parlavamo all’inizio. Questo contiene la Rainbow table di Ophcrack: un gigantesco archivio di hash. Nel dettaglio la Rainbow table per password solo alfanumeriche lunghe fino a 14 caratteri può variare, per dimensioni, dai 380 ai 720mb.
Un archivio degli hash usati dai sistemi NT, che utilizzano una funzione reversibile più potente, può ingombrare addirittura dai 600mb ai 64gb.
Chiaramente più una Rainbow table è vasta, più velocemente troverete le vostre password.A proposito, perchè avete bisogno di crackare delle password?!?

Btw, trovate maggiori informazioni qui.


RISPOSTA DI BLACKSTORM

Interessante articolo. Le Rainbow Tables sono una gran cosa. Forse. Dunque, partiamo dal principio: funzionano queste Rainbow Tables? Si e no. Si, perchè effettivamente su un meccanismo di hash puro e semplice sono devastanti, anche se, come citato nel link proposto da Madero (fra l’altro Coding Horror è un sito che apprezzo molto), una passphrase (ossia una password che è una frase tutta attaccata senza spazi) del tipo thequickbrownfoxjumpsoverthelazydog non viene craccata. Inoltre, molti software (in realtà quasi tutti) usano il cosiddetto “salting” ossia aggiungere una parola, più o meno lunga alla password: per esempio posso decidere che la mia password di salting sia “super”. Se la mia password è “pippo”, l’hash non verrà effettuato su “pippo” ma su “superpippo”. Ecco, in questo caso, scordatevi pure che Ophcrack funzioni. Senza contare che in ogni caso serve una quantità di memoria non indifferente per allocare le tabelle (anche 64 GB. E siccome questa tabella va allocata nella RAM, allocare una tabella da 64 GB a 2 GB alla volta potrebbe risultare leggermente pesante). Consiglio anche una attenta lettura del link postato da Atwood in fondo al suo articolo, nell’update (scritto in rosso).

E questo per precisazione. La parte più interessante in tutto questo, è però la domanda in fondo: a proposito, perchè avete bisogno di crackare delle password?!?

Perchè? La domanda è volutamente provocatoria. A me è successo di tentare, per un documento, non particolarmente importante, del quale non ricordavo più la password. E questo è l’unico motivo “legale” che mi viene in mente, insieme all’interesse accademico per i crackme (programmi creati apposta per essere craccati, disponibili ad esempio qui). Oppure provare ad entrare nel sistema di un amico, con la sua autorizzazione, oppure fare i penetration test per un’azienda. Per il resto, i motivi in genere sono questi… questi e il voler entrare senza autorizzazione in certi sistemi, per divertimento o per un nobile ideale per il quale si compiono nefandezze varie e assortite.

La verità è che alla fine le Ranibow Tables sono un divertissement: possono funzionare su sistemi programmati un po’ con i piedi, o per testare la velocità della propria macchina… Ma all’atto pratico servono a ben poco, perchè come dice Thomas Ptacek:

Here’s what you need to know about rainbow tables: no modern password scheme is vulnerable to them. Rainbow tables are easy to beat. For each password, generate a random number (a nonce). Hash the password with the nonce, and store both the hash and the nonce. The server has enough information to verify passwords (the nonce is stored in the clear). But even with a small random value, say, 16 bits, rainbow tables are infeasible: there are now 65,536 “variants” of each hash, and instead of 300 billion rainbow table entries, you need quadrillions. The nonce in this scheme is called a “salt”. Cool, huh? Yeah, and Unix crypt —- almost the lowest common denominator in security systems —- has had this feature since 1976. If this is news to you, you shouldn’t be designing password systems. Use someone else’s good one. No, really. Use someone else’s password system. Don’t build your own.

E non posso che concordare.


___

La lezione di Oilproject che ti suggeriamo oggi è Licenze Creative Commons: fondamenti teorici e consigli di Simone Aliprandi.