In ogni caso di vulnerabilità, aiuta il pensiero del contraddittorio. In quale scenario I può trovare utile questa vulnerabilità, se volessi accedere maliziosamente all'account di qualcuno?
Bene, come amministratore di sistema, ho accesso all'hash delle password di tutti, insieme a sale e pepe. Ma, dato che sono degli hash, non riesco ancora a decifrare una password che sia ben scelta. Non sono l'unico sysadmin, quindi non posso installare strumenti per lo snoop della password e garantire che non vengano rilevati.
Ma l'utente ha inserito la password e l'ha lasciata con degli asterischi lì. Se si sono allontanati dal computer, mentre si sono lasciati loggati, ci sono un certo numero di cose che posso fare per recuperare la password. Ma loro non l'hanno fatto. Hanno, invece, chiamato me per risolvere un problema che stanno avendo con il loro browser, tastiera, mouse, qualsiasi cosa.
Con il pretesto del test, posso fare clic intorno, fare clic sul loro nome utente, selezionare il testo sulla pagina, premere il tasto, il campo password è selezionato, ctrl e i cursori ... o posso accedere da me stesso, digitare il mio nome utente nel campo del nome, fai clic sulla fine del campo della password, sposta il cursore all'inizio in modo naturale ...
... una frazione di secondo, e ho stabilito che la loro password è del tipo "aaaa ?? aa", e il mio compito di crackare il loro hash è diventato molto più facile, perché ho solo bisogno di testare che spazio modello. Supponendo che possano usare qualsiasi carattere su una tastiera, il mio problema di spazio si è ridotto da 94 ^ 8 = 6 * 10 ^ 15 possibilità, a solo 62 ^ 4 * 62 ^ 2 * 32 ^ 2 = 5 * 10 ^ 13.
Che è già un miglioramento di cento volte, che consente una gamma molto più ampia di modelli di attacco; ma, cosa più importante, posso personalizzare il mio attacco per provare cose che probabilmente funzioneranno per prime: tutte e quattro le parole dei miei dizionari; quindi due caratteri speciali arbitrari, probabilmente una ripetizione, o un punto e uno spazio; quindi due caratteri, i numeri più probabili, specialmente se richiediamo numeri nella nostra politica di password.
Quindi sì - può essere fatto in faccia da una tecnologia di supporto, e non lascia alcuna traccia che un utente esperto o altri tecnici di supporto possano scoprire, come quelli lasciati dai keylogger o dai rootkit.
[Modifica: ho appena realizzato che c'è anche la possibilità che sia "???? xx ??" con quel modello - ma questo è solo 32 ^ 6 * 62 ^ 2 = 2 * 10 ^ 12, entro possibilità di forzatura bruta.]
[Modifica2: ho scelto xxxx..xx come esempio di dove sarebbe bello sapere, ma consideriamo il caso peggiore passaggio di 8 caratteri: xxxxxxxx. Ciò ha eliminato il profilo di attacco da 94 ^ 8 a 32 ^ 8 + 62 ^ 8 o 2 * 10 ^ 14, che è ancora una riduzione di 30 volte. Le password più lunghe offrono ovviamente migliori riduzioni, ma sono ancora più difficili da decifrare. Ma non solo, sarò in grado di togliere un intero carico di regole dal mio profilo di attacco, quindi se la password è in qualche modo non casuale, la colpirò molto prima.]