Una percentuale di robustezza è un’opinione con due cifre decimali.
Quando un sito ti dice che la tua password è «sicura al 92 %», la domanda ovvia è: al 92 % di cosa? Qual è il 100 %? Non esiste. Nessuno ha mai pubblicato la password perfetta contro cui si misurano tutte le altre. Quel numero esce da una proporzione improvvisata da qualcuno un martedì pomeriggio —tot punti per la maiuscola, tot per il simbolo— e il suo unico compito vero è farti comparire la barretta verde perché tu vada avanti.
I bit, invece, significano sempre esattamente la stessa cosa. E significano qualcosa che puoi usare.
Un bit è una domanda da sì o no
Tutta l’idea sta in una frase: ogni bit raddoppia il numero di tentativi che servono a qualcuno che di te non sa niente.
Un bit sono due possibilità. Due bit sono quattro. Tre, otto. Dieci bit sono 1.024 e venti bit sono poco più di un milione. Il conto non sale, si raddoppia, ed è il raddoppio a mandare l’intuizione fuori strada.
Per questo la frase «40 bit sono il doppio di 20» è falsa in un modo quasi divertente. Fra 20 e 40 bit ci sono venti raddoppi, cioè un fattore 2²⁰: 40 bit non sono il doppio di 20, sono un milione di volte tanto. E 60 bit non sono il triplo di 20: sono un milione di volte più di 40. La nostra testa legge quella scala come se fosse un metro da falegname, e non lo è. È una scala come quella dei terremoti o dei decibel, dove un passettino nel numero è un salto brutale nella realtà.
Tutto qui il vantaggio del bit sulla percentuale. La percentuale ti dà una sensazione. Il bit ti dà una quantità di lavoro.
Da dove viene la parola
La parola entropia applicata all’informazione viene da un articolo del 1948: A Mathematical Theory of Communication, di Claude Shannon.
Conviene dirlo con precisione, perché lo si cita male spesso: Shannon non stava pensando alle password. Non esistevano password da computer degne di nota. Stava lavorando ai Bell Labs su un problema molto diverso —quanta informazione trasporta davvero un messaggio, e quanto lo si può comprimere prima di romperlo— e gli serviva misurare una cosa sfuggente: l’incertezza di chi sta dall’altra parte.
La sua scoperta, detta alla buona, è che l’informazione e la sorpresa sono la stessa cosa. Un messaggio che già sapevi non ti informa di niente. Un messaggio impossibile da anticipare ti informa moltissimo. L’entropia misura quanta sorpresa c’è nella sorgente che produce i messaggi, e si misura in bit.
Che tutto questo serva per le password è quasi un incidente fortunato. Una password è, esattamente, un messaggio che deve essere impossibile da anticipare.
Il lucchetto a rotelle
Ecco l’unica formula dell’articolo, e prometto che non fa male:
H = L × log₂(N)
Dimentica il logaritmo per un attimo e pensa a uno di quei lucchetti da bicicletta con le rotelle. Hai due modi per complicare la vita a chi vuole aprirlo:
- Mettere più rotelle. Questa è la lunghezza (
L): quanti caratteri ha la tua password. - Mettere più simboli su ogni rotella. Questo è l’alfabeto (
N): se ogni rotella porta solo le dieci cifre, o le 26 lettere, o lettere e numeri e segni.
Il logaritmo fa una cosa sola: tradurre «quanti simboli porta una rotella» in «quanti bit dà quella rotella». Una rotella da 26 lettere dà circa 4,7 bit. Una rotella con i 95 caratteri stampabili della tastiera ne dà circa 6,6.
Ed ecco la battuta. Guarda dove sta ogni cosa nella formula. L’alfabeto sta dentro il logaritmo, schiacciato; la lunghezza sta fuori, a moltiplicare.
Quasi quadruplicare i simboli di ogni rotella —da 26 lettere a 95 caratteri— ti
compra meno di due bit per rotella. Aggiungere una rotella ti compra un log₂(N)
intero, un’altra volta, e un’altra, e un’altra. Per questo dodici lettere
minuscole e basta (circa 56 bit) battono otto caratteri con maiuscole, numeri e
quei simboli che i moduli pretendono (circa 53). P@ssw0rd perde contro
cavallocorrettobatteriagraffetta, e non ci va nemmeno vicino.
Il NIST, nella sua SP 800-63B, è arrivato allo stesso posto per un’altra strada: ha buttato a mare le regole di composizione —una maiuscola, un numero, un simbolo— e si è tenuto la lunghezza e il controllo della password contro liste di credenziali trapelate. Meglio non mettergli in bocca quello che non dice: il suo argomento non è quello della formula, ma che obbligare le persone a infilare un simbolo non le rende imprevedibili, le rende solo prevedibili in un altro modo. Di fatto, il documento stesso diffida delle stime di entropia di una password scelta da una persona. Due ragionamenti diversi, la stessa conclusione. La complessità obbligatoria lavora dentro il logaritmo. La lunghezza lavora fuori.
La postilla che quasi nessuno legge
C’è una fregatura, ed è la parte onesta di tutta la faccenda: l’entropia non misura la tua password, misura il processo che l’ha creata.
4$Kp!9zQ non ha quei 53 bit perché sembra difficile. Li ha se —e solo se— è
uscita da un sorteggio davvero casuale fra i 95 tasti. Se l’hai scritta tu
cercando di sembrare casuale, la formula non si applica: tu non sei un sorteggio.
Metti la maiuscola all’inizio, il numero alla fine, e il simbolo è un !. Chi ti
attacca non prova le 95 opzioni di ogni posizione: prova prima quelle che fanno le
persone.
Da qui nasce l’asimmetria scomoda della sicurezza delle password. L’entropia è un tetto, non un pavimento. Se la genera una macchina, il tetto è reale. Se la scegli tu, l’unica cosa che sai è che stai sotto, e non sai di quanto.
Per questo gli strumenti sono due e non uno. Il generatore sorteggia
davvero e per questo può mostrarti i bit con la faccia seria: sa quante rotelle ha
(L), sa quanti simboli porta ognuna (N) e fa la moltiplicazione davanti a te.
Se muovi il cursore e vedi salire il numero, stai vedendo la L spingere. Il
controllo, invece, non può farlo con una password che esiste
già: non ha la minima idea di come sia nata, quindi fa l’unica cosa sensata, cioè
cercarla in dizionari, nomi e sequenze di tastiera e supporre il peggio.
Cosa portarsi a casa
Tre frasi:
- Un bit è un raddoppio. Dieci bit in più sono mille volte più lavoro; venti bit in più, un milione.
- La lunghezza moltiplica, l’alfabeto quasi non somma. Aggiungere una parola vale più che aggiungere un punto esclamativo.
- I bit valgono solo se il caso è vero caso. Una macchina può prometterli. Tu, scrivendo a mano, no.
Shannon cercava quanta sorpresa sta dentro un messaggio. Settant’e passa anni dopo, salta fuori che era proprio la domanda giusta per una password: non se sembra complicata, ma quanta sorpresa si porta dentro per chi non ti conosce affatto.
Fonti: C. E. Shannon, «A Mathematical Theory of Communication», Bell System Technical Journal, 1948 · NIST SP 800-63B, Digital Identity Guidelines (Authentication and Lifecycle Management) · il generatore di password.es, che calcola H = L × log₂(N) e mostra L, N e i bit risultanti.