Passa al contenuto principale

8.1. Password Generation (Generazione di Password)

8.1. Password Generation (Generazione di Password)

Supponiamo che le password utente cambino una volta all'anno e che si desideri che la probabilità che un avversario possa indovinare la password per un particolare account sia inferiore a uno su mille. Supponiamo inoltre che l'invio di una password al sistema sia l'unico modo per provare una password. Allora la domanda cruciale è quanto spesso un avversario può provare possibilità. Supponiamo che siano stati introdotti ritardi in un sistema in modo che un avversario possa fare al massimo un tentativo di password ogni sei secondi. Sono 600 all'ora, o circa 15,000 al giorno, o circa 5,000,000 di tentativi in un anno. Assumendo qualsiasi tipo di monitoraggio, è improbabile che qualcuno possa effettivamente provare continuamente per un anno. Anche se i file di log vengono controllati solo mensilmente, 500,000 tentativi sono più plausibili prima che l'attacco venga notato e vengano presi provvedimenti per cambiare le password e rendere più difficile provare più password.

Per avere una possibilità su mille di indovinare la password in 500,000 tentativi implica un universo di almeno 500,000,000 password, o circa 2^29. Quindi, sono necessari 29 bit di casualità. Questo può probabilmente essere ottenuto usando gli input raccomandati dal DoD degli Stati Uniti per la generazione di password, poiché ha 8 input che probabilmente hanno una media superiore a 5 bit di casualità ciascuno (vedere sezione 7.1). Usando una lista di 1,000 parole, la password potrebbe essere espressa come una frase di tre parole (1,000,000,000 possibilità). Usando lettere non sensibili alle maiuscole e cifre, basterebbero sei caratteri ((26+10)^6 = 2,176,782,336 possibilità).

Per una password di sicurezza più elevata, il numero di bit richiesti aumenta. Per diminuire la probabilità di 1,000 richiede aumentare l'universo di password dello stesso fattore, il che aggiunge circa 10 bit. Quindi, per avere solo una possibilità su un milione che una password venga indovinata nello scenario sopra richiederebbe 39 bit di casualità e una password che fosse una frase di quattro parole da una lista di 1,000 parole, o otto lettere/cifre. Per andare a una possibilità su 10^9, sono necessari 49 bit di casualità, implicando una frase di cinque parole o una password di dieci lettere/cifre.

In un sistema reale, naturalmente, ci sono altri fattori. Per esempio, più le password sono grandi e difficili da ricordare, più è probabile che gli utenti le scrivano, risultando in un rischio aggiuntivo di compromissione.