Circuit breaker en OTP por SMS: umbrales, estados y recuperación segura
Guía operativa para limitar de forma reversible el envío de OTP por SMS cuando se degradan la aceptación, los estados de entrega o la latencia, sin convertir la protección en un bloqueo para usuarios legítimos.

Qué problema resuelve un circuit breaker en flujos OTP por SMS
Un circuit breaker OTP SMS es un control operativo que reduce o modifica temporalmente los envíos cuando aparecen señales de degradación en un segmento concreto. Su propósito es proteger la continuidad del flujo de autenticación, limitar el impacto de una ruta o destino afectado y evitar que una incidencia amplifique reintentos, duplicados y expiraciones de códigos.
No sustituye los controles de seguridad del OTP. El límite de intentos de validación del código, la vida útil del secreto, el uso único y las defensas frente al abuso son controles distintos. El circuit breaker actúa sobre la decisión de enviar o tratar solicitudes de mensajería; no debe reiniciar límites de autenticación simplemente porque se emita un nuevo código.
En un flujo fuera de banda por SMS, el secreto de corta duración se genera para una operación de autenticación y se transporta por un canal secundario. Por tanto, un problema de entrega puede impedir completar una autenticación legítima, pero la solución no consiste necesariamente en detener todo el tráfico. Debe aislarse el segmento afectado y aplicar una respuesta proporcional.
- Objetivo: limitar el radio de impacto de la degradación.
- Ámbito: decisiones de envío, cola, caudal, ruta o autenticador alternativo permitido.
- No es: una prueba de fraude, un sustituto del rate limiting de verificación ni una garantía de entrega.
- Principio operativo: decisiones reversibles, segmentadas y auditables.

Por qué un aumento de DLR negativos no basta para bloquear automáticamente los envíos
Un identificador devuelto al presentar un mensaje a una API, proveedor o SMSC confirma la aceptación de esa presentación según el protocolo o la integración; no confirma que el teléfono haya recibido el OTP. La entrega es una fase posterior y debe observarse por separado mediante los estados disponibles.
Tampoco conviene tratar cualquier DLR negativo como una causa suficiente para abrir un circuito global. En SMPP existen estados intermedios, como ENROUTE, y estados finales como DELIVERED, EXPIRED, DELETED o UNDELIVERABLE. Un mensaje intermedio puede seguir en proceso o reintento antes de alcanzar un estado final.
La ausencia de DLR tampoco equivale automáticamente a no entrega. La devolución de recibos depende de la configuración de registered_delivery y de la implementación del centro de mensajes o del proveedor. Una política sólida define qué ausencia de estado final es relevante, durante cuánto tiempo y para qué cohortes, en lugar de asumir que todo silencio es un fallo.
- Separar aceptación de envío, estado de entrega y validación correcta del OTP.
- Clasificar ENROUTE como estado intermedio, no como resultado final.
- Evaluar DLR negativos en contexto de volumen, tiempo, destino y ruta.
- Tratar la falta de DLR como incertidumbre de observabilidad, no como prueba de no recepción.
- No asumir que un DLR DELIVERED prueba de forma independiente la recepción o lectura por la persona usuaria.

