Password cracking

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Il password cracking (decrittazione forzata[1][2] o violazione delle password) è un processo di recupero delle password utilizzato nella criptoanalisi e sicurezza informatica, mediante l'utilizzo di informazioni che sono state immagazzinate o trasmesse da un sistema informatico. Un approccio comune, il metodo forza bruta (o brute force), è quello di tentare il maggior numero di possibili combinazioni di caratteri e di confrontarle con un hash crittografico della password.[3]

Tale azione di recupero può avere finalità molteplici:

  • permettere a un soggetto di recuperare una propria password dimenticata;
  • ottenere l'accesso non autorizzato a un sistema o a un documento protetto;
  • come misura preventiva, da parte di un amministratore di sistema, per valutare la presenza nel proprio sistema di password facilmente violabili;
  • in ambito giudiziario, su mandato di un'autorità, per ottenere l'accesso a prove che sono state rese inaccessibili mediante password.

Descrizione[modifica | modifica wikitesto]

Il tempo per decrittare una password dipende dalla sua robustezza (password strength), che è una misura dell'entropia dell'informazione, insieme alle tecniche mediante le quali è stata memorizzata.

La maggior parte dei metodi di decrittazione forzata richiede un dispositivo per produrre una serie di password candidate, ciascuna delle quali viene poi verificata. Un esempio è il metodo forza bruta, nel quale un computer prova semplicemente ogni possibile chiave finché la ricerca non ha successo. Questo metodo, a seconda della complessità della password e del metodo di archiviazione, può richiedere ore, giorni, ma anche mesi o numerosi anni.[4]

Altri metodi comuni, come l'attacco a dizionario, tentano di ridurre il numero di tentativi richiesti utilizzando set prestabiliti di password più probabili o comuni, 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; riducendo perciò la probabilità che la password venga trovata in qualsiasi dizionario di cracking.[5][4]

La possibilità di decrittare una password dipende anche dal numero di possibili password per secondo che il sistema permette di tentare prima di bloccarsi o impedire ulteriori tentativi. 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 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[6][7][8]. 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 più solida rispetto a una funzione più 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 e altre corrispondenze del dizionario, raggiunge una complessità pari a 30 bit, secondo NIST. 230 sono solamente 1 miliardo di permutazioni[9] e la password verrebbe craccata in pochi secondi se la funzione hash fosse semplice. Quando più computer vengono combinati per craccare password, come può essere fatto per mezzo delle 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 allo stesso tempo, che hanno generato in media circa 12 milioni di password per secondo[10].

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[11]. 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 tale scopo. 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[12]. 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[13].[14][15]

Facili da ricordare, difficili da indovinare[modifica | modifica wikitesto]

Una password facile da ricordare di solito è anche facile da indovinare per chi ci sta attaccando[16]. 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"[17], 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 metodo 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[18].

Casi significativi[modifica | modifica wikitesto]

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[19].

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[20].

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[21].

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

Prevenzione[modifica | modifica wikitesto]

Il metodo migliore per prevenire che una password venga craccata è quello di assicurarsi che chi sta cercando di attaccarci non riesca a 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[23][24].

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

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.

Software[modifica | modifica wikitesto]

Sono disponibili numerosi software per la decrittazione delle passowrd, fra questi:[27] 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 utilizza multiple strategie di decrittazione, algoritmi di forza bruta e attacchi per mezzo di dizionari di parole, aumentando l'efficacia dell'azione.

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.[28]

