Webhooks signés

Webhooks signés

Événements de livraison, bounce et plainte signés avec HMAC-SHA256.

Exigences pour le récepteur

Calculez la signature à partir du corps de requête brut exact. Comparez les signatures à temps constant.

Contrôles sortants

La création d'un point de terminaison exige HTTPS. Les cibles privées, loopback, link-local, de métadonnées, porteuses d'identifiants et internes sont bloquées et re-résolues au moment de la connexion. Les redirections ne sont pas suivies. La livraison utilise des délais d'expiration et un nombre de tentatives limités.

Contrôles mis en œuvre

TLS pour les chemins de soumission HTTP et SMTP externes pris en charge Clés API hachées, scoped, expirantes, avec listes d'autorisation IP optionnelles

Limite du chiffrement

TLS est un chiffrement en transit, pas un chiffrement de bout en bout des emails. Les fournisseurs des destinataires peuvent traiter le contenu livré. Les clients ayant besoin de confidentialité au niveau du message doivent ajouter un schéma approprié tel que S/MIME, PGP ou un chiffrement au niveau applicatif.

HMAC-SHA256
signed = timestamp + "\0" + event_id + "\0" + raw_body
expected = HMAC-SHA256(webhook_secret, signed)
constant_time_compare(expected, Postline-Signature)