Per favore correggimi se sbaglio dovunque, ma da quello che ho capito, i comuni autori di autenticità a due fattori come Google Authenticator implementano TOTP che usa una chiave segreta condivisa che è condivisa tra il telefono e il server di autenticazione.
Perché hanno deciso di utilizzare una singola chiave segreta condivisa quando avrebbero potuto usare una coppia di chiavi pubblica / privata? Il telefono memorizzerebbe la chiave privata e può firmare un contatore / timestamp di incremento e il server di autenticazione potrebbe verificare la firma con la chiave pubblica. Sembra più sicuro in quanto una violazione del server di autenticazione non sarebbe in grado di compromettere la chiave segreta dell'utente? Ci sono dei vantaggi che fornisce una chiave segreta condivisa?