Как эффективно предотвратить атаки воспроизведения API?

задняя часть сервер API продукт
Как эффективно предотвратить атаки воспроизведения API?

Как эффективно предотвратить атаки воспроизведения API?вызов APIFAQ по продукту_API Gateway-Alibaba Cloud
Документация по подписи запроса_Руководство пользователя (Call API)_API Gateway-Alibaba Cloud

API Replay Attacks (Attacks Replays), также известный как атаки воспроизведения, атаки воспроизведения, являются атакующими, которые неоднократно злонамеренные или обманным путем повторяют действительный запрос API. Злоумышленники используют мониторинг сети или другие методы для кражи запросов API, выполняют определенную обработку, а затем повторно отправьте их на сервер аутентификации, что является одним из часто используемых методов атаки хакерами.

Предотвращает ли шифрование данных HTTPS повторные атаки?

Нет, шифрование может эффективно предотвратить перехват данных открытого текста, но оно не может предотвратить атаки повторного воспроизведения.

Используйте сигнатуры для предотвращения повторных атак

После использования подписи можно проверить подлинность запроса. Однако он не предотвращает повторные атаки, то есть после перехвата запроса злоумышленником он не вносит в запрос никаких корректировок. Непосредственно используйте перехваченный контент для повторной отправки запросов с высокой частотой.

Шлюз API предоставляет набор методов для эффективного предотвращения повторных атак. Чтобы включить воспроизведение шлюза API, вам необходимо использовать метод аутентификации «Alibaba Cloud APP». При использовании этого метода аутентификации по подписи каждый запрос можно использовать только один раз, что предотвращает повторное использование.

Alibaba Cloud APP: это цифровая подпись, рассчитанная на основе содержания запроса, которая используется шлюзом API для идентификации пользователя. Когда клиент вызывает API, ему необходимо добавить к запросу рассчитанную подпись. После получения запроса API-шлюз тем же методом вычислит подпись и сравнит ее с подписью, рассчитанной пользователем. Чтобы узнать о методе подписи для этой аутентификации, см.: Запрос подписи.

В подписи API-шлюза предусмотрены два необязательных HEADER, X-Ca-Timestamp и X-Ca-Nonce.Когда клиент вызывает API, эти два параметра используются вместе для предотвращения повторных атак.

принцип

  1. Все содержимое запроса добавляется к расчету подписи, поэтому любое изменение запроса приведет к сбою подписи.
  2. Не изменяйте содержимое
    • X-Ca-Timestamp: время инициации запроса, которое можно взять из локальной реализации машины. Когда шлюз API получит запрос, он проверит правильность этого параметра, и ошибка не должна превышать 15 минут.
    • X-Ca-Nonce: это уникальный идентификатор запроса, который обычно идентифицируется UUID. После получения этого параметра API Gateway проверит правильность этого параметра. Одно и то же значение используется каждые 15 минут.

Так, например, следующий запрос:

a.com?uid=123×tamp=1480556543&nonce=43f34f33&sign=80b886d71449cb33355d017893720666

знак = (bey1 = val1 & key2 = val2 & key3 = val3 {miyao} ...) md5

Сервер получает этот запрос:

  1. Сначала проверьте, является ли подпись подписи разумной, чтобы доказать, что параметры запроса не были подделаны.
  2. Затем проверьте, не истек ли срок действия метки времени, и докажите, что запрос был отправлен в течение последних 60 секунд.
  3. Наконец, проверьте, существует ли уже одноразовый номер, который доказывает, что запрос не является запросом на воспроизведение в течение 60 секунд.