Le password sono archiviate in testo normale, a meno che non venga utilizzata una password principale.
Quando le persone dicono che è necessario memorizzare solo hash di password, stanno parlando dello spazio lato server , non lato client.
lato server
Quando hai il tuo sito web quando gli utenti possono registrarsi / accedere con le loro password, non è necessario (e non devono mai) memorizzare le password stesse:
-
non è necessario memorizzare password semplici , poiché è sufficiente verificare che la password utilizzata durante l'accesso corrisponda alla password fornita dall'utente durante la registrazione. Puoi farlo con hash, dal momento che password diverse avrebbero hashes¹¹ diversi.
-
tu non devi memorizzare password semplici . Che cosa succede se il tuo sito web viene violato? Inoltre, molte persone riutilizzano più volte le stesse password, quindi praticamente concedi a qualsiasi hacker la possibilità di accedere agli account Facebook degli utenti, all'account di posta elettronica, ecc.
lato client
I browser sono diversi. Memorizzano le password sul computer client e devono avere una password originale, non un hash.
Ciò significa che quelle password sono memorizzate in testo normale nella maggior parte dei casi.
-
Per quanto riguarda la sicurezza, non importa troppo. Queste password sono memorizzate in una directory che appartiene all'account utente. Ciò significa che dipende dal sistema operativo (e dall'utente) per configurare correttamente le autorizzazioni ai file degli utenti e per limitare l'accesso al file che contiene le password all'utente stesso.
-
Saggia esperienza utente, questa è la cosa più semplice da fare. Un'altra possibilità è crittografare quelle password con una password principale, nel qual caso l'utente dovrebbe fornire la password principale ogni volta che apre il browser . Sono abbastanza sicuro che molti utenti non apprezzerebbero mai questo.
Se la password principale è memorizzata da qualche parte, si pone lo stesso problema: se memorizzi la password principale in testo normale, qual è il punto? Se lo cripti, devi avere una password master-master.
Sync
Si noti che la maggior parte dei browser consente agli utenti di sincronizzare i propri dati su più macchine. La sincronizzazione utilizza un server remoto per memorizzare cookie, cronologia, segnalibri e password. Ad esempio, Chrome utilizza i server di Google per archiviare questi dati.
In questo caso, le password non vengono mai memorizzate in testo normale sui server di sincronizzazione , altrimenti sarebbe un problema di sicurezza. In Chrome, devi scegliere la password principale per la sincronizzazione (o utilizzare quella del tuo account Google). Questa password principale verrà utilizzata per crittografare le password (sempre) e altri dati come la cronologia oi segnalibri (facoltativo).
¹ Per semplicità, puoi immaginare che le diverse password non possano avere gli stessi hash. In teoria, questo è sbagliato, poiché potrebbero esistere collisioni. In pratica, se si utilizza un algoritmo di hash strong, come SHA-256, è possibile trascurare il rischio di collisione per un sito Web anche con milioni di utenti registrati. Le cose sono diverse se usi un algoritmo hash obsoleto e deprezzato, come MD5.