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

TOTP ( algoritmo de contraseña de un solo uso basado en el tiempo , RFC 6238 [1] ) es un algoritmo OATH para generar contraseñas de un solo uso para autenticación segura , que es una mejora del HOTP (algoritmo de contraseña de un solo uso basado en HMAC) . Es un algoritmo de autenticación unidireccional: el servidor verifica la identidad del cliente . La principal diferencia entre TOTP y HOTP es la generación de contraseñas basadas en el tiempo, es decir, el tiempo es un parámetro [2] . En este caso, no se suele utilizar una indicación exacta del tiempo, sino el intervalo actual con límites preestablecidos (normalmente 30 segundos).

Historia

Desde 2004, OATH ( La iniciativa para la autenticación abierta ) ha estado trabajando en el proyecto One Time Password (OTP). El primer resultado fue HOTP (el algoritmo OTP del código de autenticación de mensajes basado en hash (HMAC)) publicado en diciembre de 2005. Ha sido presentado como un proyecto al IETF (Grupo de Trabajo de Ingeniería de Internet) [2] [3] .

El trabajo adicional de OATH ha sido mejorar HOTP y TOTP se introdujo en 2008 [4] . Este algoritmo no utiliza un contador para sincronizar el cliente y el servidor, sino que genera una contraseña basada en el tiempo que es válida durante algún intervalo. El algoritmo funciona así: el cliente toma el valor actual del temporizador y la clave secreta, los procesa utilizando alguna función hash y los envía al servidor, a su vez, el servidor realiza los mismos cálculos, después de lo cual solo necesita comparar estos valores [5] . Puede implementarse no solo en la función hash SHA-1 , a diferencia de HOTP, por lo que la función hash también es un parámetro de entrada [2] .

Posteriormente, se introdujo un nuevo algoritmo que amplía TOTP aún más. Se introdujo en septiembre de 2010 y se denominó Algoritmos de desafío-respuesta OATH (OCRA) . La principal diferencia con los algoritmos anteriores es que el servidor también participa en la autenticación. Así el cliente también puede estar seguro de su autenticidad [2] .

Cómo funciona

De hecho, TOTP es una variante del algoritmo HOTP, en el que se sustituye un valor dependiente del tiempo como valor del contador [1] . Denotar:

Entonces [1] [6]

dónde

denote String — el resultado de HMAC-SHA-1(K,T); OffsetBits : 4 bits bajos de String ; Offset = StringToNumber(OffsetBits) y el resultado de Truncate será una cadena de cuatro caracteres - String[Offset] ... String[Offset + 3] [6]

También vale la pena señalar que, a diferencia de HOTP, que se basa solo en SHA-1 , TOTP también puede usar HMAC-SHA-256 , HMAC-SHA-512 y otras funciones hash HMAC:

etc [1]

Confiabilidad del algoritmo

El concepto de contraseñas de un solo uso, junto con métodos criptográficos modernos, se puede utilizar para implementar sistemas de autenticación remotos seguros [5] . TOTP es bastante resistente a los ataques criptográficos, pero existen posibilidades de piratería, por ejemplo, es posible una variante de este tipo del ataque man-in-the-middle :

Al escuchar el tráfico del cliente, un atacante puede interceptar el inicio de sesión enviado y la contraseña de un solo uso (o un hash del mismo). Entonces es suficiente para él bloquear la computadora de la "víctima" y enviar datos de autenticación en su propio nombre. Si logra hacer esto en un período de tiempo , entonces podrá obtener acceso. Es por eso que debes hacerlo pequeño. Pero si el tiempo de caducidad de la contraseña se acorta demasiado, en caso de una ligera desincronización, el cliente no podrá obtener acceso [5] .

También existe una vulnerabilidad asociada a la sincronización de los temporizadores del servidor y del cliente, ya que existe el riesgo de desincronización de la información horaria en el servidor y en el software y/o hardware del usuario. Dado que TOTP usa el tiempo como parámetro, si los valores no coinciden, todos los intentos de autenticación del usuario fallarán. En este caso, también será imposible la falsa admisión de otra persona. Cabe señalar que la probabilidad de tal situación es extremadamente pequeña [5] .

Véase también

Notas

  1. 1 2 3 4 M'Raïhi, Machani, Pei et al., 2011 .
  2. 1 2 3 4 Nathan Willis, 2010 .
  3. Vaidya, Parque, Rodrigue, 2009 .
  4. OATH envía TOTP: especificación de contraseña de un solo uso basada en el tiempo al IETF .
  5. 1 2 3 4 Davletkhanov, 2006 .
  6. 1 2 M'Raïhi, Bellare, Hoornaert et al., 2005 .

Fuentes

Enlaces