Le persone stanno sempre riutilizzando le password e, con molti siti che accettano indirizzi e-mail come login, una password rubata può potenzialmente sbloccare molti account. Quindi, perché non basta cancellare la password localmente tramite javascript e inviare la password hash al server (tramite SSL ovviamente) che poi lo blocca di nuovo, prima di salvarlo nel suo database. Questo sarebbe:
1
Mostra sicurezza agli utenti interessati, che le loro password sono almeno una volta hash (guardando il codice JS), il che significa che le loro password sono alquanto sicure in ogni caso.
2
Nel caso di una chiave privata rubata, le comunicazioni acquisite decodificate tra client e server rivelerebbero solo una password con hash. Ciò fornirebbe l'accesso al servizio danneggiato, ma poiché la password è già sottoposta a hash (e seminata con il nome del sito o altro) non può essere utilizzata per inserire altri siti web con email + password a meno che l'hash non sia rotto.
3
Nel caso di furto del database delle password, l'hash del lato server E l'hash del lato client dovrebbero essere "invertiti" per rivelare la vera password.
Ora sono consapevole che questi 3 casi sono alquanto rari, tuttavia non sono improbabili, dal momento che i database delle password vengono rubati , le chiavi private sono trapelate e gli algoritmi di hash diventano obsoleti (vedi SHAttered). Ora so che l'argomento 3 non è particolarmente strong, dal momento che le password vengono triturate più volte, ma comunque la mia domanda:
Perché questa best practice non è questa? Sto controllando eventuali inconvenienti? Questo è già implementato da qualche parte?