Подписанные вебхуки

Подписанные вебхуки

События доставки, bounce и жалоб с подписью HMAC-SHA256.

Требования к получателю

Считайте подпись из точного «сырого» тела запроса. Сравнивайте подписи constant-time.

Исходящие ограничения

Создание эндпоинта требует HTTPS. Приватные, loopback, link-local, metadata-адреса и адреса с учётными данными блокируются и повторно резолвятся в момент подключения. Редиректы не выполняются. Доставка использует ограниченные таймауты и число попыток.

Реализованные меры

TLS для поддерживаемых внешних HTTP- и SMTP-путей отправки Хешированные, scoped, истекающие API-ключи с опциональными IP allowlist

Границы шифрования

TLS — это шифрование при передаче, а не end-to-end шифрование почты. Провайдер получателя может обрабатывать доставленное содержимое. Клиентам, которым нужна конфиденциальность на уровне сообщения, следует добавить соответствующую схему — S/MIME, PGP или шифрование на уровне приложения.

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