HOTP frente a TOTP: ¿En qué se diferencian?

Nick Smith | | 4 minutos de lectura
HOTP Contraseña de un solo uso OTP TOTP

HOTP y TOTP constituyen los dos patrones principales de las contraseñas de un solo uso, pero ¿qué significan desde el punto de vista de la seguridad y por qué elegiría una y no otra?

Diferencia entre HOTP y TOTP

Tanto en HOTP como en TOTP, el token, es decir, el generador de OTP, crea un código numérico que suele tener 6 u 8 dígitos. La seguridad de OTP se basa en el hecho de que estos códigos cambian constantemente y de que son de un solo uso, de ahí el nombre.

HOTP: contraseña de un solo uso basada en eventos

La OTP basada en eventos (también denominada HOTP, lo que implica una contraseña de un solo uso basada en HMAC) es el algoritmo original de contraseña de un solo uso y depende de dos tipos de información. El primero es la clave secreta, llamada "inicilización", la cual solo la conoce el token y el servidor que valida los códigos OTP enviados. El segundo tipo de información es el factor móvil que, en el caso de las OTP basadas en eventos, es un contador. El contador es almacenado en el token y en el servidor. El contador del token incrementa al pulsar el botón del token, mientras que el contador del servidor solo se incrementa cuando se valida correctamente una OTP.

Para calcular una OTP, el token suministra el contador al algoritmo HMAC usando la inicialización del token como clave. HOTP utiliza la función hash de SHA-1 en el HMAC. De esta forma, se genera un valor de 160 bits que después se reduce a los 6 (u 8) dígitos visualizados en el token.

TOTP: contraseña de un solo uso basada en tiempo

La contraseña de un solo uso basada en tiempo (TOTP), está inspirada en HOTP, pero su factor móvil es el tiempo en lugar de un contador. TOTP emplea tiempo en incrementos llamado timestep, que suele ser de 30 o 60 segundos. De esta forma, cada OTP será válida mientras dure el timestep.

Comparación

Ambas combinaciones de OTP proporcionan códigos de un solo uso, pero la diferencia principal es que, en HOTP, una OTP dada es válida hasta que se use o hasta que se emplee una OTP posterior. En HOTP, hay ciertos códigos de "siguiente OTP" válidos. Esto se debe a que se puede pulsar el botón del token haciendo que el contador de token se incremente sin que se envíe al servidor de validación la OTP resultante. Por ello, los servidores de validación de HOTP aceptan varias OTP. En concreto, aceptarán una OTP generada por un contador que se encuentra dentro de un número establecido de incrementos a partir del valor anterior del contador guardado en el servidor. Este margen se conoce como la ventana de validación. Si el contador del token se encuentra fuera del margen permitido por el servidor, la validación no funciona y el token debe sincronizarse de nuevo.

Por ello, está claro que en HOTP debe hacerse una compensación. Cuanto mayor sea la ventana de validación, menor será la necesidad de volver a sincronizar el token con el servidor, lo cual no conviene al cliente. No obstante, es importante saber que cuanto mayor sea la ventana, más probabilidades tendrá el adversario de adivinar una OTP aceptada a través de un ataque por fuerza bruta.

Por el contrario, en TOTP solo hay una OTP válida en un momento dado: aquella generada a partir del tiempo UNIX actual.

Elección

Elegir entre HOTP y TOTP meramente desde la perspectiva de la seguridad, favorece claramente la TOTP. Lo que es más importante, el servidor de validación debe poder afrontar posibles derivas de tiempo con tokens TOTP para reducir al mínimo cualquier repercusión en los usuarios.

Hay más elección de factor de forma con tokens TOTP. Los llaveros transmisores de OTP son cada vez más pequeños y Microcosm acaba de presentar la tarjeta OTP: un token de OTP del tamaño de una tarjeta de crédito con visualización EPD. Las tarjetas pueden ser una opción más práctica, ya que pueden llevarse en una cartera o monedero junto con otras tarjetas, o incluso en la parte trasera de la funda de un teléfono móvil.

Descubra aquí nuestra gama OTP


Los criterios de HOTP y TOTP son producidos por Initiative for Open Authentication (OATH). Todos los tokens OTP de Microcosm son conformes a OATH.