È possibile implementare un protocollo di accesso con crittografia asimmetrica anziché il metodo della password con hash?
Ad esempio, durante la creazione di un account, il client genera una coppia di chiavi privata / pubblica da un hash del nome utente, della password e di altri dati aggiuntivi. La chiave pubblica viene quindi inviata al server con il nome utente e il server memorizza il nome utente e la chiave pubblica. Quando l'utente vuole accedere, inserisce la sua password, il client rigenera la chiave privata, firma un nonce con esso e invia il messaggio firmato al server. Il server è quindi in grado di autenticare l'utente poiché conosce la chiave pubblica associata al nome utente.
C'è qualche difetto in questo protocollo?
E quali sarebbero i vantaggi rispetto alla memorizzazione dell'hash della password?
EDIT: Ho effettivamente trovato una risposta abbastanza completa qui: link