¿Caducan los códigos de autenticación de dos factores?

Hay muchas formas diferentes de generar y enviar códigos de autenticación de dos factores (escribí una publicación de blog explicando cómo funcionan todos), pero para casi todos los escenarios, los códigos caducan.

Para aplicaciones como Google Authenticator, que hacen el temporizador de cuenta regresiva junto a los códigos y parecen ser lo que estás preguntando aquí, te dan un poco de espacio para eludir porque es realmente frustrante cuando el código caduca antes de que lo escribas. La cantidad de tiempo adicional que obtienes depende de la aplicación, pero generalmente son solo unos segundos.

¡La forma en que funciona es realmente interesante! Los códigos se generan realmente en función de la combinación de algún número grande aleatorio (llamado semilla ) y la hora actual. Pero siempre le tomará un poco de tiempo escribir los códigos y enviarlos, por lo que muchas de las aplicaciones lo incorporan y le muestran el código combinado con el tiempo 5 segundos en el futuro, en lugar del código basado en la hora actual.

Si fueras realmente rápido, es posible que puedas vencer a la computadora y que tu inicio de sesión sea rechazado porque todavía está esperando el código de antes.

Existen diferentes algoritmos utilizados en la generación de OTP: HOTP, TOTP, OCRA.

El más popular es TOTP (Contraseña de un solo uso basada en el tiempo). El código de acceso generado es temporal y válido durante cierto tiempo, generalmente de 30 a 60 segundos. Cuanto más corto sea el período de validez, mayor será el nivel de seguridad proporcionado.

HOTP es una contraseña de un solo uso basada en HMAC y se considera menos segura que TOTP ya que las contraseñas de HOTP pueden ser válidas durante un período de tiempo desconocido. Este algoritmo genera códigos de acceso basados ​​en eventos que son válidos hasta que se hayan utilizado.

OCRA u Oath Challenge-Response Algorithm es un algoritmo muy confiable. Se requiere la entrada del usuario de ‘desafío’ en un dispositivo antes de que se presente una OTP.

Entonces la respuesta es: sí, el código de autenticación de dos factores caduca para TOTP y OCRA y ‘caduca’ para HOTP después de usar el código de acceso.

Esta es una característica de conveniencia. Si solo aceptara el código actual, sería sensible a los retrasos debido a que escribes y también por los diferentes relojes del servidor y tu dispositivo no sincronizado. Hay un margen de código a cada lado del que ve actualmente que funcionará. Si recuerda un código y lo prueba en unas pocas horas, no funcionará. No estoy seguro de si hay un número estándar de códigos que se aceptan, pero podría variar entre los servicios.

La implementación de los códigos generalmente se realiza utilizando un algoritmo TOTP

Algoritmo de contraseña de un solo uso basado en el tiempo – Wikipedia

Se puede generar alguna implementación de código usando HOTP

Algoritmo de contraseña de un solo uso basado en HMAC – Wikipedia

Creo que ahora es principalmente TOTP.

Independientemente del algoritmo utilizado, para fines de usabilidad en el lado de la aplicación, genera 2 o 3 códigos basados ​​en el tiempo o el hash, luego verifica si el código de usuario está dentro de esos.

Esto se ocupa de los problemas de escritura lenta.

Ha pasado un tiempo desde que implementé esto. Así que perdona mi oxidación.

Sí, 2FA caduca, los tokens OTP suelen ser llaveros de bolsillo con una pequeña pantalla que muestra un número. El número cambia cada 30 o 60 segundos, dependiendo de cómo esté configurado el token. Para la autenticación de dos factores, el usuario ingresa su ID de usuario, PIN y la OTP para acceder al sistema.

Para saber más sobre OTP, haga clic aquí http://www.alcodes.com/otp-sms#w

Sí, definitivamente caducan. Intenta usar el mismo código 15 minutos después: no funcionará.

Lo que probablemente esté viendo, dependiendo de la programación exacta del mecanismo de aceptación del código, es un pequeño margen para evitar molestar a los usuarios al hacer que los códigos caduquen justo cuando los ingresan. Sin conocer los detalles de exactamente a qué sistema de inicio de sesión se refiere, puede aceptarse un código de autenticación, incluso si se ha generado un nuevo código, pero lo más probable es que caduque cuando se emita el siguiente código. Entonces, si lo desea, tiene una “lógica de caducidad de salto”.

Creo que sería fácil de usar y seguro si se genera un nuevo código, digamos cada minuto.