NOC/SOC OPERATIVO · MONITOREO CONTINUO
IT Experts de México
Contáctanos
Inicio/ Blog/ Qué es un OTP: el código de 6 dígitos que cambia cada 30 seg...
Ciberseguridad

Qué es un OTP: el código de 6 dígitos que cambia cada 30 segundos

RERubén Espinoza calendar_today14/07/2026 schedule6 min de lectura

Todos hemos usado ese código de seis dígitos que aparece en una app, cambia cada medio minuto y sirve una sola vez. Tiene nombre: OTP, de One-Time Password (contraseña de un solo uso). Y detrás de algo tan cotidiano hay un mecanismo elegante que vale la pena entender, aunque sea por el placer de saber cómo funciona la magia que usas a diario. Este es el spoke técnico del cluster de MFA.

El problema que resuelve

Una contraseña normal es fija: la misma hoy y mañana. Eso significa que si alguien la ve una vez —por encima del hombro, en una filtración, capturada en tránsito—, la puede reusar. Un OTP le da la vuelta a eso siendo de un solo uso y efímero: cada código sirve una vez y caduca en segundos. Aunque alguien lo vea, para cuando lo intente usar, ya no vale. Es una contraseña que se autodestruye, y por eso es un segundo factor tan útil.

La pregunta interesante: ¿cómo saben app y servidor el mismo código sin hablarse?

Aquí está lo bonito. Tu app genera el código y el servidor espera exactamente el mismo, pero tu app no le "manda" nada al servidor para acordarlo, y de hecho funciona aunque tu teléfono no tenga internet. ¿Cómo? Con dos ingredientes que ambos comparten:

Al configurar se comparte un secreto entre servidor y app; cada 30 segundos ambos combinan el secreto con la hora actual mediante el mismo cálculo y obtienen el mismo código de seis dígitos, sin comunicarse.
Secreto compartido + hora actual, el mismo cálculo en ambos lados, sin comunicación.
  • Un secreto compartido. Cuando configuras la app (ese código QR que escaneas al activar la MFA), el servidor y tu app acuerdan una clave secreta común. Es lo único que se comparte, y solo una vez, al inicio.
  • La hora actual. Ambos miran el reloj. Cada intervalo de 30 segundos, combinan el secreto compartido con la hora actual mediante el mismo cálculo matemático, y obtienen el mismo resultado: el código de seis dígitos.

Como los dos tienen el mismo secreto y ven la misma hora, calculan el mismo código de forma independiente, sin comunicarse. Por eso tu app no necesita internet: no está recibiendo el código de ningún lado, lo está calculando. Y como el cálculo incluye la hora, el código cambia cada 30 segundos. A esta variante, la más común, se le llama TOTP (OTP basado en tiempo).

El talón de Aquiles: si los relojes no cuadran, el código correcto falla

Toda esa elegancia tiene una contraparte, y es la parte que casi nadie te explica hasta que te muerde: como el código se calcula a partir de la hora, los dos relojes tienen que estar de acuerdo. El de tu teléfono y el del servidor. Si se separan lo suficiente, tu app genera un código impecable… y el servidor lo rechaza. Nadie te hackeó, no tecleaste mal: los relojes dejaron de cuadrar.

El servidor no exige precisión de milisegundos —sería inusable—. Acepta una ventana de tolerancia, normalmente el intervalo de 30 segundos actual más uno antes y uno después, para absorber el retardo de tecleo y pequeñas diferencias de reloj. Es decir, tienes cerca de medio minuto de holgura por lado. Pero fuera de esa ventana, el código válido se rechaza igual que uno falso, y —esto es lo cruel— el mensaje de error suele mentir: dice «código incorrecto» cuando el código era correcto; lo que estaba mal era la hora.

¿Qué reloj se desfasa? El del teléfono, rara vez: sincroniza la hora solo por la red. Cuando falla, apps como Google Authenticator traen una opción de «corregir la hora para los códigos» que re-sincroniza su reloj interno —el clásico truco que arregla el «mis códigos ya no sirven»—. El reloj peligroso es el del servidor: si su hora deriva, empieza a rechazar los códigos válidos de todo el mundo a la vez. Es una caída autoinfligida disfrazada de «se rompió la MFA». Por eso todo servidor serio mantiene su reloj disciplinado con NTP, el protocolo que sincroniza la hora contra relojes de referencia. En un sistema TOTP, la sincronización de hora deja de ser un detalle y se vuelve infraestructura que carga peso.

Y hay un giro que se vuelve evidente en sistemas aislados: mientras más autónoma es una máquina, más difícil es mantenerla en hora. Un equipo desconectado de internet no puede consultar los servidores de tiempo públicos; si quieres que siga validando códigos estando offline, tienes que darle su propia fuente confiable de hora. La hora exacta no es gratis: alguien tiene que proveerla. El genio del TOTP (funciona sin red) y su fragilidad (se rompe si los relojes se separan) son la misma moneda.

Por qué es seguro

