BroadNet
Protocolos Respuesta de BroadNet

HMAC-SHA256 para la firma de webhooks de DLR: cómo y por qué

Última revisión 2 min de lecturaRevisado por el equipo de ingeniería BroadNet
Respuesta rápida

HMAC-SHA256 es el algoritmo criptográfico que utilizan todas las plataformas de mensajería modernas para firmar los webhooks de confirmación de entrega y de mensajes entrantes. La plataforma calcula un hash con clave sobre el cuerpo de la solicitud mediante una clave secreta compartida; su servidor recalcula el mismo hash y lo compara. Esto demuestra que el webhook proviene de la plataforma —y no de alguien que adivinó su URL— y que el cuerpo del mensaje no fue manipulado durante la transmisión.

Definición en lenguaje sencilloIndependiente del proveedorRevisado 24 de septiembre de 2026
La respuesta larga

Todo lo que vale la pena saber, nada que no lo sea.

§01

Cómo se construye la firma

Una construcción habitual forma la cadena canónica como `${timestamp}.${requestBody}`, calcula `HMAC-SHA256(canonical, secret)`, la codifica en hexadecimal y envía el resumen y la marca de tiempo en una cabecera de firma. Incluir la marca de tiempo dentro de la carga firmada evita los ataques de repetición: su endpoint debe rechazar los webhooks con más de 5 minutos de antigüedad. Los nombres de las cabeceras y el formato canónico exacto varían entre plataformas, así que confírmelos con su proveedor antes de escribir el código de verificación.

§02

¿Por qué usar firmas HMAC y no RSA?

HMAC es simétrico (ambas partes comparten un secreto), lo que significa que la firma y la verificación son aproximadamente 10 000 veces más rápidas que RSA-2048. Para la distribución de webhooks, donde un único SMSC puede emitir 50 000 DLR por segundo, la firma RSA consume muchos más recursos de CPU. HMAC-SHA256 en hardware moderno se ejecuta en microsegundos de un solo dígito. La contrapartida es que cualquiera que tenga el secreto puede firmar, así que el secreto debe compartirse solo entre la plataforma y su entorno, guardarse como cualquier otra credencial y poder rotarse bajo demanda.

§03

Problemas con la verificación

Tres errores comunes. Comparar cadenas con `==` en lugar de una comparación de tiempo constante (ataque de temporización: use `crypto.timingSafeEqual`). Validar la firma después de analizar el cuerpo en formato JSON (debe verificar los bytes sin procesar, no una representación serializada; la reordenación de JSON rompe el hash). Olvidar la ventana de protección contra la repetición de la marca de tiempo.

§04

Más allá de HMAC

En entornos regulados (banca, sanidad), algunas plataformas también admiten la entrega de webhooks por mTLS: el remitente presenta un certificado de cliente que su balanceador de carga valida antes de que la solicitud llegue a la aplicación. Es más robusto que HMAC porque vincula la entrega a una clave de hardware, pero solo compensa su coste en cargas de trabajo realmente sensibles. Para la mayoría de las integraciones, HMAC-SHA256 sobre HTTPS es la respuesta correcta.

BNEscrito por el equipo de ingeniería BroadNet·Operando servicios de mensajería de nivel empresarial desde 2003, con sede en Dubái.·Estándares editoriales
Construye con esto

¿Necesitas ayuda para conectar esto?

Las páginas siguientes contienen los productos y las guías de integración que dieron origen a este concepto. Si prefiere una demostración en vivo, nuestro equipo de ingeniería atiende llamadas el mismo día durante el horario laboral MENA .

Habla con nuestro equipo de ingeniería.
Comentario

¿Te ha resultado útil esta respuesta?

Tu voto nos ayuda a priorizar qué respuestas ampliar con ejemplos, diagramas y fragmentos de código.

¿Te ha resultado útil esta respuesta?
Gracias, anotado. Mantendremos esta respuesta actualizada.
Entendido. Dinos qué faltaba. enviar una nota rápida.

Cómo redactamos y revisamos el contenido

¿Sigues necesitando ayuda?

Habla con un ingeniero de verdad sobre tu construcción.

Respondemos en un día hábil, y las cuentas de producción cuentan con soporte 24/7. Nuestros ingenieros de soluciones implementan código, no scripts.

$ curl -X POST https://api.broadnet.me/sms/sendSms
SLA de respuesta
Solicitudes de acceso de pruebaRespuesta en 1 día hábil
Producción24 / 7 · < 15 min
NOC de operadores24 / 7 · guardia