Note[modifica | modifica wikitesto]

  1. ^ Terrorismo: le nuove misure proposte per affrontare la minaccia, su Parlamento Europeo, 27 novembre 2018.
  2. ^ Marco Bozzetti, Pieraugusto Pozzi e Roberto Masotti, Crimine virtuale, minaccia reale, Franco Angeli, 2004, p. 46, ISBN 9788846457592.
  3. ^ Brute-Force Password Cracker, su oxid.it. URL consultato il 12 marzo 2016 (archiviato dall'url originale il 2 marzo 2016).
  4. ^ a b Michele Nasi, Quanto tempo ci vuole per violare una password? Ce lo ricorda Acronis, su ilSoftware, 3 maggio 2023.
  5. ^ SleuthSayers: PINs and Passwords, Part 2, su sleuthsayers.org. URL consultato il 12 marzo 2016.
  6. ^ The Bug Charmer: How long should passwords be?, su bugcharmer.blogspot.it. URL consultato il 12 marzo 2016 (archiviato dall'url originale il 13 marzo 2016).
  7. ^ BitWeasil, Cryptohaze Blog: 154 Billion NTLM/sec on 10 hashes, su blog.cryptohaze.com. URL consultato il 12 marzo 2016.
  8. ^ oclHashcat-lite - advanced password recovery, su hashcat.net. URL consultato il 12 marzo 2016 (archiviato dall'url originale il 26 giugno 2016).
  9. ^ NIST (PDF), su csrc.nist.gov, 27 marzo 2008 (archiviato dall'url originale l'8 febbraio 2017).
  10. ^ RC5-64 Overall Project Stats, su stats.distributed.net. URL consultato il 12 marzo 2016 (archiviato dall'url originale il 18 maggio 2019).
  11. ^ A complete suite of ElcomSoft password recovery tools, su elcomsoft.com. URL consultato il 12 marzo 2016 (archiviato dall'url originale il 13 marzo 2016).
  12. ^ 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).
  13. ^ 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).
  14. ^ Want to deter hackers? Make your password longer, su nbcnews.com. URL consultato il 12 marzo 2016.
  15. ^ Teraflop Troubles: The Power of Graphics Processing Units May Threaten the World’s Password Security System | Georgia Tech Research Institute, su gtri.gatech.edu. URL consultato il 12 marzo 2016.
  16. ^ Ashlee Vance, Simple Passwords Remain Popular, Despite Risk of Hacking, in The New York Times, 20 gennaio 2010. URL consultato il 13 marzo 2016.
  17. ^ 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 10 luglio 2023 (archiviato dall'url originale il 16 marzo 2016).
  18. ^ New Technology Cracks 'Strong' Passwords -- What You Need To Know, su Forbes. URL consultato il 13 marzo 2016.
  19. ^ http://www.imperva.com/docs/WP_Consumer_Password_Worst_Practices.pdf
  20. ^ NATO site hacked, su theregister.co.uk. URL consultato il 14 marzo 2016.
  21. ^ Sam Biddle, Anonymous Leaks 90,000 Military Email Accounts in Latest #AntiSec Attack, su Gizmodo. URL consultato il 14 marzo 2016.
  22. ^ Imperva, Microsoft's Hotmail Bans 123456, su blog.imperva.com (archiviato dall'url originale il 27 marzo 2012).
  23. ^ Abe Singer, no plaintext passwords.
  24. ^ Cryptography: Cryptanalysis of Microsoft's Point-to-Point Tunneling Protocol (PPTP) - Schneier on Security, su schneier.com. URL consultato il 20 marzo 2016 (archiviato dall'url originale il 1º aprile 2016).
  25. ^ USENIX Technical Program - Abstract - USENIX 99, su usenix.org. URL consultato il 20 marzo 2016.
  26. ^ USENIX | The Advanced Computing Systems Association (PDF), su usenix.org. URL consultato il 20 marzo 2016.
  27. ^ Password auditing – SecTools Top Network Security Tools, su sectools.org. URL consultato il 24 aprile 2016.
  28. ^ How I became a password cracker, su Ars Technica. URL consultato il 24 aprile 2016 (archiviato dall'url originale l'8 luglio 2017).

Voci correlate[modifica | modifica wikitesto]

  Portale Sicurezza informatica: accedi alle voci di Wikipedia che trattano di sicurezza informatica