Entrega y fraude del OTP: qué prueba

Dónde se filtra una contraseña de un solo uso, qué puede decir o no un acuse de entrega, y los controles y métricas que mantienen un flujo de OTP.

practitioner · 4 min de lectura · Lección 5 / 8

Una contraseña de un solo uso prueba el control de un número en el momento en que se introduce. No prueba identidad, y un acuse de entrega no prueba que una persona lo haya leído. La entrega, la interceptación, el reciclaje del número y el propio formulario deciden si la comprobación se sostiene.

Hechos clave

  • Un OTP prueba el control de un número en ese momento, no la identidad.
  • Un acuse de entrega informa un estado de red, no que una persona haya leído el código.
  • El reciclaje de números, el cambio de SIM, el desvío y el phishing son las principales vías de fuga.
  • Los límites de tasa, el registro del remitente y las comprobaciones del número reducen el abuso; ninguno prueba identidad.

Qué prueba un OTP

Un OTP responde a una pregunta: ¿la persona que tengo delante puede recibir un mensaje en este número ahora mismo? Eso sirve para recuperar una cuenta y para iniciar sesión, porque ata la sesión a algo que el usuario controla. No es un documento de identidad. El número puede reciclarse, pasar a otra SIM, desviarse o ser leído por otra persona del hogar.

La distinción importa en el diseño. Si la acción es de bajo valor, un OTP es proporcionado. Si mueve dinero, cambia una contraseña o añade un beneficiario, combine el código con una segunda comprobación: una espera, una confirmación en una sesión existente, una llamada a un canal conocido o una revisión manual. El código es un factor, no toda la decisión.

El camino y los puntos donde se filtra un código

  1. Aplicación
  2. Pasarela SMPP
  3. SMSC
  4. HLR / HSS
  5. MSC / MME
  6. Teléfono
  7. Acuse de entrega
La misma cadena que entrega el código crea los puntos donde puede observarse, retrasarse o llegar al teléfono equivocado. Fuente: 3GPP TS 23.040: arquitectura SMS
Descripción en texto

La aplicación entrega el código a una pasarela, el centro de mensajes consulta al abonado y la central que lo atiende entrega al teléfono. Un acuse vuelve por la misma cadena. El código puede filtrarse en la aplicación, en el teléfono, en el propio número o a través de la persona que lo recibe. El camino de red explica la entrega; no explica a la persona que comparte el código.

Dónde se filtra un OTP

Un cambio de SIM traslada el número a una tarjeta nueva. El atacante convence a una tienda o a una línea de soporte de que es el titular, y el siguiente código va a la SIM nueva. El reciclaje de números produce el mismo efecto sin atacante: la operadora reasigna un número inactivo y el nuevo titular recibe un código pensado para la cuenta anterior. Ambos son motivos para comprobar si un número se portó o se reasignó hace poco.

El desvío y el buzón de voz a texto mandan el mensaje a otra bandeja. El phishing copia el formulario y recoge el código directamente, así que la red nunca ve un ataque. La interceptación en el camino de red es más rara y queda fuera del control de la aplicación; la respuesta práctica es un segundo factor, no un código más largo. Consulte la entrada de OTP del glosario para las definiciones.

Controles que ayudan

Limite la frecuencia con que un número, una dirección IP y un dispositivo pueden pedir un código. Use una validez corta, un solo uso por código y ate el código a la sesión que lo pidió. Registre el remitente y mantenga el contenido sobrio: un código que parece marketing puede ser filtrado, y un código filtrado genera un ticket de soporte, no un inicio de sesión.

Compruebe el número antes de confiar en él. Un número que no puede recibir SMS, que se portó hace poco o que tiene historial de restablecimientos merece un paso adicional. Para acciones de alto valor, exija una sesión existente o un segundo canal. Registre la petición, el envío, el acuse y la introducción del código como eventos separados, para distinguir un problema de entrega de un problema del usuario.

Diseñe el código con el mismo cuidado. Genérelo con una fuente criptográfica, guarde un hash, hágalo caducar en minutos, permita un solo uso correcto y limite los intentos por código y por sesión. No revele si el número existe. Cree el registro de la cuenta antes del envío, para que un reintento no abra una cuenta que nunca se completa.

Cinco métricas, con definiciones

