OTP y Autenticación
4 sept 2024
Guía sencilla para entender TOTP y HOTP
En el mundo digital actual, la seguridad es una prioridad máxima. Todos hemos escuchado acerca de las contraseñas tradicionales y cómo no son tan seguras como pensábamos. Aquí es donde entran las contraseñas de un solo uso (OTP). Ofrecen una forma más segura y dinámica de autenticar a los usuarios.
Hoy, exploraremos dos métodos populares de OTP: Contraseña de un solo uso basada en el tiempo (TOTP) y Contraseña de un solo uso basada en HMAC (HOTP). ¿Cuáles son las diferencias entre ellos? ¿Y cómo decides cuál se adapta mejor a tus necesidades? Vamos a profundizar en ello.
Entender OTP
Primero lo primero, ¿qué es exactamente un OTP?
Un OTP es una contraseña única que solo puede usarse una vez para una sola sesión de inicio de sesión o transacción. Estas contraseñas usualmente son de seis dígitos y se utilizan en sistemas de Autenticación de Dos Factores (2FA) y Autenticación de Múltiples Factores (MFA).
La principal ventaja de los OTP es que son dinámicos y de corta duración, lo que los hace mucho más seguros que las contraseñas estáticas. Para más información, puedes leer nuestra guía completa sobre SMS OTP.
Ahora, profundicemos en los dos tipos principales de OTP.
Contraseña de un solo uso basada en el tiempo (TOTP)
¿Cómo funciona TOTP?
TOTP utiliza un algoritmo basado en el tiempo donde el factor de movimiento es el tiempo Unix actual dividido por un valor de intervalo de tiempo, típicamente establecido en 30 o 60 segundos. Esto significa que el OTP es válido solo por un breve período, mejorando la seguridad.
El algoritmo TOTP generalmente funciona como sigue:
Se establece un secreto compartido entre el servidor y el cliente.
El tiempo actual se determina y se divide por el intervalo de tiempo.
Este valor se combina con el secreto compartido usando una función hash criptográfica.
El hash resultante se trunca para crear un OTP legible por humanos.
Beneficios y Desventajas de TOTP
✅ Beneficios:
Mayor seguridad debido al breve período de validez
Reduce la ventana para posibles ataques
Auto-sincronización (basado en el tiempo actual)
🚩 Desventajas:
Requiere sincronización de tiempo entre el dispositivo del usuario y el servidor
El OTP puede expirar antes de ingresar, lo que podría ser inconveniente
Sensible a la desviación del tiempo en los dispositivos
Contraseña de un solo uso basada en HMAC (HOTP)
¿Cómo funciona HOTP?
HOTP se basa en un algoritmo basado en eventos. Cuando el usuario solicita un OTP, un contador se incrementa en ambos lados, cliente y servidor. Este contador, junto con una clave secreta compartida (conocida como "semilla"), genera un OTP único. Este proceso utiliza la función de hash HMAC-SHA-1.
El algoritmo HOTP generalmente funciona como sigue:
Se establece un secreto compartido y un valor de contador inicial entre el servidor y el cliente.
Cuando se solicita un OTP, el valor actual del contador se combina con el secreto compartido usando HMAC-SHA-1.
El hash resultante se trunca para crear un OTP legible por humanos.
El contador se incrementa en ambos lados después de su uso.
Beneficios y Desventajas de HOTP
✅ Beneficios:
Flexible, ya que el OTP no expira hasta usarse
No requiere sincronización del tiempo
Puede implementarse sin conexión
🚩 Desventajas:
Potencialmente menos seguro debido al período de validez más largo
Riesgo de desincronización si se generan múltiples OTP sin uso
Requiere gestión segura del contador en ambos lados, cliente y servidor
Diferencias clave entre HOTP y TOTP
⏳ Expiración del OTP
Una de las principales diferencias es cuánto tiempo permanece válido el OTP. Los tokens HOTP no expiran hasta su uso, lo que ofrece más flexibilidad. Por otro lado, los tokens TOTP expiran después de un período establecido, generalmente de 30 a 60 segundos, lo que mejora la seguridad pero requiere una entrada oportuna.
🔐 Conveniencia vs. Seguridad
HOTP ofrece una experiencia más amigable sin restricciones de tiempo, pero es menos seguro debido a la vulnerabilidad de la ventana de validación. TOTP, aunque requiere una entrada oportuna del OTP, es más seguro debido a su expiración basada en el tiempo.
🪢 Complejidad de Implementación
HOTP es generalmente más fácil de implementar porque no requiere sincronización de tiempo. TOTP, sin embargo, necesita sincronización de tiempo precisa, lo que agrega una capa de complejidad pero también incrementa la seguridad.

Elegir entre HOTP y TOTP
Tu elección entre HOTP y TOTP depende de tus necesidades y circunstancias específicas:
Requisitos de Seguridad: Si un sistema OTP seguro es tu máxima prioridad, TOTP generalmente es la mejor opción.
Experiencia del Usuario: Si deseas evitar restricciones de tiempo para los usuarios, HOTP podría ser más adecuado.
Sincronización de Tiempo: Si mantener los dispositivos sincronizados es un desafío, HOTP puede ser una opción más práctica.
Recursos e Implementación: Si buscas algo rápido y fácil de implementar con menos recursos, HOTP es el camino a seguir.
Uso en Línea vs. Sin Conexión: Para aplicaciones fuera de línea, HOTP podría ser más adecuado, ya que no requiere comunicación en tiempo real con el servidor.
Tanto HOTP como TOTP mejoran significativamente la seguridad sobre las contraseñas tradicionales al ofrecer métodos de autenticación de un solo uso y dinámicos.
La naturaleza basada en el tiempo de TOTP lo hace generalmente más seguro, lo que lo convierte en la opción preferida para la mayoría de las aplicaciones en línea modernas.
Al elegir entre HOTP y TOTP, considera tus requisitos específicos de seguridad, objetivos de experiencia del usuario y restricciones de implementación. Cualquiera que sea el método que elijas, implementar sistemas OTP robustos puede mejorar significativamente tu postura de seguridad, protegiendo tus activos digitales del acceso no autorizado y asegurando una experiencia de usuario más segura.
¿Buscas implementar soluciones OTP seguras para tu aplicación?
En Prelude.so, nos especializamos en proporcionar verificación avanzada de TOTP SMS e infraestructura de incorporación móvil a través de un conjunto de APIs unificadas.
Nuestra solución permite a las empresas:
Verificar a sus usuarios globalmente a través de múltiples canales: SMS, WhatsApp, Viber o RCS
Prevenir fraude de bombeo de SMS para proteger a sus usuarios (y su presupuesto)
Comenzar con la verificación de usuarios en menos de un día, con APIs amigables para el usuario y documentación completa
Reducir su presupuesto de verificación a través de precios competitivos y facturación transparente
También tenemos una guía donde comparamos los principales 10 proveedores de API SMS en el mercado.
Ya sea que estés en redes sociales, citas, fintech, comercio electrónico o cualquier otra industria que requiera verificación de usuarios, Prelude.so puede ayudarte a optimizar tus procesos de autenticación y aumentar la seguridad.
Artículos Recientes