« La tua password deve contenere 8 caratteri, una lettera maiuscola, una minuscola, un numero e un carattere speciale. »
Tutti conosciamo questa regola. Eppure, nella sicurezza informatica, questo è ciò che chiamiamo “teatro della sicurezza”. Una password come P@ssw0rd1! rispetta tutte queste regole. Ma è una parola comune con sostituzioni prevedibili, esattamente ciò che gli strumenti di cracking provano per primo.
La vera sicurezza non si basa su regole visive arbitrarie, ma su una spietata realtà matematica: l’entropia.
L’Entropia secondo Claude Shannon
Per comprendere la forza di una password, dobbiamo guardare a Claude Shannon, il padre della teoria dell’informazione. L’entropia misura il grado di incertezza o imprevedibilità dell’informazione.
Applicata alle password, l’entropia è calcolata in bit. Maggiore è il numero di bit, più imprevedibile è la password per un computer. La formula semplificata per l’entropia (E) di una password generata casualmente è:
E = L × log2(R)
- L è la lunghezza della password.
- R è la dimensione del pool (26 per le minuscole, 62 con maiuscole e numeri, 94 con tutti i simboli stampabili). I quattro insiemi di caratteri del nostro generatore ne danno 91, perché il suo insieme di simboli ha 29 caratteri.
Aumentare la dimensione del pool (aggiungendo simboli) aumenta l’entropia, ma aumentare la lunghezza (aggiungendo caratteri) la aumenta in modo molto più drastico. Tuttavia, la lunghezza batte la complessità solo a una condizione: la password deve essere generata in modo completamente casuale.
Forza Bruta vs. Attacco a Dizionario
Se usi parole o strutture prevedibili, la regola della pura lunghezza crolla.
I software di hacking non provano tutte le combinazioni di lettere una per una (questo si chiama Forza Bruta / Brute Force). Usano enormi elenchi di password reali provenienti da passate fughe di dati, insieme a parole e frasi comuni. Questo è l’Attacco a Dizionario (Dictionary Attack).
Se la tua password è lunga, ma composta da parole del dizionario o sostituzioni prevedibili, la sua vera entropia è drammaticamente inferiore alla sua entropia matematica teorica.
La tabella seguente usa una sola regola: 100 miliardi di tentativi al secondo, il ritmo che la pagina del nostro generatore presuppone per un attacco offline contro un hash rapido. I tempi sono medie (metà di tutte le possibilità), arrotondate verso il basso con la stessa formula di quella pagina. Il percorso più veloce per ogni password è in grassetto:
| Password | Entropia se ogni carattere fosse casuale | Forza bruta (media) | Attacco a dizionario (nostra stima) |
|---|---|---|---|
password123 | 56 bit (11 caratteri, minuscole e numeri) | 7 giorni | Meno di un secondo |
S3cr3t!99 | 58 bit (9 caratteri, tutti e quattro gli insiemi) | 24 giorni | Meno di un secondo |
correct horse battery staple | 133 bit (28 caratteri, minuscole e spazio) | Più di 1 mille miliardi di anni | 1 minuto |
gL7!pQ9z#vX2 | 78 bit (12 caratteri, tutti e quattro gli insiemi) | 51 mila anni | Nessuna scorciatoia |
La colonna del dizionario è una stima. Presuppone che i tentativi dell’attaccante seguano la struttura di ogni password e che ogni parola di base sia tra le 1.000 più comuni:
password123: una parola comune e tre cifre. Sono 1.000 × 1.000, circa un milione di tentativi.S3cr3t!99: una parola comune, con o senza maiuscola, ogni “e” sostituita o no da “3”, poi un qualsiasi suffisso di tre caratteri. Sono circa 7 miliardi di tentativi.correct horse battery staple: quattro parole comuni. Il fumetto xkcd che l’ha resa famosa conta 44 bit per quattro parole da una lista di 2.048. Allo stesso ritmo sono 88 secondi in media, arrotondati verso il basso a 1 minuto.gL7!pQ9z#vX2: nessuna parola e nessuno schema, quindi la forza bruta è il percorso più veloce.
Queste stime trattano ogni password come sconosciuta all’attaccante. Ogni password di questo articolo ora è pubblica, quindi ognuna appartiene a un dizionario. Una password pubblicata è una password bruciata.
L’illusione del Leetspeak e le regole di mutazione
Prendiamo l’esempio S3cr3t!99. Visivamente, sembra complessa e robusta. Eppure, è semplicemente la parola del dizionario “secret”, dove le ’e’ sono state sostituite da ‘3’, a cui è stato aggiunto un suffisso molto comune (!99). Questo si chiama leetspeak.
Contro un attacco a dizionario, questa password resiste meno di un secondo, non i 24 giorni che la sua lunghezza farebbe pensare. I moderni software di cracking (come Hashcat) non si limitano a testare elenchi di parole statici; applicano automaticamente regole di mutazione. Prenderanno ogni parola nel loro dizionario, testeranno tutte le possibili combinazioni leetspeak, scambieranno le maiuscole e aggiungeranno anni o simboli. Il leetspeak fornisce un falso senso di sicurezza.
Il trucco dello spostamento della tastiera (Keyboard Shift)
Per complicare una frase memorizzabile, alcuni usano il trucco dello spostamento del layout della tastiera. Ad esempio, memorizzi una frase come my-cat. Ma quando la digiti, posizioni le dita su una tastiera fisica QWERTY mentre il tuo sistema operativo è configurato in AZERTY (francese).
- La parola pensata:
my-cat - Il risultato digitato:
,y)cqt(Il tasto ’m’ diventa ‘,’; il ‘-’ diventa ‘)’; la ‘a’ diventa ‘q’).
È una buona idea in OPSEC? No, questo metodo non è sufficiente se usato da solo. Proprio come il leetspeak, uno spostamento di layout è una sostituzione fissa: un attaccante che lo sospetta applica la stessa corrispondenza a ogni tentativo. In OPSEC, questa è sicurezza tramite segretezza (security by obscurity): ritarda un attaccante amatoriale, ma non fermerà un attacco mirato ed equipaggiato.
Abbinata a una password già forte (come una lunga passphrase casuale), aggiunge poco. Anche se un attaccante prova mille coppie di layout, si aggiungono meno di 10 bit, perché log2(1.000) ≈ 9,97. La forza viene sempre dalla passphrase sottostante.
Costruire una Master Password (~250 bit)
Se gli elenchi di parole, il leetspeak e i trucchi di digitazione hanno i loro limiti, come costruiamo una master password che duri? Il nostro generatore classifica già 80 bit come “Forte” e 100 bit come “Molto Forte”. Per una master password destinata a durare decenni, questo articolo punta molto più in alto: circa 250 bit di entropia. La sezione quantistica qui sotto spiega perché, e cosa quel margine non garantisce.
Ci sono due modi per raggiungere questo obiettivo a seconda delle tue esigenze:
1. Caratteri Casuali (per un password manager)
Una stringa di caratteri generata del tutto a caso, senza schemi che una macchina possa sfruttare:
8}8,_$-p)M&n,XvUCT0o+.5hDE6P^w6b@U-evS0
39 caratteri estratti a caso tra i 91 del nostro generatore: ≈ 253 bit. È stata estratta per questo articolo, quindi ora è pubblica. Non usarla mai.
2. Una Passphrase Casuale (per una password da ricordare)
Le parole casuali sono più facili da ricordare dei caratteri casuali. Ogni parola estratta dalla lista EFF di 7.776 parole aggiunge circa 12,9 bit, quindi è il numero di parole a dare l’entropia. Dodici parole danno ≈ 155 bit, molto oltre la soglia “Molto Forte” del nostro generatore. Le sole parole superano i 250 bit solo a partire da 20 parole.
Il nostro generatore si ferma a 12 parole. Per superare i 250 bit con meno parole, spunta “Cifra casuale dopo ogni parola” e scegli “Cifra + Simbolo” come separatore. Undici parole danno allora ≈ 260 bit:
depletion78$sporting14~overlap11>macaw86>paced95,paramedic41}blot41$flagstone07;uncanny92/broadways77#say2
Estratta a caso per questo articolo, esattamente con queste impostazioni. Una password pubblicata è una password bruciata: non usare mai questa, né alcun esempio che leggi. Conta solo ciò che è estratto a caso. Mettere la maiuscola a ogni parola non aggiunge nulla, e le parole scelte da te sono molto più deboli di quelle casuali.
La Minaccia Quantistica: L’Algoritmo di Grover
Perché puntare a 250 bit quando 128 bit bloccano già i supercomputer di oggi? La risposta risiede nella prospettiva di grandi computer quantistici.
In crittografia, l’algoritmo di Grover consente a un computer quantistico di cercare in un database non ordinato molto più velocemente di un computer classico. Concretamente, Grover dimezza efficacemente il livello di sicurezza di una chiave simmetrica o di una password.
Contro un computer quantistico che esegue l’algoritmo di Grover, una password con un’entropia di 128 bit offrirebbe, in teoria, una resistenza equivalente a soli 64 bit. È un margine molto più sottile.
Raddoppiare l’entropia mantiene il margine: circa 256 bit lascerebbero ancora circa 128 bit contro Grover. Da qui nasce l’obiettivo di 250 bit di questo articolo. È una precauzione scelta da questo articolo, non una cifra presa da uno standard.
Il margine ha dei limiti. L’accelerazione di Grover è quadratica, non illimitata. Ognuno dei suoi passi deve comunque calcolare l’hash della password del sito, su un computer quantistico abbastanza grande da eseguirlo. Per confronto, ai 100 miliardi di tentativi al secondo che la pagina del nostro generatore presuppone, una ricerca media su 100 bit richiede già almeno 200 miliardi di anni.
La logica ricorda Harvest Now, Decrypt Later (HNDL): un database rubato di hash di password può essere conservato oggi e attaccato in seguito, con macchine migliori. Un margine più ampio alza l’asticella contro questo rischio. Non è una garanzia permanente.
Arpokrat Password Generator: Crea la tua
Non lasciare la sicurezza dei tuoi accessi al caso. Il nostro generatore gratuito crea password e passphrase casuali. Per ognuna mostra l’entropia in bit e il tempo medio che richiederebbe una ricerca.
Si limita a generare: non valuta una password che usi già. Per l’obiettivo di 250 bit indicato sopra, scegli una password di 39 caratteri con tutti e quattro gli insiemi di caratteri. Il generatore la mostra come “≈ 253 bit”.
Funziona nel tuo browser. Ciò che genera non viene mai inviato né salvato.
L’Ultimo Anello Debole: Riciclo e Gestione degli Accessi
L’entropia matematica non protegge dall’errore umano. Una password a 250 bit perde il suo valore non appena viene violata, se viene riutilizzata su più siti (un attacco chiamato Credential Stuffing) o se non è protetta da un secondo fattore di autenticazione (2FA).
La regola d’oro dell’igiene digitale è di dover ricordare una sola password: la tua master password a 250 bit (una passphrase casuale, come sopra). Tutti i tuoi altri accessi (banca, social network, server) devono utilizzare password casuali uniche, generate specificamente per loro.
Per archiviare tutte queste password che non puoi ricordare, usa un password manager. Scegline uno che cifri il tuo caveau sul tuo dispositivo prima di sincronizzarlo (ciò che spesso si chiama zero-knowledge), idealmente open source e verificato in modo indipendente.
