Verificación por SMS y autenticación de dos factores (OTP)

El SMS de verificación es el mensaje que envía un servicio con un código numérico temporal para confirmar que quien accede controla el teléfono asociado a esa cuenta. Es la forma más extendida de autenticación de dos factores (2FA) y protege millones de accesos cada día, desde aplicaciones bancarias hasta registros en plataformas.

Qué es un OTP

OTP son las siglas de One-Time Password (contraseña de un solo uso). Se trata de un código —normalmente de 4 a 8 dígitos— generado de forma aleatoria en el momento en que se necesita. Sus dos rasgos definitivos son:

  • Temporal: caduca pasado un tiempo corto (habitualmente entre 30 segundos y 10 minutos). Si no se usa antes, pierde su validez automáticamente.
  • De un solo uso: una vez introducido correctamente queda invalidado. Aunque alguien lo intercepte no podrá reutilizarlo.

Gracias a estas dos propiedades, un OTP no puede ser reutilizado por un atacante que lo haya capturado en un momento anterior: a diferencia de una contraseña estática, robarla no otorga acceso permanente.

Qué es la autenticación de dos factores (2FA)

La autenticación de dos factores (2FA) es el mecanismo de seguridad que exige verificar la identidad mediante dos elementos independientes antes de conceder acceso:

  • Algo que sabes: tu contraseña o PIN.
  • Algo que posees: tu teléfono móvil (que recibe el SMS con el OTP).

La combinación de ambos factores hace que comprometer uno de los dos no sea suficiente para acceder a la cuenta. Un atacante que robe tu contraseña sigue necesitando el código que llega a tu teléfono, y viceversa. El SMS es el canal de 2FA más universal porque no requiere que el usuario instale ninguna aplicación adicional.

Cómo funciona el flujo de verificación por SMS

El proceso completo tiene cuatro pasos bien definidos:

  1. Solicitud de acceso: el usuario introduce su identificador (correo, usuario o número de teléfono) y, si procede, su contraseña. El sistema detecta que es necesario un segundo factor.
  2. Generación del código: el servidor genera un OTP aleatorio, lo vincula a la sesión del usuario y establece su tiempo de expiración.
  3. Envío por SMS: el código se envía al número de teléfono asociado a la cuenta mediante la pasarela SMS o la API de SMS del proveedor. El mensaje suele incluir el nombre del servicio y advertir de que no se comparta.
  4. Validación: el usuario introduce el código en la pantalla del servicio antes de que expire. El servidor comprueba que coincide, que no ha caducado y que no ha sido usado previamente; si todo es correcto, concede el acceso.

Usos principales del OTP por SMS

La verificación por SMS cubre un abanico amplio de situaciones:

  • Banca y finanzas: confirmación de transferencias, alta de nuevos beneficiarios, acceso a la banca online y autorización de pagos.
  • Registro en plataformas: validación del número de teléfono durante el alta en una app o servicio web.
  • Recuperación de cuenta: canal de rescate cuando el usuario ha olvidado su contraseña o necesita restablecer el acceso.
  • Confirmación de transacciones: e-commerce, reservas y cualquier operación que requiera doble confirmación por normativa o política del servicio.
  • Accesos corporativos: inicio de sesión en VPN, paneles de administración y herramientas internas donde la seguridad es crítica.

Ventajas de la verificación OTP por SMS

Incluso si una contraseña queda expuesta en una filtración de datos, el atacante no puede acceder a la cuenta sin el código que llega al teléfono del usuario legítimo. Otras ventajas destacadas:

  • Universalidad: funciona en cualquier teléfono, sin app y sin conexión a internet.
  • Fricción mínima: el usuario ya conoce el proceso; la curva de aprendizaje es prácticamente nula.
  • Integración sencilla: los proveedores ofrecen APIs de SMS con las que cualquier equipo de desarrollo puede añadir 2FA en pocas horas.
  • Coste bajo: el precio por SMS es muy reducido comparado con el coste de una brecha de seguridad.

Limitaciones y alternativas

El OTP por SMS no es infalible. Los vectores de ataque más conocidos son:

  • SIM-swapping: el atacante convence a la operadora de que transfiera el número a una SIM que él controla; a partir de ese momento recibe todos los SMS destinados a la víctima.
  • Phishing en tiempo real: páginas falsas que solicitan el código al usuario y lo introducen inmediatamente en el servicio real antes de que caduque.
  • Malware en el dispositivo: aplicaciones maliciosas con acceso a los SMS pueden leer y reenviar los códigos.

Para contextos de alta seguridad existen alternativas más robustas:

  • Apps autenticadoras (Google Authenticator, Authy): generan OTP localmente sin depender del operador de telefonía.
  • Llaves físicas de seguridad (FIDO2/WebAuthn): dispositivos hardware resistentes a phishing.
  • RCS verificado: el RCS con remitente verificado añade indicadores visuales de autenticidad que reducen el riesgo de suplantación frente al SMS clásico.

El SMS OTP sigue siendo la opción más práctica para la mayoría de servicios gracias a su universalidad, pero en entornos con requisitos de seguridad elevados conviene combinarlo o sustituirlo por mecanismos más resistentes.

Preguntas frecuentes

¿Cuánto tiempo es válido un código OTP?

Depende del servicio, pero lo habitual es entre 2 y 10 minutos. Pasado ese tiempo el código caduca y hay que solicitar uno nuevo. Algunos servicios reducen el plazo a 30–60 segundos para mayor seguridad.

¿Puedo usar el mismo código OTP dos veces?

No. Por definición un OTP se invalida en cuanto se usa correctamente, aunque no haya expirado por tiempo. Si necesitas acceder de nuevo deberás solicitar un código nuevo.

¿Qué hago si no recibo el SMS con el código?

Comprueba que el número de teléfono registrado en el servicio es correcto y que tienes cobertura. Espera al menos un minuto antes de solicitar un reenvío; el sistema puede tardar en entregar el mensaje en momentos de alta carga. Si el problema persiste, contacta con el soporte del servicio.

¿El OTP por SMS es suficiente para proteger una cuenta bancaria?

Ofrece una capa de seguridad muy significativa y cumple la normativa PSD2 de autenticación reforzada (SCA) en la mayoría de los casos. No obstante, para operaciones de alto valor o perfiles de riesgo elevado los bancos pueden complementarlo con autenticación biométrica u otros mecanismos adicionales.

La información sobre seguridad se ofrece con carácter orientativo. Las medidas de protección adecuadas dependen del contexto y del perfil de riesgo de cada servicio.