Diciamo che viene utilizzato un ZKP (ad esempio SRP6a), per la verifica della password.
Diciamo che ho bisogno di forzare un utente a cambiare la sua password (così ho il salt e il verificatore per la password corrente). Per questo, il cliente dovrà inviarmi i nuovi valori di sale e verificatore. Ma non riesco a controllare se la password utilizzata è la stessa se il sale è casuale.
Il motivo per cui mi preoccupo è che una password iniziale può essere consegnata in un modo meno sicuro e non voglio che la password rimanga.
L'unico modo per garantire che le password siano diverse da quelle che ho trovato è di richiedere che il nuovo sale sia uguale a quello precedente.
Il meccanismo per cambiare la password è esposto come API al client e non posso necessariamente fidarmi del client per fare quella verifica.
Le domande sono:
- C'è un modo migliore?
- Se no, allora c'è qualche svantaggio nel richiedere lo stesso sale, cioè sto compromettendo qualcosa?