HMAC — хеш-код аутентификации сообщений — объединяет секретный ключ с сообщением с помощью хеш-функции для получения короткого значения, которое может быть воспроизведено только тем, кто имеет тот же ключ и то же сообщение. Он обеспечивает подлинность и целостность одновременно, без использования криптографии с открытым ключом.
Отправитель вычисляет HMAC(секрет, тело) и помещает результат в заголовок. Получатель вычисляет то же самое над полученным телом и сравнивает. Если различаются тело или ключ, значения не совпадают. Сравнение должно быть постоянным по времени: обычное сравнение строк возвращает результат на первом же отличающемся байте, что позволяет получить достаточно информации о времени для восстановления действительной подписи при достаточном количестве попыток.
Подпись доказывает актуальность. Это не так — действительная подписанная полезная нагрузка остается действительной навсегда, поэтому злоумышленник, перехвативший её, может воспроизвести её. Именно поэтому подписи обычно вычисляются по метке времени, а также по телу сообщения, и именно поэтому получатели отклоняют всё, что старше нескольких минут.
Запустите отправку веб-хука и проверьте `x-funapi-signature` на соответствие секретному ключу, предоставленному вам при подписке. Изменение одного байта полезной нагрузки приведет к сбою проверки, в этом и заключается весь смысл.
Все термины · Приёмы тестирования · Все 39 mock REST API
Последнее обновление