Apri il menu principale

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 (metodo forza bruta, o attacco brute force) è quello di tentare tutte le possibili combinazioni di caratteri, e di confrontarle con un hash crittografico della password.[1]

Lo scopo del password cracking potrebbe essere quello di aiutare un utente a recuperare una password dimenticata, ottenere l'accesso 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 l'accesso a prove digitali, per le quali un giudice ha permesso l'accesso ma l'accesso stesso ai file è ristretto.

Tempo necessario per la ricerca della passwordModifica

Il tempo per craccare una password dipende dalla complessità della password (password strength), che è una misura dell'entropia 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.[2]

L'abilità 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 l'attacco, questo numero può essere piuttosto grande. Se invece non è disponibile, il numero di password che possono essere controllate al secondo dipende da diversi fattori:

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

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 l'attacco 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[3][4][5]. 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 dall'utente 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. 230 sono solamente 1 milardo di permutazioni[6] 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[7]. 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 000 password al secondo in un computer comune utilizzando processori grafici di fascia alta[8]. 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, l'Electronic 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[9]. Nel 2010, l'istituto 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[10].[11][12]

Facili da ricordare, difficili da indovinareModifica

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

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

In "The memorability and Security of Passwords"[14], Jeff Yan esaminò l'effetto 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 l'utente 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 l'attacco. 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[15].

IncidentiModifica

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 dell'attacco 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. L'Imperva Application Defense Center (ADC) analizzò la forza delle password[16].

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 dell'Operazione AntiSec, un movimento che include Anonymous, LulzSec e altri gruppi di pirati informatici[17].

L'11 luglio 2011 i server di Booz Allen Hamilton, una importante azienda di consulenza Americana che lavora per il Pentagono, vennero violati da Anonymous e 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[18].

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

PrevenzioneModifica

Il metodo migliore per prevenire che una password venga craccata è quello di assicurarsi che chi sta cercando di attaccarci non riesca ad ottenere l'accesso nemmeno alle password cifrate. Per esempio, nei sistemi operativi Unix, le password cifrate erano inizialmente memorizzate in un file/etc/passwdpubblicamente 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[20][21].

I moderni sistemi Unix hanno sostituito le tradizionali funzioni crittografiche delle password DES-based con metodi più complessi come bcrypt e scrypt[22]. 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[23].

Molti metodi di cifratura utilizzati per memorizzare password sono nati per computazioni veloci ed implementazione efficiente con l'hardware; 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.

SoftwareModifica

Ci sono molti software per il password cracking, ma i più popolari[24] sono Cain & Abel, John the Ripper, Hashcat, Hydra, DaveGrohl e ElcomSoft. Molti pacchetti software di supporto all'informatica 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.

L'aumento 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.[25]

NoteModifica

  1. ^ Brute-Force Password Cracker, su www.oxid.it. URL consultato il 12 marzo 2016 (archiviato dall'url originale il 2 marzo 2016).
  2. ^ SleuthSayers: PINs and Passwords, Part 2, su www.sleuthsayers.org. URL consultato il 12 marzo 2016.
  3. ^ The Bug Charmer: How long should passwords be?, su bugcharmer.blogspot.it. URL consultato il 12 marzo 2016.
  4. ^ BitWeasil, Cryptohaze Blog: 154 Billion NTLM/sec on 10 hashes, su blog.cryptohaze.com. URL consultato il 12 marzo 2016.
  5. ^ oclHashcat-lite - advanced password recovery, su hashcat.net. URL consultato il 12 marzo 2016.
  6. ^ NIST (PDF), su csrc.nist.gov, 27 marzo 2008.
  7. ^ stats.distributed.net - RC5-64 Overall Project Stats, su stats.distributed.net. URL consultato il 12 marzo 2016.
  8. ^ A complete suite of ElcomSoft password recovery tools, su www.elcomsoft.com. URL consultato il 12 marzo 2016.
  9. ^ EFF DES Cracker Press Release, July 17, 1998, su w2.eff.org. URL consultato il 12 marzo 2016 (archiviato dall'url originale il 22 luglio 2012).
  10. ^ The Rise of The Programmable GPU – And The Death Of The Modern Password, su techdrawl.com, 21 febbraio 2011. URL consultato il 12 marzo 2016 (archiviato dall'url originale il 21 febbraio 2011).
  11. ^ Want to deter hackers? Make your password longer, su msnbc.com. URL consultato il 12 marzo 2016.
  12. ^ Teraflop Troubles: The Power of Graphics Processing Units May Threaten the World’s Password Security System | Georgia Tech Research Institute, su www.gtri.gatech.edu. URL consultato il 12 marzo 2016.
  13. ^ Ashlee Vance, Simple Passwords Remain Popular, Despite Risk of Hacking, in The New York Times, 20 gennaio 2010. URL consultato il 13 marzo 2016.
  14. ^ J. Yan, A. Blackwell e R. Anderson, Password memorability and security: empirical results, in IEEE Security Privacy, vol. 2, nº 5, 1º settembre 2004, pp. 25–31, DOI:10.1109/MSP.2004.81. URL consultato il 13 marzo 2016.
  15. ^ New Technology Cracks 'Strong' Passwords -- What You Need To Know, su Forbes. URL consultato il 13 marzo 2016.
  16. ^ http://www.imperva.com/docs/WP_Consumer_Password_Worst_Practices.pdf
  17. ^ NATO site hacked, su theregister.co.uk. URL consultato il 14 marzo 2016.
  18. ^ Sam Biddle, Anonymous Leaks 90,000 Military Email Accounts in Latest #AntiSec Attack, su Gizmodo. URL consultato il 14 marzo 2016.
  19. ^ Imperva, Microsoft's Hotmail Bans 123456, su blog.imperva.com (archiviato dall'url originale il 27 marzo 2012).
  20. ^ Abe Singer, no plaintext passwords.
  21. ^ Cryptography: Cryptanalysis of Microsoft's Point-to-Point Tunneling Protocol (PPTP) - Schneier on Security, su www.schneier.com. URL consultato il 20 marzo 2016.
  22. ^ USENIX Technical Program - Abstract - USENIX 99, su www.usenix.org. URL consultato il 20 marzo 2016.
  23. ^ USENIX | The Advanced Computing Systems Association (PDF), su www.usenix.org. URL consultato il 20 marzo 2016.
  24. ^ Password auditing – SecTools Top Network Security Tools, su sectools.org. URL consultato il 24 aprile 2016.
  25. ^ How I became a password cracker, su Ars Technica. URL consultato il 24 aprile 2016.
  Portale Sicurezza informatica: accedi alle voci di Wikipedia che trattano di sicurezza informatica