Nota: non sto chiedendo se questo schema di password sia il migliore o meno (ovviamente non lo è); Chiedo la 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 quanto ciò che viene detto alle persone di fare (ma raramente lo fanno; sebbene irrilevante qui), ma non so se ci sono strani aspetti dell'autenticazione o della crittografia che invalidano l'analisi matematica basata solo sull'entropia.
Ebbene, ho avuto questo pensiero interessante. Poiché i sistemi protetti da password spesso richiedono agli utenti di cambiare frequentemente la password, molte persone incrementano semplicemente un contatore aggiunto a un prefisso, come:
awefjio; 1
awefjio; 2
...
Mi chiedo se usare una simile famiglia di password sia sicuro quanto scegliere ogni volta una nuova password completamente casuale, purché il prefisso è scelto casualmente in modo uniforme e fintanto che ogni nuova password casuale più circa 10 bit. Ho ignorato i bit extra dal contatore poiché potrebbero essere indovinati con un piccolo margine di errore data la frequenza con cui gli utenti sono tenuti a cambiare la loro password. Matematicamente questo schema di password è abbastanza buono perché i 10 bit extra consentono all'attaccante di provare 1024 volte di più per decifrare la password rispetto a quello completamente casuale, supponendo che non si cambi una password più di 1024 volte. (Qui presumo che l'aggressore in qualche modo abbia un hash della password, incluso il sale necessario.)
Ora conosco un ovvio svantaggio di questo, che è che un attaccante che in qualche modo si impossessa dell'attuale password conoscerà tutte le password precedenti, tuttavia questo sembra del tutto irrilevante nelle situazioni più pratiche, dove una volta effettuato l'accesso l'utente ha pieno accesso al proprio account e non necessita mai delle vecchie password.
Da qui la mia domanda; c'è qualche motivo concreto per cui gli utenti non dovrebbero utilizzare questo schema per modificare le password? Immagino che se la risposta è positiva, dipenderà dagli algoritmi di autenticazione o crittografia coinvolti, nel qual caso io Va bene limitare la domanda agli algoritmi più comunemente utilizzati.
Per essere chiari, chiedo solo la situazione in cui:
-
Gli utenti non hanno altra scelta che cambiare le proprie password con una frequenza fissa e non hanno la possibilità di utilizzare un gestore di password (come su un computer sul posto di lavoro). Devono quindi decidere su qualche schema. Questa domanda riguarda se uno schema particolare sia migliore di un altro.
-
Scegli una costante fissa n. Ho in mente n ≥ 64 come minimo, se è importante.
a. Il primo schema consiste nello scegliere una nuova stringa casuale indipendente con entropia n bit ogni volta che è necessario modificare la password.
b. Il secondo schema consiste nello scegliere una stringa casuale fissa con entropia di (n + 10) bit e aggiungere un contatore che viene incrementato ogni volta che è necessario modificare la password.
La domanda è se (b) sia sicuro almeno quanto (a) per i tipi comuni di sistemi protetti da password.