In teoria, le password non dovrebbero essere archiviate in testo normale e dovrebbe anche essere evitato di memorizzarle come un semplice hash, qualcosa come md5(password)
.
Si consiglia di memorizzare l'output della funzione che utilizza algoritmi / cifrari come bcrypt , script , PBKDF , passato alla password con un po 'di sale.
Ma una volta che il database / file con password è stato compromesso, ad esempio un file contenente dati come questo:
id, password
12, $2a$10$zkeaH43RM9Ep5.KPcyXWYuCaVSbKmmXaKLztvCa0G867ItEpvx4fa (bcrypt)
12, 05ffaebcca41770af425d4ba9b4e7bcdff532237dca931c192a36d94db7307d4 (scrypt)
12, JDJhJDEwJHprZWFINDNSTTlFcDUuS1BjeVhXWXVDYVZTYkttbVhhS0x6dHZDYTBHODY3SXRFcHZ4NGZh (base64 ofuscation bcrypt)
Come attaccante, dal primo sguardo, posso vedere che nel primo caso è stato usato bcrypt con un costo di 10, per il secondo ho solo una lunghezza di 64 in cui probabilmente è incluso il sale, il terzo termina essendo la base64 che offusca semplicemente bcrypt
base64($2a$10$zkeaH43RM9Ep5.KPcyXWYuCaVSbKmmXaKLztvCa0G867ItEpvx4fa)
solo per menzionare alcuni esempi casuali.
Quindi, una volta che queste informazioni sono state compromesse, oltre a seguire una procedura per cambiare la password, ecc., quale potrebbe essere il modo migliore per memorizzare le password che potrebbe ritardare di più il processo di ricerca di come è stato generato e avere più tempo per consentire tutti gli utenti per ripristinare / modificare le password.
O chiedendo in modo diverso, pur avendo questo tipo di dati che normalmente un utente malintenzionato inizia a fare? basandoci su ciò che potrebbe essere migliorato in modo che potrebbe essere più difficile trovare un modello, iniziare a scansionare le password, ecc.