Indietro

ⓘ Password cracking




                                     

ⓘ Password cracking

In criptoanalisi e sicurezza informatica, password cracking è il processo di recupero delle password da informazioni che sono state immagazzinate o trasmesse da un sistema informatico. Un approccio comune è quello di tentare tutte le possibili combinazioni di caratteri, e di confrontarle con un hash crittografico della password.

Lo scopo del password cracking potrebbe essere quello di aiutare un utente a recuperare una password dimenticata, ottenere laccesso non autorizzato ad un sistema, oppure come misura preventiva da parte di un amministratore di sistema per valutare la presenza di password facilmente craccabili. In altre situazioni, il crack di una password è utilizzato per ottenere laccesso a prove digitali, per le quali un giudice ha permesso laccesso ma laccesso stesso ai file è ristretto.

                                     

1. Tempo necessario per la ricerca della password

Il tempo per craccare una password dipende dalla complessità della password strength, che è una misura dellentropia delle informazioni contenute nella password insieme ai dettagli su come la password è memorizzata. La maggior parte dei metodi per craccare una password richiedono un computer per produrre diverse password candidate, ognuna delle quali viene controllata. Un esempio è il metodo forza bruta, nel quale un computer prova ogni possibile chiave o password finché la ricerca non ha successo. Altri metodi comuni, come gli attacchi a dizionario, tentano di ridurre il numero di prove richieste e vengono spesso utilizzati prima del metodo forza bruta. Una password a complessità di bit maggiore aumenta esponenzialmente il numero di password candidate che devono essere controllate, in media, per recuperare la password; riduce la probabilità che la password venga trovata in qualsiasi dizionario di cracking.

Labilità di craccare password utilizzando programmi per computer è anche una funzione del numero di possibili password per secondo che possono essere controllate. Se un hash della password bersaglio è disponibile per chi sta attuando lattacco, questo numero può essere piuttosto grande. Se invece non è disponibile, il numero di password che possono essere controllate al secondo dipende da diversi fattori:

  • tempo di attesa tra linserimento di una password e la successiva
  • blocco forzato della connessione dopo un certo numero di tentativi falliti.
  • presenza di CAPTCHA
  • software di autenticazione che limita il numero di tentativi per la password

Una situazione in cui si può indovinare rapidamente la password è quando la password è usata per formare una chiave crittografica. In questi casi, chi sta attuando lattacco può rapidamente scoprire se una determinata password decodifica con successo dati crittografati.

Per alcuni tipi di hash di password, un classico computer desktop può testare oltre un centinaio di milioni di password al secondo utilizzando strumenti di password cracking eseguiti tramite una CPU, e miliardi di password per secondo utilizzando strumenti basati sulle GPU. Il numero di password controllate dipende fortemente dalla funzione crittografica usata dal sistema per generare gli hash della password. Una funzione di hash della password adatta, come asbcrypt, è diversi ordini di grandezza meglio rispetto ad una funzione semplice come MD5 o SHA. Una password di 8 caratteri scelta dallutente e composta da numeri, caratteri maiuscoli e minuscoli e simboli, escludendo le password più comunemente scelte ed altre corrispondenze del dizionario, raggiunge una complessità pari a 30 bit, secondo NIST. 2 30 sono solamente 1 milardo di permutazioni e la password verrebbe craccata in pochi secondi se la funzione hash fosse semplice. Quando più computer ordinari vengono combinati per craccare password, come può essere fatto con le botnet, la capacità di craccare aumenta considerevolmente. Nel 2002, distributed.net ha trovato una password RC5 a 64 bit in 4 anni, tramite lo sforzo congiunto di più di 300 000 computer diversi allo stesso tempo, che hanno generato in media circa 12 milioni di password per secondo. Le unità di elaborazione grafica GPU possono velocizzare il password cracking di un fattore tra 50 e 100 volte rispetto alle CPU. Nel 2011, prodotti disponibili in commercio hanno affermato di poter testare fino a 2 800 000 password al secondo in un computer comune utilizzando processori grafici di fascia alta. Dispositivi del genere possono craccare password di 10 lettere solo maiuscole o solo minuscole in un giorno. Inoltre è possibile distribuire il carico di lavoro su più computer per un ulteriore accelerazione, proporzionale al numero di computer disponibili con GPU comparabili tra loro.

Nonostante le loro capacità, le normali CPU desktop sono più lente a craccare password rispetto alle macchine costruite appositamente per craccare password. Nel 1998, lElectronic Frontier Foundation EFF costruì una macchina dedicata al crack delle password utilizzando ASIC, diversamente dalle CPU comuni. La loro macchina, Deep Crack, riuscì a craccare una password DES a 56 bit in 56 ore, testando più di 90 miliardi di password al secondo. Nel 2010, listituto di ricerca tecnologica della Georgia sviluppò un metodo per utilizzare GPGPU per craccare password, concludendo che la lunghezza minima per una password sicura è di 12 caratteri.

                                     

2. Facili da ricordare, difficili da indovinare

Una password facile da ricordare di solito è anche facile da indovinare per chi ci sta attaccando. Le password più difficili da ricordare, in alcuni casi, riducono la sicurezza del sistema per i seguenti motivi:

  • gli utenti avranno bisogno di frequenti reset della password
  • gli utenti sono portati a riutilizzare le stesse password
  • uno o più utenti, non riuscendo a ricordare password complesse, le scrivono oppure le salvano utilizzando metodi non sicuri,

