Ecco una spiegazione approfondita della matematica in questo fumetto:
Le piccole scatole nel fumetto rappresentano l ' entropia in scala logaritmica, cioè "bit". Ogni scatola significa un po 'di entropia in più. L'entropia è una misura del costo medio per ottenere la password corretta in un attacco di forza bruta. Partiamo dal presupposto che l'attaccante conosca il metodo esatto di generazione della password, comprese le distribuzioni di probabilità per scelte casuali nel metodo. Un'entropia di n bit significa che, in media, l'attaccante proverà 2n-1 password prima di trovare quella giusta. Quando le scelte casuali sono equiprobabili , hai n bit di entropia quando ci sono 2n possibili password, che significa che l'attaccante, in media, ne proverà la metà. La definizione con il costo medio è più generica, in quanto coglie i casi in cui le scelte casuali prese durante il processo di generazione della password (quella che di solito si verifica nella testa dell'utente umano) sono non uniformi. Vedremo un esempio di seguito.
Il punto di utilizzare "bit" è che si sommano. Se hai due metà della password che generi indipendentemente l'una dall'altra, una con 10 bit di entropia e l'altra con 12 bit, l'entropia totale è di 22 bit. Se dovessimo usare una scala non logaritmica, dovremmo moltiplicare: 210 scelte uniformi per la prima metà e 2 12 sup> scelte uniformi per l'altra metà compensano 2 10 · 2 12 = 2 22 scelte uniformi. Le aggiunte sono più facili da trasmettere graficamente con piccole scatole, da qui il nostro utilizzo di bit.
Detto questo, vediamo i due metodi descritti nel fumetto. Inizieremo con il secondo, che è più facile da analizzare.
Il metodo "cavallo corretto"
Il processo di generazione della password per questo metodo è: prendere un dato elenco (pubblico) di 2048 parole (presumibilmente parole comuni, facili da ricordare). Scegli quattro parole casuali in questo elenco, in modo uniforme e indipendente l'una dall'altra: seleziona una parola a caso, quindi seleziona di nuovo una parola a caso (che potrebbe essere la stessa della prima parola), e così via per una terza e poi una quarta parole. Concatena tutte e quattro le parole insieme e voilà! hai la tua password.
Ogni selezione di parole casuali vale 11 bit, perché 2 11 = 2048 e, soprattutto, ogni parola è selezionata uniformemente (tutte le 2048 parole hanno la stessa probabilità di 1/2048 di essere selezionate) e indipendentemente dalle altre parole (non scegli una parola in modo che corrisponda o no -corrisponde alle parole precedenti e, in particolare, non si rifiuta una parola se risulta essere la stessa scelta di una parola precedente). Dal momento che gli umani non sono affatto bravi a fare scelte casuali nella loro testa, dobbiamo presumere che la selezione casuale delle parole sia effettuata con un dispositivo fisico (dadi, lanci di monete, computer ...).
l'entropia totale è quindi di 44 bit, corrispondenti alle 44 caselle del fumetto.
Il metodo "troubador"
Per questo, le regole sono più complesse :
- Seleziona una parola a caso in un dato ampio elenco di parole significative.
- Decidi in modo casuale se mettere in maiuscolo la prima lettera o meno.
- Per le lettere che possono beneficiare di "sostituzioni tradizionali", applicare o meno la sostituzione (decidere in modo casuale per ogni lettera). Queste sostituzioni tradizionali possono essere, ad esempio: "o" -> "0", "a" -> "4", "i" -> "!", "E" -> "3", "l" -> "1" (le regole forniscono un elenco esaustivo pubblicamente noto).
- Aggiungi un segno di punteggiatura e una cifra.
La parola casuale è valutata a 16 bit dal fumetto, il che significa selezione uniforme in un elenco di 65536 parole (o non uniforme in un elenco più lungo). Ci sono più parole di quelle in inglese, apparentemente circa 228000, ma alcune di esse sono molto lunghe o molto brevi, altre sono così rare che le persone non le ricorderebbero affatto. "16 bit" sembra essere un conteggio plausibile.
Mettere in maiuscolo o non maiuscolo la prima lettera è, nominalmente, 1 bit di entropia (due scelte). Se l'utente fa quella scelta nella sua testa, allora questo sarà un equilibrio tra la sensazione di sicurezza dell'utente ("le maiuscole sono ovviamente più sicure!") E la pigrizia dell'utente ("le minuscole sono più facili da digitare") . Anche in questo caso, "1 bit" è plausibile.
Le "sostituzioni tradizionali" sono più complesse perché il numero di lettere ammissibili dipende dalla parola di base; qui, tre lettere, quindi 3 bit di entropia. Altre parole potrebbero avere altri conteggi, ma sembra plausibile che, in media, troveremo circa 3 lettere idonee. Questo dipende dalla lista delle "sostituzioni tradizionali", che si presume essere una data convenzione.
Per il segno di punteggiatura e la cifra extra, il fumetto fornisce 1 bit per la scelta di quale viene o il segno di punteggiatura), quindi 4 bit per il segno e 3 bit per la cifra. Il conteggio delle cifre merita una spiegazione: questo perché gli umani, quando viene chiesto di scegliere una cifra casuale, sono per niente uniformi; la cifra "1" avrà da 5 a 10 volte più possibilità di essere selezionata rispetto a "0". Tra i fattori psicologici, "0" ha una connotazione negativa (vuoto, buio, morte), mentre "1" è visto positivamente (vincitore, campione, alto). Nel sud della Cina, "8" è molto popolare perché la parola "otto" è pronunciata allo stesso modo della parola "fortuna"; e, allo stesso modo, "4" viene evitato a causa dell'omofonia con la parola "morte". L'aggressore proverà prima le password in cui la cifra è un "1", consentendogli di beneficiare della non uniformità delle scelte dell'utente.
Se la scelta della cifra non è fatta da un cervello umano ma da un dispositivo imparziale, allora otteniamo 3,32 bit di entropia, non 3 bit. Ma è abbastanza vicino a scopo illustrativo (capisco perfettamente che Randall Munroe non volesse disegnare riquadri parziali).
Quattro bit per la punteggiatura sono un po 'sottostimati; ci sono 32 segni di punteggiatura in ASCII, tutti relativamente facili da digitare su una comune tastiera. Ciò significherebbe 5 bit, non 4. Anche in questo caso, se il segno è scelto da un essere umano, alcuni segni saranno più comuni di altri, perché gli umani raramente pensano a "#" o "|" come "punteggiatura".
Il totale generale di 28 bit è quindi giusto, sebbene dipenda dai dettagli precisi di alcune selezioni casuali e dall'elenco delle "sostituzioni tradizionali" (che influisce sul numero medio di lettere ammissibili). Con una password generata dal computer, possiamo sperare in circa 30 bit. È ancora basso per quanto riguarda i 44 bit del metodo "cavallo corretto".
Applicabilità
I paragrafi precedenti mostrano che la matematica nel fumetto è corretto (almeno con la precisione che ci si può aspettare in queste condizioni - questo è un webcomic , non un articolo di ricerca ). Richiede ancora le seguenti condizioni:
-
Il "metodo di generazione della password" è conosciuto dall'aggressore. Questa è la parte in cui @Jeff non crede. Ma ha senso. Nelle grandi organizzazioni, i responsabili della sicurezza pubblicano tali linee guida per la generazione di password. Anche quando non lo fanno, le persone hanno Google e colleghi e tenderanno a utilizzare una delle circa una dozzina di regole. Il fumetto include disposizioni per questo: "Puoi aggiungere qualche bit in più per tenere conto del fatto che questo è solo uno dei pochi formati comuni".
Conclusione: anche se mantieni il tuo metodo " segreto ", non sarà quel segreto perché seguirai più o meno consapevolmente un metodo" classico ", e non ce ne sono molti.
-
Le scelte casuali sono casuali e uniformi . Questo è difficile da ottenere con gli utenti umani. Devi convincerli a usare un dispositivo per una buona casualità (una moneta, non un cervello), e ad accettare il risultato. Questo è il succo della mia risposta originale (riprodotta sotto). Se gli utenti modificano le scelte, se non altro generando un'altra password se quella che hanno ottenuto "non gli piace", allora si discostano dall'uniformità casuale e l'entropia può essere solo abbassata (la massima entropia si ottiene con casualità uniforme; non è possibile migliora, ma puoi peggiorare molto).
La risposta giusta è ovviamente quella di @AviD. I calcoli nel fumetto sono corretti, ma il punto importante è che le buone password devono essere sia difficili da indovinare e facili da ricordare. Il messaggio principale del fumetto è mostrare che le comuni "regole di generazione delle password" falliscono in entrambi i punti: rendono difficile ricordare le password, che tuttavia non sono così difficili da indovinare.
Illustra anche il fallimento delle menti umane nel valutare la sicurezza. "Tr0ub4dor&3" sembra più casuale di "correcthorsebatterystaple"; e le stesse menti daranno buoni punti a quest'ultimo solo per il motivo sbagliato, cioè la convinzione diffusa (ma fuorviante) che la password lunghezza faccia forza . Non è così. Una password non è forte perché è lunga; è forte perché include molta casualità (tutti i bit di entropia di cui abbiamo discusso fin dall'inizio). La lunghezza extra consente più forza, dando più spazio alla casualità; in particolare, consentendo una casualità "gentile" facile da ricordare, come la cosa del cavallo elettrico. D'altra parte, una password molto breve è necessariamente debole, perché c'è solo tanta entropia che puoi inserire in 5 caratteri.
Nota che "difficile da indovinare" e "facile da ricordare" non coprono tutto ciò che è da dire sulla generazione di password; c'è anche "facile da usare", che di solito significa "facile da digitare". Le password lunghe sono un problema sugli smartphone, ma le password con cifre e segni di punteggiatura e maiuscole / minuscole sono probabilmente anche peggiori.
Risposta originale:
Il fumetto presume che la selezione di una parola "comune" casuale produca un'entropia di circa 11 bit, il che significa che ci sono circa 2000 parole comuni. Questo è un conteggio plausibile. Il trucco, ovviamente, è avere una selezione davvero casuale. Ad esempio, le seguenti attività:
- seleziona quattro parole a caso, quindi ricordale nell'ordine che ha più senso;
- se le quattro parole sembrano troppo difficili da ricordare, eliminali e selezionane altri quattro;
- sostituisci una delle parole con il nome di un calciatore (l'attaccante non lo indovinerà mai!);
... tutto ridurre l'entropia. Non è facile convincere i tuoi utenti a utilizzare effettivamente la casualità e ad accettare il risultato .
Gli stessi utenti probabilmente si lamenteranno del fastidio di digitare una password lunga (se la digitazione comporta uno smartphone, devo dire che li capisco abbastanza). Un utente infelice non è mai una buona cosa, perché inizierà a cercare contromisure che gli rendano la vita più facile, come conservare la password in un file e "digitarla" con una copia&paste. Gli utenti possono spesso essere sorprendentemente creativi in questo modo. Pertanto, le password lunghe tendono a ritorcersi contro, dal punto di vista della sicurezza.