Tres propiedades lo hacen fuerte. El secreto nunca viaja después de la configuración inicial, así que no hay nada que interceptar en cada login. El código es de un solo uso y efímero, inútil si se captura tarde. Y del código de seis dígitos no se puede deducir el secreto (el cálculo va en un solo sentido). Su punto delicado es esa configuración inicial —el secreto— y que, como cualquier código, un usuario podría teclearlo en un sitio de phishing; por eso las llaves físicas son un paso más allá. Pero para el uso cotidiano, el OTP es un enorme salto de seguridad, elegante en su simplicidad.

¿Y nuestro querido Microsoft Authenticator? Es un TOTP más (y eso es bueno)

Aquí conviene bajar un mito. Cuando Microsoft Authenticator te muestra uno de esos códigos de seis dígitos, no está haciendo nada propio ni mágico: implementa exactamente el mismo estándar abierto (TOTP) que Google Authenticator, Authy, 1Password o cualquier otra. Son intercambiables. De hecho, ese código QR que escaneas al activar la MFA es un formato público, y puedes escanear el mismo QR en dos apps distintas: las dos te darán el mismo código en el mismo segundo, porque las dos hacen el mismo cálculo con el mismo secreto y la misma hora. La app es un commodity; las matemáticas están estandarizadas.

Vale una distinción honesta, para no simplificar de más. Lo que es exclusivo de Microsoft es la experiencia de aprobar con un toque —la notificación push y el number matching— cuando entras a tu propia cuenta de Microsoft: eso es un mecanismo distinto y propietario, no TOTP. Pero en el momento en que usas Authenticator para otro servicio (tu banco, GitHub, una VPN), vuelve a ser un generador de TOTP común y corriente, idéntico a los demás. Moraleja: que el nombre del fabricante no te intimide. Por debajo siempre es lo mismo —un secreto, el reloj y un cálculo estándar—, y ya sabes exactamente cómo funciona.

#ciberseguridad #otp #totp #mfa

Preguntas frecuentes

help ¿Por qué mi código OTP funciona sin internet?

Porque tu app no recibe el código de ningún servidor: lo calcula ella misma, combinando un secreto que se compartió al configurarla con la hora actual del dispositivo. El servidor hace el mismo cálculo por su lado. Como ambos parten de los mismos datos, obtienen el mismo código sin necesidad de comunicarse. Por eso basta con que tu reloj esté en hora, no con tener conexión.

help ¿Qué pasa si la hora de mi teléfono está desajustada?

Puede fallar, porque el cálculo del OTP depende de la hora. Si el reloj de tu dispositivo está muy desfasado del servidor, los códigos no coincidirán. Por eso conviene tener la hora automática activada. Los sistemas suelen tolerar un pequeño margen (aceptan el código del intervalo anterior o siguiente) para absorber desfases mínimos, pero un desajuste grande sí causa que los códigos sean rechazados.

help ¿Qué diferencia hay entre TOTP y HOTP?

Ambos son formas de OTP con secreto compartido; la diferencia es qué usan además del secreto. TOTP usa la hora actual, así que el código cambia con el tiempo (cada 30 segundos), y es el más común en apps de autenticación. HOTP usa un contador que avanza con cada uso, así que el código cambia en cada generación en lugar de por tiempo. El mecanismo de fondo es el mismo; cambia el ingrediente que lo hace único.

help ¿Por qué a veces falla la MFA de toda una empresa al mismo tiempo?

Un sospechoso frecuente es el reloj del servidor. Como el código TOTP se calcula a partir de la hora, si la hora del servidor se desfasa empieza a rechazar los códigos válidos de todos los usuarios a la vez. Parece que se rompió la MFA, pero lo que se rompió fue la sincronización de hora. Por eso los servidores se mantienen en hora con NTP: es infraestructura crítica, no un detalle.

help ¿Microsoft Authenticator usa una tecnología distinta a otras apps?

Para los códigos de seis dígitos, no: implementa el mismo estándar abierto (TOTP) que Google Authenticator, Authy o 1Password, así que son intercambiables. Lo exclusivo de Microsoft es la aprobación por notificación push y el number matching cuando entras a tu propia cuenta de Microsoft, que es un mecanismo aparte y propietario. Para cualquier otro servicio, es un generador de TOTP común.

RE
Sobre el autor

Rubén Espinoza es fundador y Director Técnico de IT Experts de México. Trabaja en la industria de TI desde 1998: diseña y opera soluciones de infraestructura, ciberseguridad, continuidad, automatización y tecnología OT para entornos empresariales e industriales. Escribe desde proyectos reales y sistemas en producción.

Ver perfil y todos sus artículos →
Compartir
// Más artículos
// Contacto

Inicia hoy tu transformación digital

Trabajemos juntos. Cuéntanos qué necesita tu operación y te respondemos a la brevedad.

call+52 (614) 400-0013 phone_in_talk+52 (614) 426-2339 mailcontacto@itxperts.com.mx

Al enviar aceptas nuestro Aviso de Privacidad.