Brute force e password robuste: come funzionano e come difendersi
Un attacco brute force (letteralmente «forza bruta») prova una dopo l'altra moltissime password finché una funziona. Non ha niente di sofisticato: funziona perché tante password sono corte, prevedibili o riutilizzate. Capire come ragiona chi attacca aiuta a scegliere password migliori e a configurare sistemi che resistono.
Le varianti più comuni
- Brute force puro: prova tutte le combinazioni possibili di caratteri. È lentissimo su password lunghe e rapido su quelle corte.
- Attacco a dizionario: prova parole comuni, nomi, date e le password più usate in assoluto (
123456,password,qwerty), con piccole varianti comePassword1!. - Password spray: una sola password molto comune provata su moltissimi account, per restare sotto le soglie di blocco.
- Credential stuffing: usa coppie email e password rubate da un altro sito, contando sul fatto che molte persone riutilizzano la stessa password ovunque.
Perché la lunghezza conta più della complessità
Ogni carattere in più moltiplica il numero di tentativi necessari. Ecco quante combinazioni esistono per una password casuale, con sole minuscole (26 caratteri) oppure con lettere, cifre e simboli (circa 94 caratteri):
| Lunghezza | Solo minuscole | Lettere, cifre e simboli |
|---|---|---|
| 6 caratteri | circa 309 milioni | circa 690 miliardi |
| 8 caratteri | circa 209 miliardi | circa 6 milioni di miliardi |
| 12 caratteri | circa 9,5×10¹⁶ | circa 4,8×10²³ |
| 16 caratteri | circa 4,4×10²² | circa 3,7×10³¹ |
Attenzione però: queste cifre valgono per password davvero casuali. Una password come Marco1985! ha 10 caratteri, ma compare in qualunque dizionario con le sue varianti e cade in tempi brevissimi. Meglio una frase lunga e insolita (quattro o cinque parole non collegate fra loro) oppure una password generata a caso da un gestore.
Un esempio concreto: cosa vede chi difende
Questo è l'estratto, inventato, del registro di accesso di un servizio:
10:41:02 login fallito utente=anna ip=203.0.113.50
10:41:03 login fallito utente=anna ip=203.0.113.50
10:41:03 login fallito utente=anna ip=203.0.113.50
10:41:04 login fallito utente=anna ip=203.0.113.50
...
10:41:09 login riuscito utente=anna ip=203.0.113.50
Decine di tentativi in pochi secondi dallo stesso indirizzo, poi un accesso riuscito: nessun essere umano digita così in fretta. È la firma di un brute force andato a segno, e il punto in cui un buon sistema avrebbe dovuto reagire. (L'indirizzo 203.0.113.50 appartiene a un blocco riservato alla documentazione.)
Come ci si difende
- Password lunghe e uniche per ogni servizio, create e conservate da un password manager: così il furto di una non apre le altre.
- Autenticazione a più fattori. Con un secondo fattore, la password indovinata da sola non basta. Vedi la guida su MFA e passkey.
- Limitare i tentativi (rate limiting): blocchi temporanei sempre più lunghi, avvisi e, dopo troppi errori, una verifica aggiuntiva. Senza permettere a chiunque di bloccare a piacere l'account di un altro.
- Conservare le password come hash lenti e salati (Argon2id, bcrypt, scrypt) e mai in chiaro: il «sale» rende inutili le tabelle di hash precalcolate (le rainbow table).
- Messaggi d'errore generici: «credenziali non valide», senza dire se a sbagliare è stato il nome utente o la password. Altrimenti si regala a chi attacca un elenco degli utenti esistenti.
- Cambiare le credenziali di fabbrica di router, telecamere e pannelli di gestione: gli elenchi di password predefinite sono pubblici.
- Monitorare: allarmi per raffiche di login falliti e per accessi da posti o orari insoliti. Puoi anche controllare se la tua email compare in violazioni note su un servizio come Have I Been Pwned.