Estaba leyendo y encontré realmente fascinante que Authy pueda usar las implementaciones de Google Authenticator en cualquier lugar.
¿Cómo hace Authy esto? ¿No es esto un riesgo de seguridad?
El uso de aplicaciones que no sean Google Authenticator no es, por sí solo, un riesgo para la seguridad, siempre y cuando confíes en esas aplicaciones.
El propósito de 2FA es demostrar que tienes algún objeto físico (en este caso, tu teléfono), además de saber algo (la contraseña). Esto hace que sea más difícil para un atacante comprometer su cuenta, ya que es menos probable que conozcan su contraseña y tengan su teléfono simultáneamente.
El protocolo TOTP utilizado por Google Authenticator básicamente funciona así (para obtener más información, consulte RFC # 6238 ):
Este es un estándar abierto, y por diseño, cualquiera puede implementar cualquiera de las dos (cliente o servidor). Sin embargo, una implementación de cliente malintencionada podría entregarle los secretos a un atacante, quien luego podría suplantarlo para propósitos de 2FA, por lo que solo debe usar aplicaciones de cliente en las que confíe.
Dicho todo esto, tengo algunas reservas bastante fuertes sobre Authy en particular. La última vez que lo investigué, almacenó el secreto del paso (1) en la nube de forma predeterminada. La intención es que sea por conveniencia, de modo que si pierde o reemplaza su teléfono, no tendrá que reconfigurar TOTP en todas sus cuentas.
Pero también significa que está derrotando el propósito principal de 2FA: ya no está demostrando que ambos tienen algo y saben algo. En cambio, está demostrando que sabe algo (su contraseña) y se ha autenticado con otra persona (el almacenamiento en la nube de Authy). Este es un modelo de seguridad más débil porque hace que Authy sea un punto de falla para todos los demás sitios.
El formato de Google Authenticator es un formato estándar conocido como TOTP o HOTP (dependiendo de si se trata de una implementación basada en el tiempo o basada en HMAC). El código QR es solo un URI codificado que contiene todo lo necesario para que una aplicación configure el contador con el secreto de inicio. Por ejemplo: otpauth://totp/Example:[email protected]?secret=JBSWY3DPEHPK3PXP&issuer=Example
es lo que realmente contiene el código QR, que tiene el nombre de usuario, así como la clave secreta utilizada.
Lea otras preguntas en las etiquetas authentication totp