Contribuisco al plug-in Word Sequencer per password KeePass gestore , che può generare password in stile diceware utilizzando un PRNG di alta qualità. Qualcosa in particolare su cui sto lavorando è stimare la forza delle password generate usando lo strumento. Sto avendo un piccolo problema a capire come tenere conto di una delle opzioni di configurazione, che può impostare una delle parole nella sequenza per avere una probabilità di apparire nella password generata o meno; cioè un'opzione per rendere la password una lunghezza casuale.
Per fare un esempio, supponiamo di scegliere 2 parole da un vocabolario di 8 parole per la tua password (ovviamente vorresti effettivamente un vocabolario / numero di parole molto più ampio, questo è solo un esempio di giocattolo). Se scegli sempre entrambe le parole, allora l'entropia della password è:
lg(8*8) = lg(64) = 6
o in alternativa:
lg(8) + lg(8) = 3+3 = 6
Ora, dì che hai configurato la seconda parola per non apparire a volte. Così hai la possibilità di una password di una sola parola (8 possibili) o di una password di due parole (64 possibili) per un totale di:
lg(8 + 8*8) = lg(9 * 8) = lg(9) + lg(8)
... che dovrebbe essere un po 'più grande della precedente entropia di 6. Questa dovrebbe essere l'entropia se un utente malintenzionato indovina SOLO QUESTA PASSWORD e lui o lei sa esattamente come è stata generata la password.
Ma in realtà non importa se la password potrebbe essere stata lunga 2 parole. Se è lungo solo 1 word, e l'hacker indovina solo tutte le password di 1 parola, la possibilità di una seconda parola non rende più efficace la password di una sola parola. Quindi supponendo che ci sia una probabilità del 25% di includere la seconda parola, forse una stima della forza migliore sarebbe l'entropia del valore atteso dello spazio della password:
lg(8) + lg(3/4 * 0 + 1/4 * 8) = 3 + 1 = 4
Oppure, potrebbe essere il valore atteso dell'entropia stessa :
lg(8) + [3/4 * 0 + 1/4 * lg(8)] = 3.75
Quindi la mia domanda è: quale metodo per calcolare l'entropia prevista di questa password generata è corretta?
- Devo considerare la lunghezza casuale come aggiunta di ulteriori password possibili, aumentando leggermente la forza di una password di 2 parole?
- Devo considerare la lunghezza casuale come se fosse possibile ridurre la lunghezza della password, quindi prendo l'entropia del numero medio di scelte di password, per una forza da qualche parte tra una parola e una password di 2 parole?
- O dovrei prendere il valore atteso dell'entropia, di nuovo per una forza intermedia?
- Forse è qualcosa di completamente diverso?
Se infatti il calcolo "corretto" ridurrebbe diminuirà la forza della password quando l'opzione è abilitata, allora suppongo che inizi una domanda di follow-up: c'è qualche motivo utile per avere questa opzione , se ridurrà il lavoro che un aggressore deve compiere in media?