In "The memorability and Security of Passwords", Jeff Yan esaminò leffetto dei consigli dati agli utenti per una buona scelta della password. Si scoprì che le password basate sulla prima lettera di una frase pensata sono facili da ricordare allo stesso modo di password scelte appositamente, e difficili da craccare tanto quanto le password generate a caso. Combinare due parole non collegate è un altro buon metodo; come anche avere un algoritmo personale per generare password.

Chiedere a degli utenti di ricordare una password composta di "un mix di caratteri maiuscoli e minuscoli" è come chiedere loro di ricordare una sequenza di bit: difficile da ricordare, e solo un po più difficile da craccare es. solo 128 volte più difficile da craccare utilizzando password da 7 caratteri, meno se lutente utilizza solo una lettera maiuscola. Chiedere agli utenti di utilizzare "sia caratteri che numeri" porta spesso a sostituzioni facili da indovinare, come E → 3 e I → 1, sostituzioni ben note a chi effettua lattacco. Allo stesso modo, scrivere la password utilizzando i tasti posti una riga sopra è un trucchetto comune e conosciuto da chi effettua gli attacchi.

Una dettagliata ricerca di un documento di aprile 2015, scritto da diversi professori alla Carnegie Mellon University, mostra che le scelte delle persone riguardanti la struttura delle password spesso seguono schemi ben noti. Come risultato, le password potrebbero essere craccate molto più facilmente di quanto i calcoli matematici indichino. Password contenenti un numero, per esempio, quasi sempre lo pongono alla fine della password.

                                     

3. Incidenti

Il 16 luglio 1998 il CERT segnalò un incidente in cui vennero rubate 186.126 password criptate. Nel tempo in cui venne scoperto il furto, ne erano già state craccate 47.642.

Nel dicembre 2009 avvenne una grave violazione al sito Rockyou.com, che portò alla distribuzione di 32 milioni di password. Gli artefici dellattacco fecero poi trapelare la lista completa dei 32 milioni di password senza altre informazioni sulle identità in internet. Le password erano memorizzate in chiaro nel database, e vennero estratte tramite una vulnerabilità SQL Injection. LImperva Application Defense Center ADC analizzò la forza delle password.

Nel giugno del 2011, la sicurezza della NATO venne violata e vennero rilasciati pubblicamente nomi, cognomi, username e password di oltre 11 000 utenti registrati della loro libreria elettronica. Le informazioni vennero rubate come parte dellOperazione AntiSec, un movimento che include Anonymous, LulzSec e altri gruppi di pirati informatici.

L11 luglio 2011 i server di Booz Allen Hamilton, una importante azienda di consulenza Americana che lavora per il Pentagono, vennero violati da Anonymous le informazioni trapelarono lo stesso giorno. La fuoriuscita di informazioni includeva 90 000 dati di accesso di personale militare - incluso personale di USCENTCOM, SOCOM, Marines, Air Force, personale statale e altri.

Il 18 luglio 2011 Microsoft Hotmail bannò la password: "123456".



                                     

4. Prevenzione

Il metodo migliore per prevenire che una password venga craccata è quello di assicurarsi che chi sta cercando di attaccarci non riesca ad ottenere laccesso nemmeno alle password cifrate. Per esempio, nei sistemi operativi Unix, le password cifrate erano inizialmente memorizzate in un file /etc/passwd pubblicamente accessibile. Nei sistemi Unix moderni, invece, queste password sono memorizzate nel file /etc/shadow, che è accessibile solo dai programmi con privilegi maggiori. Questo rende più difficile, per un utente malintenzionato, ottenere password cifrate. Sfortunatamente molti protocolli di rete trasmettono le password in chiaro oppure utilizzando protezioni deboli.

I moderni sistemi Unix hanno sostituito le tradizionali funzioni crittografiche delle password DES-based con metodi più complessi come bcrypt e scrypt. Anche altri sistemi hanno iniziato ad adottare questi metodi, per esempio Cisco IOS inizialmente utilizzava un cifrario di Vigenère reversibile per cifrare le password, mentre ora utilizza crittografia basata su md5-crypt. Questi nuovi metodi utilizzano valori più grandi di sale che rendono più difficili gli attacchi online contro più account allo stesso tempo. Gli algoritmi sono molto più lenti da eseguire e questo aumenta drasticamente anche il tempo necessario per mettere in atto con successo un attacco offline.

Molti metodi di cifratura utilizzati per memorizzare password sono nati per computazioni veloci ed implementazione efficiente con lhardware; per cui risultano inefficienti nel prevenire il password cracking. Utilizzare algoritmi per allungare le password, come PBKDF2, porta ad una cifratura che riduce sensibilmente il numero di password testabili per secondo.

                                     

5. Software

Ci sono molti software per il password cracking, ma i più popolari sono Cain & Abel, John the Ripper, Hashcat, Hydra, DaveGrohl e ElcomSoft. Molti pacchetti software di supporto allinformatica forense includono anche funzionalità di password cracking. La maggior parte di questi pacchetti utilizzano un mix di strategie di cracking, algoritmi brute force e attacchi a dizionario, dimostrandosi molto efficaci.

Laumento della potenza computazionale delle macchine, unita alla presenza di software di password cracking automatici e adatti anche a principianti per certe tipologie di utilizzo, ha portato alla nascita dei cosiddetti script kiddie.