Las señales que conviene separar
El circuito no debe alimentarse con una única métrica mezclada. Cada señal describe una fase distinta y puede requerir una acción diferente. Combinar fallos de API con DLR tardíos, por ejemplo, puede ocultar si el incidente está en la integración, antes de la aceptación, en la observabilidad de estados o en una ruta de entrega.
Defina eventos normalizados y una taxonomía estable antes de fijar umbrales. El valor del mecanismo depende de que la misma condición produzca la misma clasificación, incluso cuando cambie el equipo de guardia o la implementación de una ruta.
- Errores de integración o transporte: fallos de autenticación, conectividad, timeouts y errores de protocolo entre la aplicación y el punto de envío.
- Rechazos previos: solicitudes no aceptadas por la interfaz de envío. Deben distinguirse de un mensaje aceptado que después no llega a estado final favorable.
- Estados finales negativos: resultados finales comunicados posteriormente para mensajes aceptados.
- Estados intermedios: mensajes aún en proceso; no deben sumarse sin más a los fallos finales.
- Latencia: tiempo desde la presentación aceptada hasta el estado final disponible, analizado por cohorte.
- Ausencia de estado final: mensajes sin estado final dentro del plazo definido por la política.
- Comportamiento de reenvío: solicitudes repetidas, duplicados potenciales, nuevos OTP emitidos y validaciones posteriores.
Modelo de tres estados: cerrado, abierto y prueba controlada de recuperación
El modelo más simple y trazable usa tres estados. En cerrado, el segmento opera con la política normal y se observan las señales. En abierto, se aplica la acción de protección definida para ese segmento. En prueba controlada de recuperación, se libera una porción limitada y explícitamente gobernada del tráfico para comprobar si la degradación ha desaparecido.
No existe un porcentaje, una duración ni una tasa de error universal que sirvan para todos los destinos. Esos valores deben ser parámetros de política aprobados por el equipo responsable, ajustados al volumen, la vigencia del OTP, las alternativas disponibles y el riesgo de afectar a usuarios legítimos.
La transición debe ser determinista. Especifique qué señales abren el circuito, durante cuánto tiempo permanece abierto inicialmente, cuándo puede entrar en prueba y qué condición lo devuelve a abierto. Evite cambios manuales sin registro, porque impiden reconstruir por qué se tomó una decisión.
- Cerrado: envío normal y recopilación de señales por segmento.
- Abierto: pausa, limitación, cola condicionada o alternativa permitida según la política.
- Prueba controlada: liberación limitada y observada antes de restaurar el funcionamiento normal.
- Reapertura: retorno inmediato a abierto si reaparecen las señales definidas.
- Cierre: restablecimiento sólo tras cumplir criterios de estabilidad y volumen suficiente.
Cómo definir umbrales con volumen mínimo, ventana temporal y segmentación
Calcule los umbrales sobre cohortes operativas coherentes. Como mínimo, segmente por país o plan de numeración. Cuando la telemetría sea fiable, añada operador de destino y ruta. Un promedio global puede ocultar una degradación localizada o, al contrario, abrir un bloqueo amplio por el comportamiento de una parte pequeña del tráfico.
Todo umbral debe declarar tres elementos: una ventana temporal, un volumen mínimo de observaciones y una condición de degradación. Sin volumen mínimo, una muestra reducida puede generar una tasa extrema e inestable. Sin ventana, un evento antiguo puede influir demasiado tiempo o una ráfaga breve puede sobrerreaccionar.
Mantenga separados los umbrales de integración, rechazo, resultado final, latencia y ausencia de estado final. También conviene establecer una política para segmentos nuevos o de bajo volumen: en vez de inferir una tasa concluyente, puede exigirse revisión operativa o aplicarse una acción más conservadora y reversible.
- Segmento recomendado: destino de numeración; ampliar por operador y ruta cuando haya datos fiables.
- Ventana: expresar el periodo exacto de cálculo y su método de actualización.
- Volumen mínimo: no evaluar tasas de apertura antes de alcanzar el mínimo aprobado.
- Condición: definir qué combinación de señal, proporción y persistencia activa la transición.
- Exclusiones: documentar mantenimientos, cambios planificados o eventos de instrumentación que invaliden la lectura.
- Versión: asignar una versión a cada conjunto de umbrales y conservar su historial.
Qué acciones aplicar al abrir el circuito
Abrir un circuito no implica necesariamente descartar cada solicitud. La acción debe respetar la vigencia del OTP y el impacto sobre el usuario. Una cola es útil sólo si el código seguirá siendo válido y si la demora no empuja a la persona a solicitar repetidamente nuevos mensajes. Si ya no conserva utilidad, es preferible no reactivar la solicitud antigua.
Las alternativas de autenticación deben estar habilitadas y aprobadas antes de una incidencia. No improvise un canal alternativo para el que la política de autenticación no autorice el uso. En particular, el correo electrónico no debe usarse como autenticación fuera de banda según NIST, aunque pueda tener usos distintos, como confirmación de dirección o recuperación, bajo su propia política.
La decisión puede ser diferente por gravedad. Un fallo de integración completo puede requerir pausar de inmediato en el ámbito afectado. Una elevación de latencia o de incertidumbre de DLR puede justificar limitación de caudal o prueba de rutas autorizadas, siempre que la organización disponga de esas opciones y pueda observar sus resultados.
- Pausar nuevos envíos para el segmento afectado.
- Limitar el caudal para reducir la amplificación de una degradación.
- Encolar sólo solicitudes que puedan completarse dentro de la vigencia útil del OTP.
- Derivar conforme a una política previamente aprobada hacia una alternativa o ruta disponible.
- Presentar al usuario un método de autenticación alternativo que ya esté permitido y configurado.
- No reutilizar OTP consumidos ni reactivar indiscriminadamente solicitudes antiguas.
Cómo evitar un bloqueo para usuarios legítimos
Un circuit breaker mal segmentado puede transformar una degradación localizada en una denegación de acceso para usuarios legítimos. Para reducir ese riesgo, limite el alcance inicial, prefiera acciones reversibles y evalúe los efectos negativos del control junto con su eficacia operativa.
No permita que el reenvío sea una salida sin límites. Cuando el usuario no recibe un OTP, los reintentos pueden aumentar el volumen, provocar duplicados y generar códigos cuya vigencia se solapa. El flujo debe tener reglas claras para relacionar solicitudes, mantener los límites de autenticación y decidir qué secreto sigue siendo válido según la política.
SMS/PSTN tiene límites y riesgos propios, incluidos phishing, cambio de SIM, portabilidad y redirección del servicio. El circuit breaker puede mejorar la continuidad del envío, pero no elimina esos riesgos. Las decisiones de autenticación deben mantener sus controles de riesgo y sus autenticadores alternativos independientemente del estado de entrega.
- Aplicar el circuito al segmento más estrecho que expliquen las señales.
- Medir abandonos, reintentos y fallos de verificación después de cada activación.
- No reiniciar límites de fallos de autenticación al emitir un nuevo secreto.
- Ofrecer vías de recuperación y autenticadores alternativos para quienes no puedan usar PSTN.
- Diferenciar un problema de mensajería de una señal de fraude o de un fallo de verificación.
Diseño de recuperación: pruebas graduales, cierre y reversión
La recuperación debe ser tan explícita como la apertura. Tras el periodo inicial en abierto, el sistema puede pasar a prueba controlada si se cumplen los requisitos de la política. Esa prueba debe tener alcance limitado, observación reforzada y criterios de interrupción inmediatos si vuelven a aparecer las señales de degradación.
No cierre el circuito sólo porque haya transcurrido tiempo. Exija evidencia en la misma cohorte afectada: volumen suficiente, comportamiento de aceptación esperado, resultados de entrega disponibles dentro del plazo aplicable y ausencia de la condición que provocó la apertura. Si la observabilidad de DLR es incompleta, no declare una recuperación de entrega basándose únicamente en la falta de errores.
Una reversión segura evita que un incidente oscilante convierta el sistema en una secuencia de aperturas y cierres poco explicables. Mantenga una duración inicial de apertura, reglas de reentrada en prueba y una condición clara de reapertura. Registre cada transición.
- Entrar en prueba sólo con criterios previos y documentados.
- Liberar tráfico limitado en la cohorte exacta que se está comprobando.
- Observar las mismas señales que motivaron la apertura, no sólo una métrica favorable.
- Cerrar tras estabilidad y volumen suficiente definidos por política.
- Volver a abierto si reaparece la condición de degradación.
- Revisar la configuración si el circuito oscila repetidamente.
Preguntas frecuentes
¿Un submit_sm_resp correcto confirma que el usuario recibió el OTP?
No. Confirma que el SMSC devolvió un identificador para el mensaje presentado según SMPP. La entrega se informa posteriormente, cuando está disponible, mediante eventos de estado. Incluso un DLR debe interpretarse como evidencia de estado de mensajería, no como prueba independiente de lectura por la persona usuaria.
¿La ausencia de DLR significa que el SMS no se entregó?
No necesariamente. La devolución de recibos depende de registered_delivery y de la implementación del centro de mensajes o proveedor. La ausencia debe clasificarse como falta de estado final dentro del plazo definido por la política, no como prueba automática de no recepción.
¿Debe abrirse un circuit breaker global cuando suben los DLR negativos?
No como regla automática. Evalúe el volumen mínimo, la ventana temporal y la cohorte afectada. Segmente al menos por destino de numeración y, si la información es fiable, por operador y ruta. Un promedio global puede ocultar o ampliar indebidamente el problema.
¿Puede usarse correo electrónico como alternativa inmediata para autenticación fuera de banda?
No debe usarse para autenticación fuera de banda según NIST. Las alternativas deben estar aprobadas, implementadas y evaluadas dentro de la política de autenticación antes de que ocurra una degradación.
¿Qué ocurre con los OTP en cola cuando se abre el circuito?
Sólo deben conservarse si aún pueden ser útiles dentro de su periodo de validez y si la política permite procesarlos. No conviene reactivar solicitudes antiguas de forma indiscriminada, ni reutilizar secretos consumidos. Los OTP deben ser de un solo uso.
¿Qué debe quedar registrado en cada cambio de estado?
Como mínimo, el identificador de correlación, el segmento afectado, el estado anterior y el nuevo, las señales y fuentes que motivaron la decisión, la versión de umbrales, la acción aplicada, los responsables y el resultado de las pruebas de recuperación.
Fuentes consultadas
- NIST SP 800-63B — autenticación fuera de banda y uso de PSTNNational Institute of Standards and Technology (NIST)
- SMPP Protocol Specification v3.4 — Appendix B, Delivery Receipt FormatSMPP Developers Forum
- SMPP Delivery Receipts — estados finales e intermediosSMPP Developers Forum
- TS 23.040 — Technical realization of the Short Message Service3GPP / ETSI
- ITU-T Recommendation E.164 — plan internacional de numeración públicaInternational Telecommunication Union (ITU)
- OWASP Authentication Cheat Sheet — registro y supervisión de autenticaciónOpen Worldwide Application Security Project (OWASP)