Questo è davvero più un addendum alla risposta intelligente di @ Brian. Tanto di cappello anche a @Martijn Pieters per aggiungere dettagli su come forzare le vecchie password in base a quella corrente e su @ratchet freak per "hamming distance". Non sto cancellando la mia risposta perché penso che fornisca un background interessante per sostenerli.
Lo stato dell'arte della memorizzazione delle password richiede l'utilizzo di più round di un hash crittografico a una sola via (SHA-512 +) con un unico salt (128 bit +) per ogni utente. Ma non essere tentato di memorizzare ulteriori informazioni su ciascuna password. Più informazioni memorizzerai su ciascuna password, più minerai la sicurezza dell'algoritmo di hashing.
Esempio
Considera quanto è facile creare una password con la forza bruta se lo sai:
- È lungo 7 caratteri
- I caratteri 3-5 sono maiuscoli (4 è inferiore)
- 1 e 7 sono numeri
- 6 è un simbolo
Una tastiera USA ha 95 caratteri stampabili, quindi sapendo che la password è lunga 7 caratteri produce 95 ^ 7 = 69,833,729,610,000 = 7x10 ^ 13 permutazioni. Se fosse veramente casuale, potrebbe volerci un anno per craccarlo su un singolo processore 3Ghz. Ma:
- Ci sono solo 26 caratteri maiuscoli e 26 caratteri minuscoli
- Ci sono solo 10 cifre che offrono 100 possibilità per questi due numeri
- Ci sono solo 32 simboli
Quindi (corretto grazie a @Hellion):
26^4 (charcters 2-5 are known upper or lower-case)
x 100 (characters 1 & 7 are digits)
x 32 (character 6 is a symbol)
====
1,462,323,200 possible passwords.
È 50.000 volte più facile da decifrare! Memorizzare buone informazioni per evitare password simili in questo caso ha richiesto molto tempo per una password di 7 caratteri da un anno a un paio d'ore. Decodificare tutte le tue password con un potente desktop multiprocessore con una buona scheda video e un po 'di pazienza è ora molto fattibile. Spero che questo semplice esempio dimostri che più è significativo il confronto tra password simili, meno sicuro sarà il tuo hashing.
Importanza di Strong Hashing
I database con password vengono rubati regolarmente, con gigantesche irruzioni nelle notizie ogni mese. Diamine, solo il mese scorso lo stato di SC ha perso i numeri di sicurezza sociale di tutti - oops! Quante altre di queste violazioni sono coperte?
Pensiero di chiusura
La cosa più spaventosa per me è quando le persone scelgono la stessa password o password simili per più siti in modo che l'irruzione in uno dia l'accesso a tutti gli aggressori. Mi piacerebbe vedere un metodo collaudato per prevenire quella situazione, anche se penso che prevenire le password errate più comuni aiuterebbe di più che impedire a un singolo utente di riutilizzare la propria password errata all'interno dello stesso sito. Il meglio che posso suggerire è una politica aziendale per utilizzare un gestore di password sicuro che generi password altamente casuali per ciascuno dei tuoi utenti e li memorizzi in modo sicuro.