Resumen
La autenticación de dos factores (también conocida como 2FA) es un mecanismo que combina dos métodos de autenticación diferentes para autenticar a los usuarios. En marzo de 2011, Google anunció el uso de la autenticación en dos pasos en línea, seguida por MSN y Yahoo.
Además de verificar el nombre de usuario y la contraseña, la autenticación en dos pasos también requiere la combinación de otro dispositivo físico, como un token RSA o un teléfono móvil. Los productos certificados de dos factores pueden dividirse en dos categorías:
Dispositivos de hardware que pueden generar tokens App para smartphone
OTP
La contraseña utilizada en la verificación en dos pasos es una contraseña de un solo uso (OTP), también conocida como contraseña dinámica. Es una tecnología de autenticación potente que utiliza criptografía para compartir claves entre clientes y servidores, y es un medio técnico muy conveniente para mejorar la autenticación estática actual con contraseña, además de ser una tecnología importante de verificación en dos pasos.
OTP es la abreviatura de One-Time Password, que significa contraseña de un solo uso. Se divide en los siguientes dos tipos:
HOTP (Algoritmo de contraseña de un solo uso basado en HMAC)
HOTP es una contraseña de un solo uso generada basada en el algoritmo HMAC, también conocida como contraseña dinámica para sincronización de eventos, que es una especificación de algoritmo publicada por ITEF, y el pseudocódigo es el siguiente:
El cliente y el servidor negocian una clave K de antemano para la generación de una contraseña de un solo uso. El cliente y el servidor tienen cada uno un contador de eventos C y sincronizan los valores de conteo de antemano. Truncar es un algoritmo que convierte una cadena de 20 bytes generada por HMAC-SHA-1 en varios dígitos decimales.
TOTP (Algoritmo de Contraseña Única Basado en el Tiempo)
TOTP es una versión mejorada de HOTP que utiliza el tiempo para reemplazar el contador de eventos C de HOTP, también conocido como cifrado dinámico para la sincronización temporal. Pseudocódigo:
T0 es el tiempo inicial de la prueba, que por defecto es 0 X es el paso de tiempo, que por defecto es de 30 segundos La documentación oficial da un poco de paso, asumiendo la hora actual de unix = 59, T0 = 0, X = 30, y luego T=1 Suponiendo que el unix actual sea tiempo=60, T0=0, X=30, luego T=2 Es decir, el valor de T se redondea hacia abajo y se descarta el decimal
A partir de la figura anterior, podemos ver que hay dos elementos principales en el algoritmo de entrada: uno es la clave compartida (también conocida como semilla), y el otro es el conteo (o factor tiempo), que se calcula mediante un algoritmo específico. Si ambos elementos son consistentes, el lado del servidor y el lado del cliente calcularán el mismo resultado, habilitando la funcionalidad de autenticación.
|