Nota: non sto chiedendo che questo schema di password sia il migliore o meno (ovviamente non lo è); Sto chiedendo della sua sicurezza teorica o pratica rispetto allo schema di password ottimale basato sugli algoritmi comunemente usati nell'autenticazione e nella crittografia. Come ho già detto nella mia domanda, matematicamente questo schema (come l'ho definito qui) è sicuro come quello che le persone sono chiamate a fare (ma raramente lo fanno, anche se irrilevante qui), ma non so se ci sono stranezze aspetti di autenticazione o crittografia che invalidano l'analisi matematica basata sull'entropia da sola.
Bene, quindi ho avuto questo pensiero interessante. Poiché i sistemi protetti da password spesso richiedono agli utenti di cambiare frequentemente la propria password, molte persone semplicemente incrementano un contatore aggiunto ad un prefisso, come ad esempio:
awefjio;1
awefjio;2
...
Mi chiedo se usare una tale famiglia di password sia sicura quanto scegliere ogni volta una nuova password completamente casuale, purché il prefisso sia scelto in modo casuale in modo casuale e purché ogni nuova password casuale più circa 10 bit. Ho ignorato i bit extra dal contatore poiché ciò potrebbe essere ipotizzabile con un piccolo margine di errore, data la frequenza con cui gli utenti sono tenuti a modificare la propria password. Matematicamente questo schema di password è abbastanza buono perché i 10 bit extra consentono all'hacker di provare 1024 volte il tempo necessario per decifrare la password rispetto a quella completamente casuale, assumendo che non si cambi una password più di 1024 volte. (Qui presumo che l'attaccante abbia in qualche modo un hash della password, incluso qualsiasi sale necessario.)
Ora conosco un ovvio svantaggio di questo, ovvero che un utente malintenzionato che in qualche modo ottiene la password corrente conoscerà tutte le password precedenti, tuttavia ciò sembra del tutto irrilevante nella maggior parte delle situazioni pratiche, dove una volta connesso l'utente ha accesso completo al suo account e non ha mai bisogno delle vecchie password.
Di qui la mia domanda; esiste una ragione concreta per cui gli utenti non dovrebbero utilizzare questo schema per modificare le password? Suppongo che se la risposta è positiva, dipenderà dagli algoritmi di autenticazione o crittografia coinvolti, nel qual caso sto bene, limitando la domanda agli algoritmi più comunemente usati.
Per essere chiari, sto solo chiedendo della situazione in cui:
-
Gli utenti non hanno altra scelta che cambiare le loro password ad una frequenza fissa e non hanno la possibilità di utilizzare un gestore di password (come un computer sul posto di lavoro). Quindi devono decidere su qualche schema. Questa domanda riguarda se uno schema particolare è migliore di un altro.
-
Scegli una costante fissa n. Ho in mente n ≥ 64 al minimo, se questo è importante.
a. Il primo schema è scegliere una nuova stringa casuale indipendente con entropia n bit ogni volta che è necessario modificare la password.
b. Il secondo schema consiste nel scegliere una stringa casuale fissa con entropia (n + 10) -bit e aggiungere un contatore che viene incrementato ogni volta che è necessario cambiare la password.
La domanda è se (b) è almeno sicuro come (a) per i tipi comuni di sistemi protetti da password.