¿Pueden dos clientes TOTP registrarse al mismo tiempo y generar los mismos tokens?

3

Tenga en cuenta que no me refiero a sistemas como Authy, donde puede iniciar sesión en su cuenta en varios dispositivos y sincronizar sus tokens. Me refiero a dos dispositivos completamente separados. que no se conocen unos a otros.

Considere el flujo típico de configuración de autenticación de dos factores para un sitio web de consumidores:

  1. El usuario inicia sesión y navega a la página "configurar 2FA".
  2. El sitio genera y muestra un código de barras 2D para el usuario.
  3. El usuario toma una imagen del código de barras con su aplicación 2FA y genera un token.
  4. El usuario envía el token al sitio.
  5. El sitio valida / finaliza la configuración y 2FA está habilitado.

Durante el paso 3, si dos dispositivos diferentes escanearan el código de barras, ¿comenzarían a generar la misma serie de tokens? Si es así, ¿tendrían que escanear el código de barras aproximadamente al mismo tiempo para comenzar con los mismos valores iniciales?

Tengo curiosidad por saber si es posible navegar por el código de barras desde la pantalla de un usuario desprevenido o, por ejemplo, ver un código de barras en material de archivo de video (tal vez de una cámara de seguridad o transmisión de noticias local) y usarlo para clonar un token 2FA sin el conocimiento del usuario.

    
pregunta smitelli 16.11.2015 - 16:42
fuente

1 respuesta

3

Básicamente, sí.

El algoritmo utilizado se basa en la clave secreta (a menudo proporcionada en forma de código de barras) y en una hora precisa. Basado en la combinación de estos, proporciona un código corto con el que el servidor se puede comparar.

De hecho, el servidor generalmente también aceptará los códigos anterior y siguiente durante un tiempo, ya que el servidor o los dispositivos del usuario final podrían estar ligeramente fuera de lugar. La tolerancia de esto depende de la seguridad del servicio. donde las implementaciones de alta seguridad asumirán que el usuario final tiene un dispositivo muy preciso, y las de menor seguridad podrían permitirle al usuario proporcionar uno de los tres tokens en un momento dado.

Puede probar esto configurando múltiples dispositivos con un solo código de barras, ni siquiera necesita escanearlos al mismo tiempo. Sin embargo, sí necesita que sus relojes estén sincronizados. Si están ligeramente apagados, uno mostrará el código "antiguo" por un tiempo antes de actualizar.

    
respondido por el Matthew 16.11.2015 - 17:17
fuente

Lea otras preguntas en las etiquetas