Nel panorama della sicurezza informatica, scegliere e creare password robuste rimane un pilastro fondamentale. Un mondo completamente passwordless è ancora molto lontano: le stesse passkey presentano degli svantaggi che non è possibile non prendere in considerazione. Oggi continua quindi a essere importante l’impostazione di password forti, meno soggette agli attacchi brute force. Violare le password è infatti diventato ancora più semplice nel 2024, soprattutto grazie alle imponenti risorse computazionali ai quali utenti non autorizzati e criminali informatici possono accedere per impossessarsi delle credenziali altrui.
Le password deboli sono quelle che mancano di complessità e lunghezza. Ciò le rende facili da indovinare o da scoprire attraverso attacchi automatizzati (brute force). Questi tentativi di aggressione consistono nel provare ripetutamente tutte le possibili combinazioni di caratteri fino a trovare la password corretta.
Quali sono le caratteristiche di una password debole
Le password più corte sono in assoluto le più semplici da scoprire: il numero limitato di combinazioni che un aggressore deve provare, ne fa una facile preda per chi pone in essere attacchi brute force. Inoltre, le password composte soltanto da lettere minuscole o numeri sono più facili da indovinare rispetto a quelle che includono una combinazione di lettere maiuscole, minuscole, numeri e caratteri speciali.
Allo stesso modo, le password basate su parole di uso comune, nomi, date di nascita o altre informazioni facilmente accessibili, sono significativamente più semplici da violare. Sequenze (pattern) prevedibili, come “123456” o “password” sono le prime che vengono testate dagli attaccanti.
Posto che la scelta di una password robusta e la contestuale attivazione dell’autenticazione a due fattori rappresentano la migliore difesa per proteggersi dagli attacchi, vediamo in quanto tempo – nel 2024 – un aggressore può risalire a qualunque password l’utente abbia impostato.
Violare le password risalendo alla versione in chiaro, partendo dall’hash
Sperabilmente, i server dei servizi online che utilizzate ogni giorno memorizzano le password degli utenti in modo sicuro. Utilizzano cioè una funzione di hashing che trasforma la password in una versione codificata, completamente differente dalla password originale. L’hash funziona a senso unico: non è una funzione invertibile. In altre parole, sempre che l’algoritmo di hashing utilizzato sia intrinsecamente sicuro, un aggressore non può risalire alla password in chiaro partendo dal suo hash.
In un altro articolo abbiamo visto cos’è l’hash di una password e perché è importante.
Provate ad esempio, in Windows 10 o in Windows 11, a premere la combinazione di tasti Windows+X
quindi a scegliere Windows Powershell o Terminale. Nella finestra PowerShell incollate il codice seguente e premete il tasto Invio:
$password = Read-Host -Prompt "Inserisci la password" -AsSecureString; $hash = [System.BitConverter]::ToString((New-Object System.Security.Cryptography.SHA256Managed).ComputeHash([System.Text.Encoding]::UTF8.GetBytes(([System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)))))) -replace '-', ''; Write-Host "L'hash SHA-256 della password è: $hash"
Dopo aver inserito una password qualsiasi, otterrete l’hash corrispondente generato utilizzando – in questo caso – l’algoritmo SHA-256. Ad esempio, scrivendo password1234
, vedrete che l’hash restituito sarà il seguente:
B9C950640E1B3740E98ACB93E669C65766F6670DD1609BA91FF41052BA48C6F3
Per craccare le password, solitamente gli aggressori generano un elenco di tutte le combinazioni possibili dei caratteri utilizzati dagli utenti e, per ciascuno di essi, generano l’hash corrispondente. Cercando eventuali corrispondenze tra la password hashed, recuperata ad esempio in seguito a un incidente informatico (i.e. dai server del gestore di un certo servizio online) e la lista di hash generati, è possibile risalire alla password in chiaro impostata dall’utente-vittima.
Il ruolo delle schede grafiche per craccare le password
La generazione delle possibili combinazioni di una password (prendendo in considerazione parametri come lunghezza e tipologia dei caratteri utilizzati) è fattibile con qualunque dispositivo ma diventa molto più veloce se si ricorre a una potente scheda grafica.
Hashcat è uno strumento per la violazione delle password molto potente e ampiamente utilizzato. Supporta una vasta gamma di algoritmi di hashing e può essere utilizzato per eseguire attacchi di forza bruta (brute force) o altri tipi di attacchi per cercare di ottenere le password originali a partire da un dato hash.
Ecco, combinando una batteria di GPU, oggi facilmente accessibili anche tramite le principali piattaforme cloud (non è necessario investire cifre importanti per allestire configurazioni potenti in locale…), il lavoro di password cracking è diventato molto più snello rispetto al passato. Da qui, discende l’ovvia osservazione che password un tempo “forti” sulla base delle loro caratteristiche, oggi non sono più sufficientemente sicure.
La tabella pubblicata da Hive Systems (riprodotta sopra) vale più di mille parole. Se si dessero ancora per buone le raccomandazioni del NIST (National Institute of Standards and Technology) datate 2017, che caldeggiavano l’utilizzo di password lunghe non meno di 8 caratteri, ci troveremmo oggi sempre nella parte più alta della tabella (colori viola e rosso). Il cracking delle password sarebbe in ogni caso istantaneo o comunque le tempistiche sarebbero brevi usando, al massimo, una configurazione basata su una batteria di 12 GPU NVIDIA RTX 4090.
Le vostre password sono verdi?
In questo caso l’ecologia e la sostenibilità ambientale non c’entrano nulla. Gli esperti di Hive Systems esortano gli utenti ad assicurarsi che le loro password siano verdi, ovvero situate nella parte inferiore destra della tabella sopra riprodotta.
Un aspetto importante è che i tecnici di Hive Systems danno per scontato che l’hash della password da violare sia frutto di un algoritmo di hashing efficace e sicuro. Sappiamo che MD5, ad esempio, non fornisce da tempo alcuna garanzia in termini di sicurezza e nel 2017 Google ha dichiarato non sicuro anche SHA-1.
I tempi necessari per violare le password a partire da un hash, espressi in tabella, si riferiscono all’utilizzo di bcrypt, un algoritmo di hashing progettato per essere resiliente ai tentativi di forza bruta e ai cosiddetti “attacchi a dizionario“. Quindi, se il cracking di una password fosse stimato come rapido o piuttosto veloce con bcrypt, i tempi di aggressione con algoritmi “deboli” possono risultare assai più ridotti.
Per essere al sicuro, incrociate il numero di caratteri che contraddistinguono la password (prima colonna a sinistra) con le sue caratteristiche (combinazioni di lettere, numeri e caratteri speciali) quindi traete le vostre conclusioni.
Credit immagine in apertura: iStock.com – matejmo