BroadNet
Protocolli Risposta BroadNet

HMAC-SHA256 per la firma dei webhook DLR: come e perché

Ultimo aggiornamento 2 min di letturaRecensito dal team di ingegneri BroadNet
Risposta rapida

HMAC-SHA256 è il primitivo crittografico utilizzato da tutte le moderne piattaforme di messaggistica per firmare i webhook di conferma di ricezione e di ricezione dei messaggi. La piattaforma calcola un hash con chiave sul corpo della richiesta utilizzando un segreto condiviso; il tuo endpoint ricalcola lo stesso hash e lo confronta. Questo dimostra che il webhook proviene dalla piattaforma, e non da qualcuno che ha indovinato il tuo URL, e che il corpo non è stato manomesso durante la trasmissione.

Definizione in linguaggio sempliceIndipendente dal fornitoreRevisionato 24 settembre 2026
La risposta lunga

Tutto ciò che vale la pena sapere, niente di superfluo.

§01

Come viene costruita la firma

Una costruzione comune forma la stringa canonica come `${timestamp}.${requestBody}`, calcola `HMAC-SHA256(canonical, secret)`, la codifica in esadecimale e invia il digest e il timestamp in un header di firma. Includere il timestamp nel payload firmato impedisce gli attacchi di replay: il tuo endpoint dovrebbe rifiutare i webhook più vecchi di 5 minuti. I nomi degli header e il formato canonico esatto variano da piattaforma a piattaforma, quindi verificali con il tuo provider prima di scrivere il codice di verifica.

§02

Perché le firme HMAC e non quelle RSA?

HMAC è simmetrico, ovvero entrambe le parti condividono un segreto, il che significa che la firma e la verifica sono circa 10.000 volte più veloci di RSA-2048. Per i webhook con un elevato numero di connessioni, dove un singolo SMSC può emettere 50.000 DLR al secondo, la firma RSA sovraccarica la CPU. HMAC-SHA256 su hardware moderno impiega solo pochi microsecondi. Il compromesso: chiunque possieda il segreto può firmare, quindi il segreto va condiviso solo tra la piattaforma e il tuo ambiente, conservato come qualsiasi altra credenziale e ruotabile su richiesta.

§03

Insidie della verifica

Tre bug comuni. Confrontare stringhe con `==` invece di un confronto a tempo costante (attacco di temporizzazione: utilizzare `crypto.timingSafeEqual`). Convalidare la firma dopo aver analizzato il corpo in formato JSON (è necessario verificare i byte grezzi, non una rappresentazione ri-serializzata: il riordino JSON compromette l'hash). Dimenticare la finestra anti-replay del timestamp.

§04

Oltre HMAC

Per gli ambienti regolamentati (banche, sanità), alcune piattaforme supportano anche la consegna dei webhook tramite mTLS: il mittente presenta un certificato client che il tuo load balancer convalida prima che la richiesta raggiunga l'applicazione. È più robusto di HMAC perché lega la consegna a una chiave hardware, ma ne giustifica il costo solo per carichi di lavoro davvero sensibili. Per la maggior parte delle integrazioni, HMAC-SHA256 su HTTPS è la risposta giusta.

BNScritto dal team di ingegneri BroadNet·Dal 2003 offriamo servizi di messaggistica di livello carrier, con sede a Dubai.·Standard editoriali
Costruisci con questo

Hai bisogno di aiuto per il collegamento?

Le pagine seguenti contengono i prodotti e le guide di integrazione che illustrano questo concetto. Se preferisci una dimostrazione dal vivo, il nostro team di ingegneri risponde alle chiamate in giornata durante l'orario lavorativo MENA .

Parla con il nostro team di ingegneri
Feedback

Questa risposta ti è stata utile?

Il tuo voto ci aiuta a stabilire le priorità per le risposte da approfondire con esempi, diagrammi e frammenti di codice.

Questa risposta ti è stata utile?
Grazie, ne prendiamo atto. Manterremo questa risposta aggiornata.
Ho capito. Dicci cosa mancava. inviare un breve messaggio.

Come scriviamo e revisioniamo i contenuti

Hai ancora bisogno di aiuto?

Parla con un vero ingegnere di la tua configurazione.

Rispondiamo entro un giorno lavorativo e gli account di produzione hanno supporto 24 ore su 24, 7 giorni su 7. I nostri ingegneri delle soluzioni rilasciano codice, non script.

$ curl -X POST https://api.broadnet.me/sms/sendSms
SLA di risposta
Richieste di accesso di provaRisposta entro 1 giorno lavorativo
Produzione24 / 7 · < 15 min
NOC operatori24 / 7 · reperibilità