Por favor, corríjame si me equivoco en cualquier lugar, pero por lo que entiendo, los autenticadores de dos factores basados en teléfonos móviles como Google Authenticator implementan TOTP, que utiliza una clave secreta compartida que se comparte entre el teléfono y el servidor de autenticación.
¿Por qué decidieron usar una sola clave secreta compartida cuando podrían haber usado un par de claves pública / privada? El teléfono almacenaría la clave privada y puede firmar un incremento / marca de tiempo y el servidor de autenticación podría verificar la firma con la clave pública. ¿Parece más seguro ya que una violación en el servidor de autenticación no podría comprometer la clave secreta del usuario? ¿Hay alguna ventaja que proporcione una clave secreta compartida?