Подпись HMAC

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

Как это работает

Отправитель вычисляет HMAC(секрет, тело) и помещает результат в заголовок. Получатель вычисляет то же самое над полученным телом и сравнивает. Если различаются тело или ключ, значения не совпадают. Сравнение должно быть постоянным по времени: обычное сравнение строк возвращает результат на первом же отличающемся байте, что позволяет получить достаточно информации о времени для восстановления действительной подписи при достаточном количестве попыток.

Заблуждение

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

Попробуйте здесь.

Запустите отправку веб-хука и проверьте `x-funapi-signature` на соответствие секретному ключу, предоставленному вам при подписке. Изменение одного байта полезной нагрузки приведет к сбою проверки, в этом и заключается весь смысл.

Источники

Другие термины

Читать страницу на английском

Все термины · Приёмы тестирования · Все 39 mock REST API

Последнее обновление