Google Authenticator admite TOTP y algoritmos HOTP .
En ambos algoritmos, se debe compartir un secreto entre el servidor y el cliente para generar con éxito las contraseñas de un solo uso. Le sugiero que lea los RFC respectivos de los algoritmos (o mi respuesta aquí ) para entenderlo mejor.
Sí, si el atacante logra apoderarse del secreto compartido, el algoritmo se anula. Sin embargo, esto no es muy práctico. El secreto solo se muestra en forma de un código QR una vez al configurar el algoritmo. Es de suponer que estará sentado frente a la pantalla cuando esto suceda y se dará cuenta si alguien sospechoso se acerca y comienza a escanear el código QR con su teléfono. Hay muchas medidas físicas que puede emplear si este es el caso.
Una vez que se comparte el secreto, se almacena en el servidor y el cliente (en este caso, su teléfono). Al menos en el caso de Android, el secreto se almacena sin cifrar en un archivo de base de datos SQLi. Sin embargo, la aplicación Authethenticator solo puede acceder a este archivo a menos que su dispositivo esté enraizado, por lo que no es fácil ponerlo en sus manos. Debería ser tan difícil si no más difícil en un dispositivo iOS. Usted tiene preocupaciones mucho mayores si un atacante logra comprometer el servidor.
Así que sí, el algoritmo se anula si se filtra el secreto. Pero la filtración secreta no es algo fácil de suceder. En cualquier caso, es la autenticación de factor DOS . Todavía tienes el otro factor para protegerte.