Passphrase: una password fatta di parole, da usare con criterio
Una passphrase è una sequenza di parole estratte casualmente, più facile da ricordare rispetto a una password tradizionale. È sicura solo a una condizione imprescindibile: che le parole siano davvero casuali. Ecco come crearne una, quante parole scegliere e i rari casi in cui rappresenta la soluzione giusta.
Cos'è una passphrase?
Una passphrase è una password composta da più parole intere estratte casualmente, ad esempio "oblò ciliegia vertigine pentola tuffo sgabello". Invece di combinare caratteri, si combinano parole.
Il metodo di riferimento si chiama Diceware. Consiste nell'estrarre a sorte alcune parole da un elenco pubblico di circa 7 800 termini, storicamente con dei dadi (da cui il nome), oggi con un generatore. Due aspetti determinano il valore del metodo: le parole vengono estratte a sorte e non scelte, e non hanno alcun legame tra loro, né grammaticale né tematico. Ciò che rende una passphrase difficile da ricordare è esattamente ciò che la rende sicura. Qualsiasi tentativo di renderla più comoda la indebolisce.
Una passphrase è sicura perché è lunga?
No. Una passphrase è sicura perché è estratta casualmente, non perché è lunga. Non appena racconta qualcosa, la sua protezione crolla.
Questo è il malinteso di partenza. La passphrase viene spesso presentata come lunga, memorizzabile e molto sicura, come se queste tre qualità andassero necessariamente di pari passo. In realtà, solo l'origine casuale delle parole produce sicurezza. Una frase inventata di testa e una passphrase estratta a sorte possono essere indistinguibili a occhio nudo: solo il metodo di generazione le differenzia.
Cos'è l'entropia e perché è l'unica cosa che conta?
L'entropia misura la difficoltà di indovinare un segreto. Si esprime in bit, e la regola si riassume in una frase: ogni bit aggiuntivo raddoppia il lavoro dell'attaccante.
Alcuni punti di riferimento:
| Entropia | Numero di possibilità | Cosa significa in pratica |
|---|---|---|
| 40 bit | mille miliardi | cede in pochi minuti offline |
| 60 bit | un milione di volte di più | serio, ma non irraggiungibile |
| 80 bit | ancora un milione di volte di più | fuori dalla portata del realizzabile |
Il dettaglio che cambia tutto: l'entropia non descrive il segreto, descrive il modo in cui è stato scelto. Un generatore casuale potrebbe produrre "ciao", e sarebbe comunque un'estrazione legittima; l'utente che digita "ciao" di propria iniziativa non ha invece alcuna protezione. Non è l'aspetto della password a contare, ma il numero di possibilità tra cui è stata estratta. È la stessa meccanica che fa sì che la lunghezza di una password conti più della sua complessità: allungare moltiplica le possibilità, aggiungere caratteri speciali non fa quasi nulla.
Quante parole servono per una passphrase sicura?
Sei parole come minimo. Sette o otto per un segreto che protegge tutto il resto, come la password principale di un gestore di password o la cifratura di un disco.
| Parole estratte casualmente | Entropia | Equivalente in password generata | Caratteri da digitare |
|---|---|---|---|
| 4 parole | 52 bit | 8 caratteri | ~25 |
| 5 parole | 65 bit | 10 caratteri | ~32 |
| 6 parole | 78 bit | 12 caratteri | ~38 |
| 7 parole | 90 bit | 14 caratteri | ~44 |
| 8 parole | 103 bit | 16 caratteri | ~51 |
Tradotto in tempo di calcolo, di fronte a un attaccante capace di mille miliardi di tentativi al secondo (ipotesi pessimistica, che presuppone un segreto rubato e mal protetto lato server): quattro parole cedono in meno di un'ora, cinque parole reggono qualche mese, sei parole resistono per diverse migliaia di anni, sette parole sono irraggiungibili.
Perché essere più esigenti sulla password principale o sulla cifratura di un disco? Perché sono esposte all'attacco offline. Un attaccante che riesce a ottenerle può tentare di violarle in autonomia, senza limiti di tentativi. Nessuna protezione lato server può fermarlo: rimane solo l'entropia del segreto.
Un dettaglio utile: ampliare l'elenco di parole, cioè scegliere termini poco comuni, è quasi inutile. Passare da 7 800 a 20 000 parole guadagna appena un bit e mezzo per parola, perché bisogna raddoppiare l'elenco per ottenere un solo bit in più. L'unica leva che conta è il numero di parole.
Perché una passphrase deve essere più lunga di una password generata?
Perché una parola apporta meno sicurezza di quanto sembri. Una parola estratta casualmente da un elenco di 7 800 vale circa 13 bit, equivalenti a soli due caratteri, pur richiedendo cinque o sei battute.
In altre parole, una passphrase produce circa tre volte meno sicurezza per carattere digitato rispetto a una password generata. È l'unico caso in cui lunghezza apparente e robustezza reale divergono nettamente. Una passphrase di trentacinque caratteri colpisce visivamente; vale però quanto una password generata di una dozzina di caratteri. Il rapporto è notevolmente costante: una parola estratta casualmente vale circa due caratteri casuali.
Si può usare una frase di senso compiuto per ricordarla più facilmente?
No, è l'errore più diffuso. In una frase coerente, ogni parola restringe il campo delle parole successive invece di moltiplicarlo, che è esattamente l'opposto del meccanismo ricercato.
Prendiamo una passphrase che inizia con "sono andato al...". Le prime parole formano una sequenza frequente: apportano quasi nulla, un attaccante le testa subito. Quanto alla parola successiva, la grammatica e il senso la confinano in una manciata di candidati plausibili: ristorante, cinema, mercato, ufficio, parco. Qualche decina di opzioni, laddove l'estrazione casuale ne offrirebbe quasi ottomila.
Una frase italiana di senso compiuto si attesta attorno a un bit per carattere, contro 6,5 per il vero caso. Una frase di quaranta caratteri può quindi valere meno di una password generata di sette. Non si tratta di una preoccupazione teorica: gli strumenti di cracking attuali integrano modelli linguistici ed esplorano prioritariamente le sequenze naturali. Testi di canzoni, proverbi, titoli e battute celebri sono nei dizionari d'attacco da tempo. Il ricordo personale non è una via d'uscita: l'attaccante non ha bisogno di conoscere il ricordo, solo la lingua.
Bisogna aggiungere maiuscole, numeri e simboli?
Non è necessario. Su una passphrase, queste aggiunte rendono poco, mentre una parola in più estratta casualmente cambia tutto.
| Aggiunta | Guadagno reale |
|---|---|
| Maiuscola alla prima parola | 0 bit, lo fa chiunque |
| Aggiungere "!" o "1" alla fine | 2-3 bit |
| Separatore originale (-, _, .) | circa 2 bit |
| Sostituire lettere con simboli (a diventa @) | quasi nullo, queste sostituzioni sono già negli strumenti |
| Aggiungere una parola estratta casualmente | +13 bit |
Quali sono gli svantaggi di una passphrase?
La memorizzazione richiede un impegno reale, la digitazione su mobile è scomoda soprattutto se i caratteri non vengono mostrati. Questi limiti vengono raramente menzionati, ma condizionano il suo utilizzo.
Ricordare sei-otto parole rigorosamente senza alcun legame tra loro non è immediato: richiede uno sforzo di memorizzazione. È più facile di una password generata di pari robustezza, ma non è gratuito. Digitare quaranta caratteri su tastiera touch più volte al giorno, con la correzione automatica che interferisce, è un motivo di abbandono molto concreto. Infine, un limite massimo a venti o trentadue caratteri, ancora frequente, rende l'esercizio impossibile.
Quando usare davvero una passphrase?
Solo per i rari segreti che è necessario ricordare a memoria, perché nessuno strumento può richiamarli al momento giusto. In tutti gli altri casi, una password generata fa meglio.
I casi d'uso appropriati sono pochi:
- La password principale di un gestore di password
- La cifratura di un disco o di un backup
- Una frase di recupero che non si può conservare da nessuna parte
- Un segreto condiviso a voce o per telefono
Quest'ultimo caso è un vantaggio raramente citato: una sequenza di parole si detta, si scrive a mano e si riscrive senza errori, mentre una password generata trasforma ogni 0/O e ogni l/1 in una fonte di confusione. Per tutto il resto, le decine di account quotidiani, una password generata, unica e mai memorizzata è migliore sotto ogni punto di vista. La domanda giusta non è quindi "passphrase o password generata?" ma "ho bisogno di ricordare questo segreto a memoria?". La risposta dovrebbe essere sì solo raramente in una vita digitale, tanto più che le passkey riducono ulteriormente il numero di segreti da memorizzare. Il generatore integrato nel gestore di password di Octopussian produce del resto una passphrase con la stessa casualità crittografica di una password tradizionale.
Come creare correttamente una passphrase?
Lasciando che una macchina estragga le parole a sorte e non cedendo alla tentazione di sistemarle. L'entropia sta nell'estrazione, non nel modo in cui la si ricorda.
- Non scegliere le parole da soli. Contrariamente a quanto si pensa, è difficile scegliere davvero a caso: usare dadi o un generatore crittografico, non l'intuito.
- Non rilanciare una parola che non piace. Scartare le estrazioni sgradite equivale a ridurre l'elenco. Se il risultato è davvero impraticabile, si rilancia l'intera sequenza, non una parola isolata.
- Non abbreviare l'elenco. Con un elenco corto (circa 1 300 parole), servono circa otto parole per raggiungere la sicurezza che sei parole danno con l'elenco lungo.
- Un aiuto mnemonico non costa nulla. Inventare un'immagine assurda per ricordare un'estrazione casuale non indebolisce il segreto. Ciò che è vietato è comporre la frase a partire da una storia.
- Scrivere la frase su carta durante la memorizzazione è un compromesso ragionevole, a condizione di distruggerla una volta che la memorizzazione è acquisita.
- Una passphrase non si riutilizza, proprio come una password. E non sostituisce il secondo fattore: protegge dall'indovinare, non dal phishing, da un keylogger o da una violazione lato server.
Cosa ricordare
- Una passphrase è sicura perché è estratta casualmente, non perché è lunga.
- Sei parole come minimo, sette o otto per una password principale o la cifratura di un disco.
- Non usare mai una frase di senso compiuto: ogni parola prevedibile riduce la sicurezza.
- Una parola casuale in più vale più di tutte le maiuscole, numeri e simboli messi insieme.
- La passphrase serve solo per i segreti da ricordare a memoria; per tutto il resto, un generatore è preferibile.