Se due utenti non usano la stessa password, in teoria non è necessario salare l'hash della password. Quante volte, in pratica, due utenti hanno la stessa password?
È spaventosamente frequente che molti utenti utilizzino la stessa password. Due anni fa, Yahoo ha perso le password per mezzo milione di account . Secondo il progetto di password , solo il 77% era unico. Queste erano le password più frequenti e il numero di utenti che li usavano:
| Word | Count |
+-------------------+
| 123456 | 1667 |
| password | 780 |
| welcome | 437 |
| ninja | 333 |
| abc123 | 250 |
| 123456789 | 222 |
| 12345678 | 208 |
| sunshine | 205 |
| princess | 202 |
| qwerty | 172 |
A loro difesa, molti di questi account potrebbero essere account email di posta indesiderata ai quali i proprietari non si sono preoccupati, ma probabilmente ci sono anche molti account che sono i principali account di posta in grado di reimpostare le password in lotti di servizi importanti.
Una politica per le password che obbliga gli utenti a utilizzare un numero minimo di caratteri e almeno una lettera maiuscola, una lettera minuscola, un numero e un carattere speciale potrebbe impedire molte di queste password banali, ma se si hanno abbastanza utenti, è probabile che si individuino le stesse "aggiornamenti banali" alle stesse password standard deboli che alcune persone tendono ad usare (come password
diventando Password1!
).
L'ipotesi è già sbagliata. Anche se ogni password fosse unica, avresti ancora bisogno di sali.
Senza i sali, l'utente malintenzionato può consultare l'elenco delle possibili password una sola volta, confrontare l'hash di ciascuna ipotesi e verificare se il risultato corrisponde a uno degli hash memorizzati. In altre parole, l'attaccante ha bisogno solo di un singolo calcolo per ipotesi. Questo non ha nulla a che fare con le password univoche o meno.
I sali lo impediscono, perché rendono impossibile riutilizzare un hash calcolato su diversi account utente. L'utente malintenzionato deve eseguire un calcolo per utente e .
Ma anche se ignori questo per un momento e guardi solo i sali come un modo per nascondere le password duplicate, lo scenario è ancora irrealistico: non è sufficiente che le password siano uniche all'interno del tuo sistema . Devono essere unici tra tutti i sistemi tutti che usano lo stesso algoritmo di hash. In caso contrario, un utente malintenzionato potrebbe trovare password duplicate confrontando gli hash con gli hash di un'altra applicazione.
Poiché è molto improbabile che un utente medio possa trovare una password universalmente unica, è necessario in ogni caso sali.
I numeri variano da perdita a perdita, ma ci sono alcune tendenze generali. Ad esempio, nella fuga di Adobe nel 2013, l'1,5% degli utenti ha utilizzato "123456" come password, e il 44% degli account ha avuto una password non univoca . In una perdita del 2009 da RockYou.com , il 45% non era univoco.
In breve, le persone non sono molto brave a scegliere le password originali.