Capisco perché i certificati client SSL non sono ampiamente utilizzati (è necessario installarli, problemi con macchine condivise, ecc.). D'altra parte, quando accedo al server, la password viene inviata ad essa e si trova nella memoria del server. Inoltre, se il certificato del server è trapelato e c'è stato lo spoofing del DNS, c'è poca protezione contro il recupero della password da parte del MITM. Mentre gli attacchi di questo tipo sono rari, continuano comunque (vedi diginotar).
Sono uscito con uno schema molto semplice - perché non è ampiamente utilizzato, presumo che qualcosa non funzioni:
Impostazione password:
- Il sale casuale viene generato (dal client, dal server o entrambi)
- Il client ottiene il sale e la password e semina il PRNG crittografato in precedenza concordato
- La chiave pubblica e il sale sono memorizzati sul server
Accesso:
- Salt viene inviato al client
- Il client rigenera la chiave privata
- I relè di autenticazione su richiesta / risposta tra server
Esiste uno svantaggio di tale schema (ad eccezione del sovraccarico computazionale / di trasferimento aggiuntivo)?