Come viene calcolata l'entropia della passphrase
La formula log2, esempi funzionanti per tutti e tre gli elenchi EFF, quanto costa un acrostico e perché un misuratore di forza del sito Web non è d'accordo con questa pagina.
L'entropia misura il processo, non la password
Una singola password non ha entropia. La frase "punto corretto della batteria per cavalli" non è né forte né debole in sé: ciò che conta è come è nata. Se una macchina estraesse quattro parole in modo uniforme da un elenco di 7,776, si tratterebbe di uno dei circa 3.7 milioni di milioni di risultati ugualmente probabili. Se qualcuno lo ha scelto perché lo aveva visto in un cartone animato, è uno dei tanti e nessun calcolo aritmetico cambia la situazione.
Quindi ogni figura su questo sito descrive il generatore e le sue impostazioni, partendo dal presupposto che un utente malintenzionato conosca tali impostazioni e si limiti a indovinare le estrazioni casuali. Questa ipotesi è quella conservativa. L'elenco, il conteggio delle parole, l'intervallo di lunghezza, il separatore e la regola del maiuscolo/minuscolo sono tutti pubblicati in questa pagina, quindi trattarli come segreti gonfierebbe ogni numero qui.
La formula
Per una scelta fatta uniformemente tra N possibilità ugualmente probabili, l'entropia è log2(N) bit. Ogni scelta indipendente aggiunge i propri bit, quindi k estrazioni indipendenti dallo stesso insieme di N danno:
bit = k × log2(N)
Questo è l'intero calcolo per una passphrase. La base del log 2 è ciò che trasforma "quante possibilità" in "quanti bit" e i bit sono convenienti perché ogni bit in più raddoppia il lavoro che deve affrontare un utente malintenzionato. Settanta bit sono due volte più difficili di sessantanove e circa mille volte più difficili di sessanta.
La stessa formula copre una password di caratteri casuali, con N la dimensione del set di caratteri e k la lunghezza: venti caratteri estratti da un set di 80 danno 20 × log2(80), che equivale a circa 126 bits.
Esempi pratici per i tre elenchi
La lunga lista EFF contiene 7,776 parole. log2(7,776) riguarda 12.925, quindi ogni parola contiene all'incirca 12.9 bits. Sei parole danno 6 × 12.925, circa 77.5 bits: l'impostazione predefinita in questa pagina e il consiglio di EFF per quell'elenco. Sette parole danno circa 90.5, otto circa 103.4.
Entrambi gli elenchi brevi contengono 1,296 parole. log2(1,296) riguarda 10.34, quindi sei parole danno circa 62 bits, sette circa 72.4 e otto circa 82.7. Questo è il motivo per cui gli elenchi brevi richiedono una o due parole in più da abbinare a quella lunga.
Cinque parole della lunga lista ammontano a circa 64.6 bits - quasi esattamente come sei di una breve lista. I due percorsi verso una data forza sono realmente intercambiabili; scegli quello che produce le parole che trovi più facili da digitare.
Effetto dell'intervallo di lunghezza sulla figura
La lunghezza minima e massima delle parole filtra l'elenco prima che venga disegnata qualsiasi parola, quindi N nella formula è il numero di parole che sopravvivono al filtro, non la dimensione del file. La pagina lo ricalcola quando si modifica l'intervallo e mostra il conteggio sopravvissuto, quindi la cifra dell'entropia riguarda sempre il pool effettivamente in uso.
Questo è un effetto piccolo per gli intervalli sensibili e grande per quelli estremi. Limitare il lungo elenco a parole di esattamente quattro lettere lascia poche centinaia di candidati, riducendo ogni parola da circa 12.9 bits a circa 8, il che trasforma una passphrase di sei parole da circa 77 bits a circa 48. La pagina lo mostrerà e a quel punto ti dirà di ampliare l'intervallo o aggiungere parole.
Cosa aggiungono le opzioni separatore e maiuscola
Un separatore fisso non aggiunge nulla. Se ogni spazio vuoto è un trattino, un utente malintenzionato che conosce le impostazioni inserisce dei trattini anche in ogni spazio vuoto; non hanno altra scelta che indovinare.
L'opzione del separatore casuale è diversa. Ogni intervallo richiede indipendentemente uno dei cinque caratteri, quindi ogni intervallo aggiunge log2(5), circa 2.32 bits. Una passphrase di sei parole ha cinque spazi vuoti, ovvero circa 11.6 bit extra: un vero guadagno e la pagina li conta.
La stessa logica si applica al caso. Minuscolo, maiuscolo, maiuscolo e alternato sono regole fisse e non aggiungono nulla. Il caso casuale lancia una moneta indipendente per parola, quindi aggiunge esattamente un bit per parola: sei bit su una passphrase di sei parole. Anche quello viene conteggiato.
Vale la pena notare quanto siano modesti. Maiuscole e minuscole casuali e separatori casuali insieme aggiungono circa 17 bits a una passphrase di sei parole, mentre una settima parola aggiunge circa 13 da sola ed è molto più facile da ricordare. Aggiungere parole è quasi sempre la leva migliore.
Quanto costa un acrostico
Con un acrostico, ogni parola non viene più estratta dall'intero pool, ma dalle parole che iniziano con la lettera specificata. Quindi la formula diventa una somma anziché un prodotto: il totale è log2 del pool per la prima lettera, più log2 del pool per la seconda e così via.
Le lettere sono distribuite in modo molto irregolare. Nell'elenco lungo EFF, limitato a parole da cinque a nove lettere, il pool che inizia con s è molte volte più grande del pool che inizia con j e molto più grande del pool che inizia con x. Un acrostico di sei lettere fornisce quindi una cifra inferiore a sei volte il valore non vincolato per parola, e quanto al di sotto dipende interamente da quali lettere hai scelto.
La pagina calcola questa somma per le lettere esatte digitate, che è l'unico modo per fornire un numero onesto. Se una delle tue lettere non ha una parola dietro nell'elenco corrente e nell'intervallo di lunghezza, dice quale lettera invece di fallire silenziosamente.
Anche l'acrostico non è segreto. Supponiamo che un aggressore conosca le iniziali del nome del tuo cane, perché questo è il genere di cose che vengono indovinate.
Trasformare i frammenti in tempo, onestamente
Le stime di tempo riportate in questa pagina presuppongono un attacco offline da un trilione di tentativi al secondo contro un database di password rubate e che sia necessario provare la metà delle possibilità prima che venga fuori quella giusta. Tali presupposti vengono espressi ovunque venga visualizzato un tempo, poiché una stima del tempo senza di essi non ha senso.
Un trilione di ipotesi al secondo è una cifra volutamente dura. È nella regione giusta per l'hardware dedicato che attacca una funzione hash veloce e mal scelta. Un sito che utilizza correttamente un hash di password moderno è più lento ad attaccare di un fattore di milioni, e qualsiasi modulo di accesso online è ancora più lento di un fattore di miliardi, poiché ogni tentativo è una richiesta di rete che il server può limitare.
Ecco perché i numeri di questa pagina sono volutamente pessimisti. Se la stima dice che una ricerca richiederebbe molto più tempo di chiunque altro, la cifra reale rispetto a un servizio gestito con competenza è ancora più lunga.
Perché il misuratore di forza di un sito web dice qualcosa di diverso
La maggior parte dei misuratori di forza valutano i personaggi che hanno di fronte, perché è tutto ciò che hanno: non vedono mai come è stata generata la password. Premiano classi di caratteri misti, puniscono la ripetizione e spesso corrispondono a dizionari di password comuni. Contro una password inventata da un essere umano questa è un'euristica ragionevole ed è l'unica cosa che un modulo può fare.
Assegna un punteggio errato a una passphrase generata esattamente per il motivo sbagliato. Sei parole minuscole del dizionario con spazi tra di loro sembrano un'euristica di conteggio dei caratteri, proprio come la cosa da cui è stato costruito per mettere in guardia, anche se le parole sono state disegnate a caso e il risultato è più forte di quasi qualsiasi cosa il misuratore applaudirebbe.
Quando uno strumento e questa pagina non sono d'accordo su una passphrase generata qui, la pagina descrive il processo e lo strumento descrive l'aspetto. Nemmeno la menzogna; misurano cose diverse e solo uno di loro sa da dove vengono le parole.
Cosa succede a ciò che generi
ToolAcre genera password localmente nel tuo browser. Per ambienti altamente sensibili, verifica che il tuo browser, dispositivo e sistema operativo siano affidabili prima di utilizzare qualsiasi generatore di password basato sul web.
- Ogni passphrase e password viene generata nella scheda del tuo browser, dal generatore di numeri casuali crittografici del tuo browser. Nessun server è coinvolto una volta caricata la pagina.
- Niente di generato qui viene inviato a ToolAcre. La Content-Security-Policy di questo prodotto limita la pagina alla sua stessa origine, quindi il browser stesso blocca qualsiasi tentativo di inviare dati altrove.
- Nulla viene scritto nell'archiviazione locale, nell'archiviazione della sessione, in un cookie, in un database interno al browser, nella barra degli indirizzi o nella console del browser. Ricaricarlo lo scarta; chiudendo la scheda la si elimina.
- Non esiste alcun account, nessun accesso, nessuno script di analisi e nessuno script pubblicitario. Gli unici file scaricati sono gli elenchi di parole statiche.
- Non viene conservata alcuna cronologia. La nuova generazione sostituisce il valore e quello precedente non è recuperabile.
Domande
Quanti bit sono sufficienti?
Per un account normale dietro un gestore di password, qualsiasi cosa sopra 70 bits va oltre ogni ipotesi realistica. Per le poche passphrase che proteggono tutto il resto (il gestore stesso, il tuo dispositivo, la tua email) punta più in alto, intorno a 90 bits o più, ovvero sette o otto parole dal lungo elenco.
Perché aggiungere una parola aiuta di più che aggiungere un simbolo?
Una parola dal lungo elenco moltiplica il numero di possibilità per 7,776, circa 12.9 bits. Un simbolo aggiunto in una posizione fissa lo moltiplica per uno, perché l'attaccante sa che è lì. Contano solo le scelte effettivamente casuali.
La pagina conta l'opzione caso casuale nella figura?
Sì, a un bit per parola, perché ogni parola è un lancio di moneta indipendente. Le regole del caso fisso vengono contate come zero, perché un utente malintenzionato che conosce la regola può applicarla da solo.
Perché viene utilizzata metà dello spazio delle chiavi nelle stime dei tempi?
Perché mediamente una ricerca esaustiva trova la risposta a metà. L'utilizzo dell'intero spazio delle chiavi sovrastimerebbe il tempo di un fattore due, il che è un errore di arrotondamento su queste scale ma pur sempre nel modo sbagliato.
77 bits è sufficiente considerando la velocità con cui stanno diventando i computer?
Indovinare il costo raddoppia ad ogni bit in più, quindi l'aritmetica favorisce pesantemente il difensore. I rischi realistici per una passphrase 77-bit non sono calcoli grezzi: sono phishing, malware sul tuo dispositivo, riutilizzo su più siti e un servizio che l'ha archiviata con noncuranza. Queste sono le cose su cui vale la pena prestare attenzione.
Limitazioni
- L’entropia è un limite superiore alla difficoltà di indovinare, non una previsione di come un account verrà effettivamente compromesso. La maggior parte degli account viene persa a causa di phishing, riutilizzo e violazione dei database piuttosto che a causa di ipotesi.
- Le cifre presuppongono che la fonte casuale sia sana. Questa pagina utilizza il generatore crittografico del browser e si rifiuta di funzionare senza di esso, ma non può controllare quel generatore dall'interno della pagina.
- Le stime del tempo dipendono interamente da un tasso di ipotesi presunto. Il tasso utilizzato qui è dichiarato, deliberatamente duro e potrebbe essere sbagliato in entrambe le direzioni per qualsiasi particolare aggressore.
- Il calcolo presuppone che ogni parola venga disegnata in modo indipendente e uniforme. Se ciò non fosse vero, sopravvaluterebbe la forza, motivo per cui il generatore disegna con la sostituzione anziché rimuovere le parole che ha già utilizzato.
- Nessuna cifra di entropia tiene conto del riutilizzo di una passphrase, scritta in un luogo non sicuro o digitata su una macchina compromessa.