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