Quanto una scadenza delle password può migliorare la sicurezza?
Questaimmaginemostra,peralcuniscenari,larelazionetratempoeprobabilità,cheunattaccodiforzabrutasuuntipodipasswordèriuscito,asecondadelnormalecambiamentodellapassword.Iltempoassolutoèdiminoreinteresse.Quantoèlungo-ononc'èmoltadifferenza,olavulnerabilitàègiàpiuttostoalta.
Comemenzionatodaaltriprima,cisonodiversiscenari,incuilamodificadellapasswordpotrebbeaiutare:
- a)L'utenteAcomunicaauncollegaBlasuapasswordinunasituazionespeciale.PiùtardiBvienelicenziato.OrapotrebbepensarediusaremalelapassworddiA(ilsuoaccountècancellato,supponiamo),mapotrebbeesserenecessariodeltempo(peresempio,perdereunacontroversiacontrol'aziendaintribunale)primadiiniziareilsuoattacco.Qui,èmoltoutilecambiarelapassword,maovviamentenondasecret2010asecret2011.
- b)L'attaccantehaaccessoalfileshadowedèforzatobrutoconunacertaquantitàdipotenzadellaCPU(oGPU).
Nelcasob),lapoliticapercambiarelapassword,sembraragionevole,masiguadagnasoloseilrischiodiesserevulnerabiliègiàmoltoalto.Lasciachetispieghiconinumeri:
Supponetecheunutentemalintenzionatopossatentare250.000passwordalsecondo.Supponiamochetudicachelapasswordscadedopo183giorni(circa6mesi).Lapasswordègeneratadaa-zA-Z0-9cheè62segni.Supponiamochelapasswordsialunga8segni.Controllaquantoèprobabileunarotturadopo10anni,ovvero20intervallidicambio.
Hoscrittoun programma , per testare diversi parametri; chiama il programma con
java PasswordCrackProb 8 62 250000 s 183 20
len = 8
signs = 62
attacks per day = 21 600 000 000
change after days= 183
intervals = 20 days = 3660 years = 10
M = 218 340 105 584 896
attacks = 79 056 000 000 000
p(cracked) = 0,3620773 without change
p(cracked) = 0,3060774 with change
Il risultato significa che è rotto con una probabilità del 36% se la password non è stata cambiata e con il 31% se è stata cambiata (ma l'attaccante ha un nuovo file shadow). La differenza è significativa e, a maggior ragione, se impieghiamo più tempo, 40 intervalli, come 20 anni:
p(cracked) = 0,7241546 without change
p(cracked) = 0,5184715 with change
ma sebbene il 52% sia molto inferiore al 72%, il 52% potrebbe non essere accettabile.
Ma se osserviamo intervalli più piccoli, la differenza relativa tra password cambiate e invariate diventa sempre più piccola.
p(cracked) = 0,0905193 without change
p(cracked) = 0,0873006 with change
Se si presuppone una maggiore potenza della CPU o password più deboli, il tempo di crack diventa più piccolo, ovviamente, ma il numero di attacchi al giorno non è molto interessante. Dobbiamo supporre: non possiamo imporre all'utente di cambiare la password su base giornaliera. Quindi alcuni giorni - forse una settimana - è 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 energia e le forze brute costringono l'intero spazio dei nomi in un solo giorno, un cambio settimanale non ti aiuterà molto: vince sempre. E se l'attaccante può solo forzare l'1% dello spazio dei nomi (per una determinata lunghezza della password) tra 50 anni, non è d'aiuto, per cambiare la password - vincerai (quasi) sempre.
Solo in uno scenario intermedio e bilanciato, 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 ricorda: se l'autore dell'attacco ha avuto accesso solo una volta al tuo file shadow, che ora è scaduto, il confronto dal mio programma non è adatto.