Anche se il World Password Day è passato (si tiene ogni anno il primo giovedì di maggio), il nostro (e speriamo il tuo) interesse per la sicurezza delle password non si ferma mai. Invece di analizzare le password artificiali “di laboratorio” create appositamente per gli studi, siamo rimasti nel mondo reale e abbiamo esaminato password reali trapelate nel dark Web. I risultati sono stati allarmanti: il 59% di queste password potrebbe essere decriptato in meno di un’ora e tutto ciò che serve è una scheda grafica moderna e un po’ di know-how.
Il post di oggi spiega come gli hacker decriptano le password e come proteggersi (spoiler: con una protezione affidabile e controllando automaticamente l'eventualità di fughe di password.
Decriptare password, livello base
Per iniziare, chiariamo cosa intendiamo con “decriptare una password”. Si tratta propriamente dell’operazione di decriptaggio dell’hash della password, cioè una sequenza univoca di caratteri che rappresenta la password. Le aziende in genere archiviano le password degli utenti in tre modi:
- In testo semplice. È il modo più semplice e chiaro: se la password di un utente è, ad esempio, qwerty12345, viene archiviata nel server aziendale come qwerty12345. Se si verifica una violazione dei dati, l’hacker dovrà solo immettere la password per il nome utente corrispondente. Nel caso, naturalmente, che non sia in atto l’autenticazione a due fattori (2FA); ma fosse anche questo il caso, i criminali informatici potrebbero comunque riuscire a intercettare le password monouso.
- Con hash. Questo metodo utilizza algoritmi di hashing come MD5 e SHA-1 per trasformare ogni password in un valore hash univoco sotto forma di una stringa di caratteri a lunghezza fissa, archiviata nel server. Quando l’utente immette la password, il sistema converte la sequenza di caratteri digitata in un hash e la confronta con quella archiviata nel server. Se le sequenze corrispondono, la password è corretta. Ecco un esempio: se la tua password è qwerty12345, “tradotta” in SHA-1 avrà questo aspetto: 4e17a448e043206801b95de317e07c839770c8b8. Gli hacker che ottengono questo hash dovrebbero ricostruirlo in qwerty12345 (questa è la parte di “decriptaggio della password”), ad esempio usando tabelle Rainbow. Una password decriptata può quindi essere utilizzata per accedere non solo al servizio compromesso, ma potenzialmente anche ad altri account in cui la password è stata riutilizzata.
- Con hash salting. Suona come un comando di obedience per cani di razza, invece è un metodo che aggiunge una sequenza casuale di dati, il cosiddetto salting (in inglese significa “salare”), a ciascuna password prima dell’hashing. Il salting può essere statico oppure essere generato dinamicamente. Una sequenza password+salting viene inserita nell’algoritmo, dando vita a un hash diverso. Pertanto, le tabelle Rainbow precalcolate diventano inutili nelle mani degli hacker. L’uso di questo metodo di archiviazione delle password le rende molto più difficili da decriptare.
Per il nostro studio abbiamo stilato un database di 193 milioni di password trapelate in testo semplice. Dove le abbiamo trovate? Bisogna sapere dove guardare. Le abbiamo trovate nel dark Web, dove questi “tesori” sono spesso disponibili gratuitamente. Abbiamo usato questo database per verificare se le password degli utenti sono trapelate, ma ti assicuriamo che non memorizziamo, né possiamo vedere alcuna password. Puoi leggere di più sulla struttura interna del caveau delle password usato da Kaspersky Password Manager e come, senza conoscere le tue password, le combiniamo con quelle trapelate.
Il costo del decriptaggio delle password
Le moderne GPU sono lo strumento migliore per analizzare la forza di una password. Ad esempio, una RTX 4090 abbinata allo strumento di recupero password hashcat raggiunge una velocità di 164 miliardi di hash al secondo (GH/s) su hash salting MD5.
Immaginiamo una password di 8 caratteri che utilizzi sia lettere (tutte minuscole o tutte maiuscole) che cifre, con 36 possibili caratteri per posizione. Il numero di possibili combinazioni uniche è di 2,8 trilioni (calcolato elevando 36 alla potenza di otto). Una CPU con una potenza di elaborazione di 6,7 miliardi di hash al secondo (GH/s ) potrebbe forzare tale password in sette minuti. Ma la citata RTX 4090 gestisce l’operazione in soli 17 secondi.
Sebbene una GPU di questo tipo costi poco meno di 2.000 dollari, gli aggressori che non sono in grado di procurarsene una possono facilmente affittare potenza di calcolo per pochi dollari all’ora. Ma cosa succede se affittano una dozzina di RTX 4090 contemporaneamente? Ciò fornirebbe abbastanza potenza per elaborare con facilità enormi database di hash trapelati.
Il 59% delle password è decriptabile in meno di un’ora
Abbiamo testato la sicurezza delle password usando sia algoritmi di forza bruta che algoritmi di ipotesi. Mentre la forza bruta scorre tutte le possibili combinazioni di caratteri una a una finché non trova una corrispondenza, gli algoritmi di ipotesi intelligenti vengono addestrati su un set di dati per calcolare la frequenza delle varie combinazioni di caratteri ed effettuare scelte, dalle combinazioni più comuni fino a quelle più rare. Per saperne di più su questi algoritmi, leggi la versione completa della nostra ricerca su Securelist.
I risultati sono stati inquietanti: uno sbalorditivo 45% dei 193 milioni di password reali analizzate (ovvero 87 milioni di password!) potrebbe essere decriptato dall’algoritmo intelligente entro un minuto, il 59% entro un’ora, il 67% entro un mese e solo il 23% delle password potrebbe essere considerato veramente forte, in quanto richiede più di un anno per essere decriptato.
Tempo di decriptazione | Percentuale di password decriptabili con il metodo indicato | |
Attacco di forza bruta | Ipotesi intelligente | |
Meno di un minuto | 10% | 45% |
Da 10 minuti a 1 ora | +10% (20%) | +14% (59%) |
Da 1 ora a 1 giorno | +6% (26%) | +8% (67%) |
Da 1 giorno a 1 mese | +9% (35%) | +6% (73%) |
Da 1 mese a 1 anno | +10% (45%) | +4% (77%) |
Oltre 1 anno | +55% (100%) | +23% (100%) |
È importante notare che decriptare tutte le password presenti nel database non richiede molto più tempo che decriptarne solo una! A ogni iterazione, dopo avere calcolato l’hash per la successiva combinazione di caratteri, l’aggressore verifica se esiste nel database generale. In caso affermativo, la password in questione viene contrassegnata come “decriptata”, dopodiché l’algoritmo continua a indovinare altre password.
Perché gli algoritmi di ipotesi intelligenti sono così efficaci?
Gli esseri umani sono prevedibili. Raramente scegliamo password veramente casuali e i nostri tentativi di generarle impallidiscono rispetto a quelli automatici. Ci affidiamo a frasi, date, nomi e schemi comuni: esattamente ciò per cui gli algoritmi di ipotesi intelligenti sono progettati.
Inoltre, il cervello umano è tale che se chiedi a un campione di persone di scegliere un numero compreso tra uno e cento, la maggior parte sceglierà… lo stesso numero! Il canale YouTube Veritasium ha intervistato più di 200.000 persone e ha riscontrato che i numeri più popolari sono 7, 37, 42, 69, 73 e 77.
Anche quando si tenta di creare stringhe di caratteri casuali, si tende a privilegiare i tasti al centro della tastiera. È stato riscontrato che circa il 57% di tutte le password analizzate contiene una parola del dizionario o una combinazione di simboli frequente. È preoccupante che il 51% di queste password possa essere decriptato in meno di un minuto, il 67% in meno di un’ora e solo il 12% in più di un anno. Qualche password era costituita da una singola parola del dizionario (che poteva essere decriptata in un minuto). Vedi il post di Securelist per ulteriori informazioni sui modelli di password che abbiamo riscontrato.
Gli algoritmi intelligenti si sbarazzano facilmente della maggior parte delle password che contengono sequenze di dizionari. E rilevano anche le sostituzioni di caratteri, quindi scrivere “pa$$word” anziché “password” o “@admin” anziché “admin” non renderà la password granché più sicura. L’uso di parole e sequenze numeriche popolari è ugualmente rischioso. Nel 4% delle password esaminate, sono emerse le seguenti:
- 12345
- 123456
- love
- 12345678
- 123456789
- admin
- team
- qwer
- 54321
- password
Raccomandazioni
Risultati del nostro studio pratico:
- Molte password personali non sono abbastanza forti; il 59% di esse può essere decriptata in un’ora.
- L’uso di parole significative, nomi e sequenze di caratteri standard nella password riduce notevolmente il tempo per indovinare la password.
- La password meno sicura è quella che consiste interamente di numeri o di parole.
Per proteggere i tuoi account, prendi in considerazione i seguenti semplici consigli:
- Genera password complesse con Kaspersky Password Manager.
- Se decidi di creare una password da solo, utilizza passphrase mnemoniche anziché combinazioni di parole significative, nomi o sequenze di dizionari.
- Non riutilizzare mai le password in siti diversi, perché non tutte le aziende archiviano i dati degli utenti in modo sicuro.
- Non salvare mai le password nei browser.
- Conserva le tue password in modo sicuro in un gestore di password e crea una password primaria a prova di scassinatura.
- Verifica la resistenza della tua password con Password Checker o direttamente in [placeholder KPM]. Identificherà le password deboli e duplicate, controllerà tutte le tue password rispetto ai database compromessi e ti avviserà se viene trovata una corrispondenza.
- Usa Kaspersky Premiumper monitorare continuamente in background tutti gli account collegati ai telefoni o agli indirizzi e-mail tuoi e dei tuoi famigliari per rilevare eventuali fughe di dati.
- Abilita l’autenticazione 2FA ove possibile. Per inciso, Kaspersky Password Manager consente anche di salvare token 2FA e generare codici monouso.