Пост канала
- фото
📝HMAC: три шага, которые защищают запрос от подделки 🟣Как работает HMAC: клиент и сервер заранее знают общий секретный ключ. Клиент берёт данные запроса, считает от них криптографическую подпись и отправляет её вместе с запросом. GET /api/user/42 X-Timestamp: 1714000000 X-Signature: 8f3a91... Сервер повторяет расчёт с тем же секретом. Подписи совпали - запрос не изменён и знает секрет. 🟣Что именно подписывается: обычно метод, путь, timestamp, nonce и тело запроса. Например: POST /api/payment 1714000000 abc123 {"amount":100} Из этой строки и секретного ключа получается HMAC: HMAC-SHA256(data, secret) 🟣Почему просто отправить секрет нельзя: клиент не передаёт ключ серверу при каждом запросе. Он используется только для вычисления подписи. Если атакующий изменит: {"amount":100} на: {"amount":100000} подпись уже не совпадёт. 🟣Но HMAC сам по себе не защищает от повторной отправки запроса. Если украсть настоящий запрос, его можно попробовать отправить ещё раз. Поэтому рядом используют timestamp и nonce: timestamp → запрос должен быть свежим nonce → конкретный запрос можно использовать один раз signature → данные нельзя незаметно изменить Такую схему часто используют API, вебхуки и взаимодействие между сервисами, где важно доказать не только «кто отправил запрос», но и что его содержимое не меняли по дороге. 🤖Бесплатный ChatGPT
Открыть в MAX- Просмотры
- 320
- ER
- 0,9%
- Реакции
- 3