Cómo funciona la verificación SMS — Explicación técnica
Paso 1: Generación de OTP
Cuando una plataforma necesita verificar tu número de teléfono, genera una Contraseña de un Solo Uso (OTP). Esto es lo que sucede en el lado del servidor:
- El usuario envía el número de teléfono — El backend de la plataforma recibe el número y valida su formato (código de país, cantidad de dígitos, prefijo válido).
- Se genera la OTP — Se crea un código criptográficamente aleatorio, típicamente de 4 a 6 dígitos. La mayoría de las implementaciones utilizan
HMAC-SHA1oHMAC-SHA256con una semilla basada en el tiempo o en un contador (estándares TOTP/HOTP de RFC 6238/RFC 4226). - Se almacena la OTP — El código se guarda en el lado del servidor con una marca de tiempo de expiración (generalmente de 60 a 300 segundos) y se asocia con el número de teléfono.
- Se aplica limitación de velocidad — La plataforma comprueba cuántas OTP se han solicitado recientemente para este número. La mayoría de los servicios permiten de 3 a 5 intentos por número por hora.
- Se activa la llamada a la API de SMS — La plataforma envía una solicitud a su proveedor de SMS con el número de teléfono y el contenido del mensaje.
La OTP en sí misma suele ser solo un número aleatorio. Las plataformas no incrustan la OTP en forma de hash en el mensaje, sino que la envían en texto plano en el cuerpo del SMS. Esta es una de las debilidades de seguridad fundamentales de la verificación por SMS.
Paso 2: El Ecosistema de SMS A2P
A2P significa Application-to-Person (Aplicación a Persona), mensajes enviados desde una aplicación de software a un teléfono de un humano. Esto es distinto de la mensajería P2P (Persona a Persona). El ecosistema A2P tiene su propia infraestructura:
Agregadores de SMS
La mayoría de las plataformas no envían SMS directamente a través de los operadores. En su lugar, utilizan agregadores de SMS, empresas que mantienen conexiones con cientos de operadores en todo el mundo. Los principales agregadores incluyen:
- Twilio — El mayor proveedor de API de SMS. Utilizado por Uber, Airbnb, Stripe y miles de otros.
- Vonage (Nexmo) — Popular para el enrutamiento internacional de SMS.
- Sinch — Fuerte en la entrega de OTP a nivel empresarial.
- MessageBird — Agregador centrado en Europa.
- Infobip — Actor importante en mercados emergentes.
Cuando Instagram te envía una OTP, es probable que el mensaje pase por Twilio o un agregador similar antes de llegar a tu operador. El agregador se encarga del enrutamiento, la negociación con el operador y la confirmación de entrega.
Enrutamiento de SMS
El agregador determina la ruta óptima para entregar el SMS. Para un número de EE. UU., esto podría significar:
- Llamada a la API de la plataforma → Agregador (por ejemplo, Twilio)
- Agregador → Puerta de enlace del operador (por ejemplo, AT&T, T-Mobile)
- Puerta de enlace del operador → SMSC (Short Message Service Center)
- SMSC → MSC (Mobile Switching Center)
- MSC → Estación base → Teléfono del usuario
Los mensajes internacionales añaden complejidad. Una OTP de una plataforma con sede en EE. UU. a un número indio podría enrutarse a través de 2 o 3 operadores intermedios antes de llegar al destino. Cada salto añade latencia y una pequeña posibilidad de fallo.
¿Quieres ver esto en acción?
Prueba VerifySMS Gratis →Obtén números virtuales y recibe OTP en tiempo real
Paso 3: SS7 y la Capa de Señalización
SS7 (Signaling System No. 7) es el conjunto de protocolos que controla cómo se comunican las redes telefónicas. Desarrollado en la década de 1970, sigue siendo la columna vertebral de la telefonía mundial. Cuando se envía un SMS, SS7 se encarga de:
- Búsqueda de número (consulta HLR) — El operador emisor consulta el Home Location Register para determinar a qué operador y red pertenece el número de destino.
- Enrutamiento de mensajes — Las señales SS7 determinan la ruta que toma el mensaje a través de la red.
- Confirmación de entrega — El SMSC receptor envía un recibo de entrega a través de la señalización SS7.
Problemas de Seguridad de SS7
SS7 se diseñó en una época en la que solo los operadores de telecomunicaciones de confianza tenían acceso a la red. Hoy en día, el acceso a SS7 está disponible para miles de entidades, lo que crea vulnerabilidades de seguridad:
- Intercepción de SMS — Un atacante con acceso a SS7 puede redirigir mensajes SMS a su propio dispositivo. Esto se ha demostrado en ataques reales contra la autenticación de dos factores (2FA) bancaria.
- Seguimiento de ubicación — Las consultas SS7 pueden revelar la ubicación física de un teléfono.
- Suplantación de número — SS7 permite enviar mensajes que parecen provenir de un número diferente.
Estas vulnerabilidades son la razón por la que los expertos en seguridad recomiendan alejarse de la 2FA basada en SMS hacia autenticadores basados en aplicaciones (TOTP) o llaves de hardware (FIDO2). Sin embargo, para la verificación inicial de cuentas (demostrar que tienes acceso a un número), el SMS sigue siendo el estándar de la industria porque tiene el mayor alcance.
Paso 4: Cómo los Números Virtuales Reciben SMS
Los números de teléfono virtuales funcionan reemplazando la SIM física y los componentes de radio con software. Así es como un número virtual recibe una OTP:
- Asignación de número — El proveedor de números virtuales alquila bloques de números a los operadores. Estos son números de teléfono reales con registros de operador válidos.
- Banco de SIM o SIM virtual — El proveedor opera tarjetas SIM físicas en hardware (bancos de SIM con cientos o miles de SIM) o utiliza integraciones de software a nivel de operador para recibir mensajes.
- El SMS llega al operador — El mensaje OTP se entrega al operador asociado con el número virtual, al igual que cualquier otro SMS.
- El mensaje se reenvía — El banco de SIM o la integración del operador capturan el SMS entrante y lo reenvían al backend del proveedor a través de API.
- El usuario ve el código — El panel o la API del proveedor muestra el SMS recibido al usuario.
La clave: desde la perspectiva de la plataforma de envío, un número virtual es idéntico a un teléfono físico. El SMS sigue la misma ruta de enrutamiento. La diferencia está en la última milla: en lugar de mostrarse en la pantalla de un teléfono, el mensaje es capturado por software.
Paso 5: Verificación del Lado de la Plataforma
Después de que el usuario recibe la OTP y la introduce en la plataforma, se realiza la verificación en el lado del servidor:
- Comparación de códigos — La plataforma compara el código enviado con la OTP almacenada.
- Comprobación de expiración — Si la OTP ha expirado (generalmente de 60 a 300 segundos), la verificación falla.
- Conteo de intentos — La mayoría de las plataformas permiten de 3 a 5 intentos incorrectos antes de bloquear la verificación.
- Clasificación del número — Algunas plataformas comparan el número con bases de datos de números VoIP/virtuales para marcar posibles usos indebidos.
- Éxito o fracaso — Si el código coincide y no ha expirado, el número de teléfono se marca como verificado.
Cómo las Plataformas Detectan los Números Virtuales
Algunas plataformas intentan bloquear los números virtuales. Los métodos que utilizan:
| Método de Detección | Cómo Funciona | Eficacia |
|---|---|---|
| Búsqueda de tipo de número | Consulta bases de datos de operadores para verificar si el número es móvil, fijo o VoIP | Media — muchos números virtuales están registrados como móviles |
| Comprobación de base de datos de operadores | Compara el número con rangos conocidos de proveedores de VoIP | Media — funciona para proveedores grandes, omite los más pequeños |
| Consulta HLR | Consulta el Home Location Register para obtener detalles de la tarjeta SIM | Alta para detectar números solo de software, menor para números de bancos de SIM |
| Análisis de comportamiento | Rastrea cuántas cuentas se crearon con números del mismo rango | Alta con el tiempo, pero requiere acumulación de datos |
Los proveedores de números virtuales contrarrestan estas detecciones utilizando números de grado de operador registrados como líneas móviles, manteniendo grupos de números diversos y rotando los números con frecuencia. El ciclo de evasión de la detección está en curso.
Por Qué la Verificación por SMS Persiste a Pesar de Sus Defectos
La verificación por SMS tiene debilidades de seguridad bien conocidas, pero sigue siendo el método dominante. Las razones son prácticas:
- Alcance universal — Todos los teléfonos pueden recibir SMS. No se necesita instalación de aplicaciones. Esto cubre a miles de millones de usuarios con teléfonos básicos y dispositivos más antiguos.
- Familiaridad del usuario — Todos entienden "introduce el código que enviamos". No se necesita explicación.
- Bajo costo de implementación — Las API de SMS son baratas. Twilio cobra alrededor de $0.0075 por SMS en EE. UU. A escala, esto son centavos por verificación.
- Compromiso de seguridad aceptable — Para la mayoría de los casos de uso (registro en redes sociales, cuentas de entrega de comida), el SMS proporciona suficiente fricción para disuadir el abuso automatizado sin requerir llaves de seguridad de hardware.
La industria se está moviendo lentamente hacia alternativas. Las passkeys (FIDO2), los TOTP basados en aplicaciones y las notificaciones push están ganando adopción. Pero para la verificación inicial del teléfono —demostrar que un usuario controla un número de teléfono—, el SMS sigue siendo el estándar.
El Papel de los Números Virtuales en Este Ecosistema
Los números virtuales ocupan un nicho específico: proporcionan acceso a nivel de número de teléfono sin necesidad de un dispositivo físico. Esto es útil para escenarios legítimos que incluyen:
- Protección de la privacidad — Mantener tu número real fuera de plataformas que podrían vender tus datos. Consulta nuestra VerifySMS vs Sitios de SMS gratuitos (receive-smss.com) — Por qué lo de pago es mejor para entender por qué la privacidad es importante aquí.
- Gestión de múltiples cuentas — Las empresas que operan múltiples cuentas en la misma plataforma necesitan números únicos para cada una.
- Acceso internacional — Verificar cuentas en plataformas de Números de teléfono virtuales en EE.UU. — Números Non-VoIP sin tener tarjetas SIM locales.
- Desarrollo y pruebas — Los equipos de QA que prueban flujos de OTP necesitan muchos números sin gestionar dispositivos físicos.
Desde un punto de vista técnico, los números virtuales funcionan porque explotan el hecho de que la verificación por SMS solo prueba el control de un número, no que el número esté en un teléfono físico en el bolsillo de alguien. Siempre que el número sea válido y pueda recibir mensajes A2P, la verificación tendrá éxito.
Avanzado: Optimización de la Entrega de OTP
Si eres un desarrollador que implementa la verificación por SMS, aquí tienes consideraciones técnicas para una entrega fiable:
- Utiliza IDs de remitente sabiamente — En países que admiten IDs de remitente alfanuméricos, utiliza el nombre de tu marca. En EE. UU., utiliza un código corto dedicado o 10DLC (10-Digit Long Code) para obtener las mejores tasas de entrega.
- Implementa enrutamiento de respaldo — Utiliza múltiples agregadores de SMS para que si una ruta falla, el mensaje se reintente a través de otra.
- Mantén los mensajes cortos — Los mensajes OTP deben tener menos de 160 caracteres (un segmento de SMS). Los mensajes de varios segmentos tienen tasas de fallo más altas.
- Establece tiempos de espera adecuados — 120 segundos es el punto óptimo. Demasiado corto causa fallos falsos; demasiado largo permite que se utilicen códigos interceptados.
- Registra los recibos de entrega — Rastrea si los mensajes se entregan, están pendientes o fallan. Estos datos ayudan a identificar problemas específicos del operador.
Ve la verificación por SMS desde el lado receptor
Prueba VerifySMS Gratis →Más de 150 países · Activación instantánea · $0.10/número
