OTP y Autenticación
4 sept 2024
Guía sencilla para entender TOTP y HOTP
En el mundo digital de hoy, la seguridad es una prioridad principal. Todos hemos oído hablar 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 (OTPs). Ofrecen una forma más segura y dinámica de autenticar a los usuarios.
Hoy, profundizaremos en dos métodos populares de OTP: Contraseña de Único Uso Basada en Tiempo (TOTP) y Contraseña de Único Uso Basada en HMAC (HOTP). ¿Cuáles son las diferencias entre ellos? ¿Y cómo decides cuál se ajusta mejor a tus necesidades? Vamos a profundizar.
Entendiendo las OTP
Primero lo primero, ¿qué es exactamente una OTP?
Una 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 suelen tener seis dígitos y se utilizan en sistemas de Autenticación de Dos Factores (2FA) y en Autenticación Multifactor (MFA).
La principal ventaja de las OTP es que son dinámicas y de corta duración, lo que las hace mucho más seguras que las contraseñas estáticas. Para más información, puedes leer nuestra guía completa sobre SMS OTP.
Ahora, vamos a profundizar en los dos tipos principales de OTPs.
Contraseña de Único Uso Basada en 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 paso de tiempo, generalmente configurado en 30 o 60 segundos. Esto significa que la OTP solo es válida por un corto período, mejorando la seguridad.
El algoritmo TOTP generalmente funciona de la siguiente manera:
Se establece un secreto compartido entre el servidor y el cliente.
Se determina el tiempo actual y se divide por el paso de tiempo.
Este valor se combina con el secreto compartido usando una función hash criptográfica.
El hash resultante se trunca para crear una OTP legible para humanos.
Beneficios y Desventajas de TOTP
✅ Beneficios:
Mayor seguridad debido al corto período de validez
Reduce la ventana para posibles ataques
Auto-sincronización (basada en el tiempo actual)
🚩 Desventajas:
Requiere sincronización horaria entre el dispositivo del usuario y el servidor
La OTP puede expirar antes de su ingreso, lo que puede ser incómodo
Sensible a la deriva del tiempo en los dispositivos
Contraseña de Único Uso Basada en HMAC (HOTP)
¿Cómo funciona HOTP?
HOTP se basa en un algoritmo basado en eventos. Cuando el usuario solicita una OTP, un contador se incrementa tanto en el lado del cliente como en el del servidor. Este contador, junto con una clave secreta compartida (conocida como la "semilla"), genera una OTP única. Este proceso utiliza la función de hash HMAC-SHA-1.
El algoritmo HOTP generalmente funciona de la siguiente manera:
Se establece un secreto compartido y un valor de contador inicial entre el servidor y el cliente.
Cuando se solicita una OTP, el valor actual del contador se combina con el secreto compartido usando HMAC-SHA-1.
El hash resultante se trunca para crear una OTP legible para humanos.
El contador se incrementa en ambos lados después de su uso.
Beneficios y Desventajas de HOTP
✅ Beneficios:
Flexible, ya que la OTP no expira hasta que se usa
No se requiere sincronización horaria
Se puede implementar 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 OTPs sin uso
Requiere una gestión segura del contador tanto en el cliente como en el servidor
Diferencias clave entre HOTP y TOTP
⏳ Expiración de la OTP
Una de las principales diferencias es cuánto tiempo permanece válida la OTP. Los tokens HOTP no expiran hasta que se usan, lo que te da más flexibilidad. Por otro lado, los tokens TOTP expiran después de un período establecido, generalmente 30-60 segundos, lo que mejora la seguridad pero requiere ingreso oportuno.
🔐 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 ingreso oportuno de la OTP, es más seguro debido a su expiración basada en el tiempo.
🪢 Complejidad de Implementación
HOTP generalmente es más fácil de implementar porque no requiere sincronización horaria. TOTP, sin embargo, necesita sincronización horaria precisa, lo que añade una capa de complejidad pero también aumenta 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 de OTP seguro es tu principal 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 Horaria: 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 la solución.
Uso en Línea vs. Fuera de Línea: Para aplicaciones sin conexión, HOTP puede ser más adecuado ya que no requiere comunicación en tiempo real con el servidor.
Tanto HOTP como TOTP mejoran significativamente la seguridad en comparación con las contraseñas tradicionales al ofrecer métodos de autenticación dinámicos y de uso único.
La naturaleza basada en el tiempo de TOTP lo hace generalmente más seguro, convirtiéndolo en la elecció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 de 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 el 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 fáciles de usar 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 10 principales 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 mejorar la seguridad.
Artículos Recientes



