Ho il compito di cambiare il metodo di accesso attuale degli utenti in uno più sicuro (al momento tutte le password sono archiviate in chiaro nel database ...).
Il problema è che tutte le password devono essere sulla rete locale del cliente (in quanto dovrebbero essere in grado di funzionare anche senza connessione a Internet), ma dovremmo comunque essere in grado di recuperarle e dirle agli utenti nel caso in cui dimentichino.
Ho provato a spingere per la soluzione standard "hashing and salting + reimpostazione password se necessario", ma è stata giudicata troppo complessa.
Stavo pensando di utilizzare la crittografia asimmetrica, in modo da poter distribuire una chiave pubblica ai clienti e crittografare tutte le password con esso (controllando la password crittografata al momento dell'accesso, come si fa normalmente con gli hash) e mantenere la chiave privata in modo da può eventualmente decrittografare la password se necessario.
Questo è effettivamente sicuro (a condizione che manteniamo la chiave privata per noi stessi) o dovremmo ricorrere a un altro metodo?