Quanto migliorerà la sicurezza una scadenza delle password?
Questa immagine mostra, per alcuni scenari, la relazione tra il tempo e la probabilità che un attacco di forza bruta su un tipo di password abbia avuto successo , a seconda della modifica regolare della password. Il periodo di tempo assoluto è di minore interesse. Quanto tempo è - o non c'è molta differenza o la vulnerabilità è già piuttosto alta.
Come accennato da altri prima, ci sono diversi scenari in cui cambiare la password potrebbe aiutare:
- a) L'utente A comunica a un collega B la sua password in una situazione speciale. Successivamente B viene licenziato. Ora potrebbe pensare di utilizzare in modo improprio la password di A (il suo account viene cancellato, presumiamo), ma potrebbe essere necessario del tempo (ad esempio, perdere una controversia contro l'azienda in tribunale) prima di iniziare il suo attacco. Qui è molto utile cambiare la password, ma ovviamente non da secret2010 a secret2011.
- b) L'aggressore ha accesso al file shadow ed esegue una forzatura bruta con una certa quantità di potenza della CPU ( o GPU).
Nel caso b), la politica per cambiare la password sembra ragionevole, ma si guadagna solo se il rischio di essere vulnerabili è già molto alto. Lascia che ti spieghi con i numeri:
Supponi che un utente malintenzionato possa provare 250.000 password al secondo Supponiamo che tu dica che la password scade dopo 183 giorni, (circa 6 mesi). La password viene generata da a-zA- Z0-9 che è di 62 segni. Supponiamo che la password sia lunga 8 segni. Controlla quanto è probabile un'irruzione dopo 10 anni, ovvero 20 intervalli di cambio.
Ho scritto un programma, per testare diversi parametri; chiama il programma con
java PasswordCrackProb 8 62 250000 s 183 20len = 8signs = 62attacchi al giorno = 21600000000 cambiamento dopo giorni = 183 intervalli = 20 giorni = 3660 anni = 10M = 218 340 105584 896 attacchi = 79 056 000 000 000p (crackato) = 0,3620773 senza changep (crackato) = 0,3060774 con cambiamento
Il risultato significa che è craccato con il 36% di possibilità se la password non è stata modificata e con il 31% se è stata modificata (ma l'aggressore ha un nuovo file shadow). La differenza è significativa, e ancor di più se prendiamo un tempo più lungo, 40 intervalli, come 20 anni:
p (cracked) = 0,7241546 senza changep (cracked) = 0,5184715 con modifica
ma mentre il 52% è molto inferiore al 72%, il 52% potrebbe non essere accettabile.
Ma se guardiamo a intervalli più piccoli, la differenza relativa tra modificato e invariato le password diventano sempre più piccole.
p (cracked) = 0,0905193 senza modifica p (crackata) = 0,0873006 con modifica
Se presumi di più Potenza della CPU o password più deboli, il tempo di crack si riduce, ovviamente, ma il numero di attacchi al giorno non è molto interessante. Dobbiamo presumere: non possiamo imporre all'utente di cambiare la password su base giornaliera. Quindi alcuni giorni, forse una settimana, sono il minimo. E non abbiamo bisogno di un massimo per più di 20 anni. I sistemi cambiano, le persone cambiano lavoro. Non puoi evitare di cambiare la password dopo 20 anni.
Se l'attaccante ha troppa potenza e forza bruta l'intero spazio dei nomi in un solo giorno, un cambio settimanale non ti aiuterà molto: vince sempre . E se l'attaccante può forzare solo l'1% dello spazio dei nomi (per una determinata lunghezza della password) in 50 anni, non aiuta neanche a cambiare la password: vincerai (quasi) sempre.
Solo in uno scenario intermedio ed equilibrato, la modifica della password potrebbe fare la differenza, ma sai davvero se il malintenzionato ha bisogno di 1, 10 o 100 anni per forzare la tua password?
Ma mantieni in mente: se l'attaccante ha avuto accesso solo una volta al tuo file shadow, che ora è scaduto, il confronto dal mio programma non va bene.