Как защитить систему от атаки типа replay attack (атака повторения) при проектировании публичного REST API?

Для защиты от replay связывают подпись с содержимым запроса, временем и уникальным nonce, а использованные nonce атомарно запоминают на ограниченный срок. TLS сам по себе не решает повтор украденного запроса.

Короткий ответ

Что ответить на собеседовании

Для защиты от replay связывают подпись с содержимым запроса, временем и уникальным nonce, а использованные nonce атомарно запоминают на ограниченный срок. TLS сам по себе не решает повтор украденного запроса.

Подробный разбор

Ответ с пояснениями

Для защиты от replay связывают подпись с содержимым запроса, временем и уникальным nonce, а использованные nonce атомарно запоминают на ограниченный срок. TLS сам по себе не решает повтор украденного запроса.

Проверяйте допустимое окно времени, подпись канонического метода, пути и тела, а также принадлежность ключа клиенту. Одновременные повторы одного nonce должны отклоняться атомарно во всех экземплярах сервиса. Допустимые повторы бизнес-операций обрабатывают idempotency key с проверкой совпадения payload, а не создают повторный платёж. Разделяйте защиту от подделки и от повторного выполнения; bearer-токен без дополнительного механизма можно повторно использовать до истечения или отзыва. Секреты не передают в URL и журналы.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее