La mia situazione è questa:
- Le credenziali dell'utente sono memorizzate sul server, bcrypt, hash casuali.
- Sto progettando un'API REST, quindi mi piacerebbe mantenerlo quanto meno stateless possibile!
- Il client è un'app per Android / iPhone.
- Tutte le comunicazioni vengono eseguite su HTTPS con il TLS più recente
Ecco gli scenari in cui devo trasmettere una password sul filo:
- Accesso utente
- L'utente cambia la sua password (richiede la vecchia password per conferma)
- L'utente cambia la sua email (richiede la password corrente per conferma)
In tutti questi casi, mi chiedo se ci saranno ulteriori vantaggi per la sicurezza in aggiunta all'hashing / crittografia della password sul lato client, prima di inviarlo tramite HTTPS al server.
Su una nota correlata, dal momento che le password sono memorizzate come hash sul server, come potrei anche implementare un ulteriore schema di hashing / crittografia lato client che restituisce una qualche forma della password originale sul server, così posso confrontarlo con l'hash memorizzato?