Come funzionano gli attacchi brute force
Perché la lunghezza conta: esempi di calcolo e contromisure.
Negli attacchi brute force gli aggressori cercano di indovinare una password tramite prove sistematiche di tutte le possibili combinazioni di caratteri. L'idea di base è semplice: testare il maggior numero possibile di combinazioni al secondo, idealmente su GPU o in sistemi distribuiti. Si parla anche di una ricerca esaustiva (ricerca esaustiva).
In pratica, purtroppo questi attacchi hanno spesso successo perché molte password sono troppo corte , si limitano a pochi gruppi di caratteri (solo lettere) oppure compaiono in liste di parole. Questo riduce drasticamente lo spazio di ricerca e rende più facile indovinarle. Ancora più importante: si distingue tra attacchi online (contro i moduli di login, dove aiutano il rate limiting e il blocco dell’account) e attacchi offline (contro hash di password rubati, dove la funzione di hash e la robustezza della password determinano il tempo necessario per l’attacco).
Craccare password (offline) ≠ “decifrare”
Le password non vengono decifrate, ma memorizzate come valori hash e poi ricercate tramite tentativi + hashing (brute force, attacchi a dizionario/maschera). La velocità di calcolo dell’hardware moderno raggiunge miliardi al secondo (per gli algoritmi di hash veloci), motivo per cui le password lunghe e hashate con algoritmi lenti (ad es. Argon2, scrypt, PBKDF2, bcrypt) sono fondamentali.
Riferimento storico e attuale: Il progetto RC5 di distributed.net dimostra la forza bruta di una ricerca esaustiva applicata a uno spazio delle chiavi: 56 bit furono trovati nel 1997 dopo 250 giorni, 64 bit nel 2002 dopo 1.757 giorni. Attualmente, il Proxy-Status per RC5-72 circa 2,38 trilioni di chiavi al secondo (dato aggiornato al giorno della consultazione). Si tratta di forza bruta delle chiavi e non di hashing delle password, ma rende evidente quanto possa scalare la potenza di calcolo distribuita.
Combinazione e lunghezza della password
Gli esempi seguenti mostrano l’influenza di lunghezza e scelta dei caratteri. A scopo illustrativo si considera una velocità di 2 miliardi di tentativi al secondo (singolo sistema molto potente; i valori reali variano notevolmente in base all’hardware e, nel caso offline, anche al metodo di hashing).
Gruppi di caratteri tipici:
- Numeri (10: 0-9)
- Lettere (52: A-Z e a-z)
- Caratteri speciali (≈ 32; dipende dal set di caratteri consentito dal servizio)
Il numero di combinazioni possibili si ottiene da:
Importante: La tabella mostra il tempo di ricerca massimo. In media, il tempo effettivo è pari a circa la metà. Inoltre, gli attacchi con dizionario, basati su regole e con maschere riducono notevolmente lo spazio di ricerca, mentre i metodi di hashing delle password lenti riducono drasticamente il tasso effettivo.
| La password è composta da | Tempo necessario (a 2 mld/s) | Combinazioni possibili (formula) |
|---|---|---|
| 5 caratteri 3 minuscole, 2 cifre | 0,009 secondi | (53) × 263 × 10217.576.000 |
| 7 caratteri 1 maiuscola, 6 minuscole | ≈ 28 secondi | (71) × 261+656.222.671.232 |
| 8 caratteri 4 minuscole, 2 caratteri speciali, 2 cifre | ≈ 2,73 ore | (84) × (42) × 264 × 322 × 10219.653.623.808.000 |
| 9 caratteri 2 maiuscole, 3 minuscole, 2 cifre, 2 caratteri speciali | ≈ 53 giorni | (92) × (73) × (42) × 262+3 × 102 × 3229.197.895.942.144.000 |
| 12 caratteri 3 maiuscole, 4 minuscole, 3 caratteri speciali, 2 cifre | ≈ 115.591 anni | (123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021 |
| 14 caratteri 4 maiuscole, 4 minuscole, 3 cifre, 3 caratteri speciali | ≈ 455.812.388 anni | (144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025 |
Conclusione: Ogni carattere aggiuntivo moltiplica lo spazio di ricerca. La lunghezza conta più delle regole di complessità, soprattutto contro Attacchi offline – a condizione che i servizi utilizzino algoritmi di hash adeguati e lenti con salt.
Protezione dagli attacchi brute force
La misura più efficace per gli utenti è una Master-Passwort lungo e casuale oppure una passphrase (ad es. più parole casuali) – unica per ogni servizio. Password Depot aiuta a generarla e mostra un’stima del tempo di attacco che, oltre a lunghezza/set di caratteri, tiene conto anche delle vulnerabilità legate al dizionario.
- Attivare MFA/2FA (ad es. app TOTP o token hardware) – dove possibile, i Passkeys sono ancora meglio. Vedi le indicazioni del BSI.
- Nessun riutilizzo delle password. Ogni account deve avere una password propria e robusta.
- Meglio la lunghezza che la complessità obbligatoria. I servizi dovrebbero consentire password/passphrase lunghe (almeno 64 caratteri) e bloccare le password compromesse (blacklist).
- Algoritmi di hash lenti lato server (ad es. Argon2, scrypt, PBKDF2, bcrypt) con Salt e fattori di lavoro adeguati; hash veloci come MD5/SHA-1 non sono adatti alla memorizzazione delle password.
- Rate limiting/throttling e blocchi: Gli attacchi online devono essere rallentati tramite un numero limitato di tentativi errati, tempi di attesa progressivi e, se necessario, CAPTCHA.
Inoltre, Password Depot ostacola i tentativi di online rate guessing bloccando per breve tempo la schermata di inserimento del Master-Passwort dopo input errati, con tempi di attesa crescenti in caso di ripetuti tentativi falliti.
Indicazioni pratiche per i fornitori di servizi (team tecnici)
- Accettate tutti i caratteri stampabili, inclusi spazi/Unicode, e consentite il copia e incolla.
- Implementate blocklist (password compromesse/comuni) e rate limiting con indicazioni chiare per gli utenti.
- Memorizzate le password esclusivamente come valori con salt e hash con KDF lenti e verificate regolarmente i fattori di lavoro.
Fonti di approfondimento
- NIST SP 800–63B (Rev. 4), Appendix: Strength of Passwords – lunghezza, passphrase, attacchi offline (miliardi di hash/sec.) e concetto di rate limiting.
- NIST SP 800–63B (Rev. 3) – tra l’altro, lunghezza minima, consentire password lunghe (≥ 64), blacklist, consentire l’incolla; rate limiting/throttling con limitazione a max. 100 tentativi consecutivi falliti.
- OWASP Password Storage Cheat Sheet – procedure idonee (Argon2, scrypt, PBKDF2, bcrypt), salt/fattori di lavoro.
- OWASP Authentication Cheat Sheet – linee guida su inserimento della password, lunghezza, blacklist e meccanismi di blocco.
- BSI: creare password sicure – tra l’altro password lunghe/complesse e passphrase; consigli pratici.
- Comunicato stampa BSI 31.01.2025 – nessun cambio password periodico forzato; preferire 2FA/passkey.
- distributed.net RC5 / stato attuale del proxy – esempio illustrativo di ricerca esaustiva e potenza di calcolo distribuita.
Creare password sicure
Scoprite come creare password in grado di resistere agli attacchi brute force.
Consigli per password sicure