Cada métrica responde a una pregunta distinta. Ninguna mide identidad.
MétricaDefiniciónQué le dice
Tasa de entregaAcuses de entregado divididos por mensajes enviadosSi la red aceptó el mensaje; no si una persona lo leyó
Tasa de finalizaciónCódigos introducidos divididos por mensajes entregadosSi el mensaje y el formulario funcionaron para el usuario
Tiempo de entregaMediana y percentil 95 desde el envío hasta el acuseSi la ruta es lenta y cuánto espera un usuario antes de reenviar
Tasa de reenvíoReenvíos divididos por mensajes entregadosSi los usuarios esperan demasiado, se equivocan o nunca ven el primer mensaje
Tasa de bloqueoPeticiones rechazadas por reglas de riesgo divididas por intentosSi las reglas están demasiado estrictas, demasiado laxas o el tráfico es abusivo

Mídalas por mercado, remitente y ruta. Un promedio global oculta la ruta que falla.

Mida el flujo, no el envío

Un envío que devuelve un message ID no es un código entregado. Un código entregado no es un inicio de sesión completado. Construya el embudo con los eventos que controla: envío, acuse, introducción del código, éxito. Compárelo con la visión del proveedor. Una diferencia entre su tasa de entrega y la suya puede ser un acuse que nunca llegó a su manejador, no un mensaje que nunca llegó al teléfono.

Revise el flujo cuando se mueve una métrica. Una caída de finalización con entrega estable apunta al formulario, a la caducidad del código o al remitente. Una caída de entrega con envío estable apunta a la ruta, al número o al filtro de contenido. Una subida de reenvíos apunta al tiempo de entrega. Corrija el paso que nombran los datos, no el más fácil de cambiar.

Fije una fecha de revisión para todo el flujo. Los números cambian de manos, las rutas cambian y las plantillas envejecen. Un flujo que funcionaba al lanzamiento puede fallar en silencio seis meses después, con el mismo código y el mismo proveedor.

Compruebe lo aprendido

  1. Un usuario reenvía el código a un amigo. ¿El código sigue probando identidad?

    No. Prueba que el número podía recibir el código en ese momento. Cualquiera que tenga el código puede usarlo.

  2. Un acuse dice entregado, pero el usuario nunca ve el código. ¿Qué comprueba?

    El estado del teléfono, la aplicación de mensajes y el filtro de spam, el remitente y la ruta. Un acuse de entregado es el estado de la red, no la pantalla del teléfono.

  3. ¿Por qué la tasa de finalización es más útil que la de entrega?

    La entrega se detiene en la red. La finalización incluye al usuario, la caducidad del código y el formulario, que es donde aparecen la mayoría de los fallos.

Las respuestas se muestran a petición. No se puntúa, guarda ni envía nada.

Preguntas frecuentes

¿Un OTP es lo mismo que la autenticación de dos factores?

Un OTP puede ser el segundo factor. Por sí solo es un factor: la posesión del número en ese momento.

¿Los códigos más largos son más seguros?

La longitud ayuda contra la adivinación, pero no detiene un cambio de SIM, un desvío o phishing. Añada una segunda comprobación para acciones de alto valor.

¿Puede un acuse probar que el usuario leyó el código?

No. Informa un estado de red, como entregado, caducado o no entregado. No dice nada sobre leer o escribir.

¿Debemos reenviar automáticamente?

Reenvíe por acción del usuario, no por temporizador. Los reenvíos automáticos multiplican el coste y pueden ocultar un problema de ruta.

¿Qué debemos registrar?

La petición, el envío y su message ID, el acuse y su estado, y el resultado de la introducción del código. Guárdelos como eventos separados con marcas de tiempo.

Los acuses dicen entregado, pero los usuarios no reciben nada. ¿Qué debemos comprobar antes de cambiar de proveedor?

Primero su propio lado, porque un acuse de entrega dice que la red aceptó el mensaje, no lo que mostró el teléfono. Pase la plantilla por la revisión previa de contenido SMS, cuente sus segmentos con el contador de segmentos SMS y lea los códigos de envío y de acuse con el decodificador SMPP y DLR. Si todo eso está en orden, pruebe el destino que falla en sus propios teléfonos antes de mover el tráfico, un destino a la vez.
  • Conectar por SMPP y HTTP

    Llevar una ruta de prueba a producción sin romper binds, ventanas ni acuses: estado del bind, caudal, keep-alive, codificación, callbacks y fallos.

  • Paquete de plantillas de RFQ y RFP

    Listas de campos para solicitudes de SMS mayorista, eSIM y datos, IoT y conectividad con China, más la lista en línea que se envía como RFQ.

  • Informe de muestra de prueba de ruta

    Muestra estática anonimizada de un informe de prueba de ruta: qué comprueba una prueba de ruta, cómo se leen los fallos y qué activa una revisión.

Póngalo en práctica

Cuéntenos el tráfico, el destino y la medición que necesita; respondemos con el siguiente paso.