BroadNet
Протоколы Ответ BroadNet

HMAC-SHA256 для подписи веб-перехватчиков DLR — как и зачем

Последнее обновление 1 мин чтенияПроверено инженерным отделом BroadNet
Быстрый ответ

HMAC-SHA256 — это криптографический примитив, используемый каждой современной платформой обмена сообщениями для подписи веб-хуков, подтверждающих доставку и входящие сообщения. Платформа вычисляет хеш с ключом по телу запроса, используя общий секрет; ваша конечная точка пересчитывает тот же хеш и сравнивает его. Это доказывает, что веб-хук поступил от платформы, а не от кого-то, кто угадал ваш URL, и что тело запроса не было изменено во время передачи.

Определение простым языкомНейтральный по отношению к поставщикуПроверено 24 сентября 2026 г.
Развернутый ответ

Всё, что стоит знать, и ничего лишнего.

§01

Как формируется подпись

Распространенная схема формирует каноническую строку `${timestamp}.${requestBody}`, вычисляет `HMAC-SHA256(canonical, secret)`, кодирует результат в hex и передает дайджест и метку времени в заголовке подписи. Метка времени внутри подписанных данных защищает от атак повторного воспроизведения — ваша конечная точка должна отклонять веб-хуки старше 5 минут. Имена заголовков и точный канонический формат различаются между платформами, поэтому уточните их у своего поставщика, прежде чем писать код проверки.

§02

Почему используются подписи HMAC, а не RSA?

HMAC симметричен — обе стороны разделяют секретный ключ, — что означает, что подписание и проверка примерно в 10 000 раз быстрее, чем RSA-2048. Для веб-хуков, где один SMSC может генерировать 50 000 DLR в секунду, подписание RSA занимает доминирующую долю ресурсов ЦП. HMAC-SHA256 на современном оборудовании выполняется за несколько микросекунд. Компромисс: подписать может любой, у кого есть секрет, поэтому секрет должен быть известен только платформе и вашей среде, храниться как любые другие учетные данные и ротироваться по запросу.

§03

Подводные камни проверки

Три распространённые ошибки. Сравнение строк с помощью `==` вместо сравнения за постоянное время (атака по времени — используйте `crypto.timingSafeEqual`). Проверка подписи после разбора тела JSON (необходимо проверять исходные байты, а не пересериализованное представление — изменение порядка JSON нарушает хеширование). Забытое окно защиты от повторного воспроизведения для временной метки.

§04

Помимо HMAC

Для регулируемых сред (банки, здравоохранение) некоторые платформы также поддерживают доставку веб-хуков по mTLS: отправитель предъявляет клиентский сертификат, который ваш балансировщик нагрузки проверяет до того, как запрос попадет в приложение. Это надежнее HMAC, поскольку доставка привязывается к аппаратному ключу, но оправдывает затраты только для действительно чувствительных нагрузок. Для большинства интеграций правильный ответ — HMAC-SHA256 поверх HTTPS.

BNАвтор статьи — инженерная команда BroadNet·Осуществляем обмен сообщениями операторского класса с 2003 года, штаб-квартира — в Дубае.·Редакционные стандарты
Создавайте с помощью этого

Нужна помощь с подключением?

Ниже представлены продукты и руководства по интеграции, которые позволяют реализовать эту концепцию. Если вы предпочитаете ознакомиться с процессом в режиме реального времени, наша команда инженеров принимает звонки в тот же день в рабочее время MENA .

Свяжитесь с нашей инженерной командой.
Обратная связь

Был ли этот ответ полезен?

Ваш голос помогает нам определить приоритетность ответов, которые следует дополнить примерами, диаграммами и фрагментами кода.

Был ли этот ответ полезен?
Спасибо — принято к сведению. Мы будем поддерживать этот ответ.
Понял. Расскажите, чего не хватало — отправить короткое сообщение.

Как мы готовим и проверяем материалы

Вам всё ещё нужна помощь?

Поговорите с настоящим инженером о ваша сборка.

Мы отвечаем в течение одного рабочего дня, а производственные аккаунты получают круглосуточную поддержку. Наши инженеры-разработчики создают код, а не скрипты.

$ curl -X POST https://api.broadnet.me/sms/sendSms
SLA по времени ответа
Запросы на тестовый доступОтвет в течение 1 рабочего дня
Продакшн24 / 7 · < 15 min
NOC для операторов24 / 7 · дежурный инженер