Открыть сервис

Атака повторного воспроизведения

Атака повторного воспроизведения (англ. replay attack) — это тип сетевой атаки, при которой злоумышленник перехватывает легитимную передачу данных (например, запрос на аутентификацию, команду управления, финансовую транзакцию) и повторно отправляет её в ту же или другую информационную систему для получения несанкционированного доступа, выполнения нежелательных действий или нарушения целостности данных. Атака относится к классу пассивных (на этапе перехвата) и активных (на этапе повторной отправки) угроз информационной безопасности.

Механизм атаки

Принцип действия

Атака повторного воспроизведения основана на том, что злоумышленник, не обладая ключами шифрования или паролями, может использовать уже переданные данные, которые были легитимно отправлены авторизованным пользователем. Для проведения атаки необходимо выполнить три этапа:

  1. Перехват — злоумышленник получает доступ к каналу связи (например, через прослушивание сети Wi-Fi, перехват пакетов на маршрутизаторе или использование вредоносного ПО на сетевом устройстве). Перехваченные данные могут быть зашифрованы, но сама структура сообщения сохраняется.
  2. Сохранение — перехваченный пакет или сегмент данных записывается в память атакующего устройства.
  3. Повторная отправка — в нужный момент злоумышленник отправляет скопированный пакет в систему, имитируя действия легитимного пользователя. Система, не имеющая механизмов защиты от повторных сообщений, обрабатывает его как новый запрос.

Примеры реализации

  • Аутентификация по паролю: если пароль передаётся в открытом виде (или в виде хеша без соли), злоумышленник может перехватить его и отправить повторно, получив доступ к системе.
  • Финансовые транзакции: перехваченный запрос на перевод денег может быть отправлен несколько раз, что приведёт к многократному списанию средств.
  • Системы управления доступом: сигнал от ключа-брелока для открытия двери может быть записан и воспроизведён для несанкционированного проникновения.
  • Протоколы Интернета вещей (IoT): команды на включение/отключение устройств (например, умных замков, термостатов) могут быть повторены для нарушения работы системы.

Классификация

По типу перехватываемых данных

  • Атаки на аутентификационные данные — перехват и повторная отправка паролей, токенов, сертификатов, ключей сессии.
  • Атаки на команды управления — повторение команд, передаваемых между устройствами (например, в SCADA-системах, промышленных контроллерах).
  • Атаки на финансовые сообщения — повторение запросов на перевод средств, списание со счетов, изменение баланса.

По способу перехвата

  • Пассивный перехват — злоумышленник только записывает трафик, не внося изменений в сеть.
  • Активный перехват — злоумышленник может модифицировать сетевую инфраструктуру (например, подменять MAC-адреса, проводить ARP-спуфинг) для перенаправления трафика на своё устройство.

По цели повторной отправки

  • Прямая атака — повторная отправка в ту же систему, из которой был перехвачен пакет.
  • Кросс-системная атака — повторная отправка в другую систему, использующую тот же протокол или формат сообщений (например, если один и тот же токен аутентификации используется на нескольких серверах).

Уязвимые системы и протоколы

Протоколы без механизмов защиты от повторения

  • HTTP/HTTPS без nonce — если запросы не содержат уникальных идентификаторов, злоумышленник может повторять GET- или POST-запросы, особенно в REST API.
  • Kerberos (устаревшие версии) — при отсутствии временных меток и nonce возможен повторный захват билетов.
  • Протоколы аутентификации на основе паролей (PAP, CHAP) — если пароль передаётся в открытом виде или используется статический хеш.
  • Протоколы управления устройствами (Modbus, BACnet) — в промышленных сетях, где команды не имеют временной привязки, повторная отправка может привести к аварийным ситуациям.

Системы с недостаточной синхронизацией времени

  • Системы, использующие временные метки — если часы на клиенте и сервере не синхронизированы с высокой точностью (например, через NTP), злоумышленник может повторно отправить сообщение в пределах допустимого временного окна.
  • Устройства IoT с автономным питанием — часто не имеют точного времени или используют упрощённые протоколы, что делает их уязвимыми.

Методы защиты

Использование уникальных идентификаторов (nonce)

Nonce (number used once) — случайное число, которое генерируется для каждого сеанса связи или запроса. Сервер проверяет, что nonce не использовался ранее. Если злоумышленник повторно отправляет сообщение с тем же nonce, сервер отклоняет его. Nonce может быть включён в тело сообщения или в заголовок протокола (например, в HTTP-заголовок X-Nonce).

Временные метки (timestamps)

Каждое сообщение снабжается меткой времени, указывающей момент отправки. Сервер проверяет, что разница между текущим временем и меткой не превышает заданного порога (например, 5 секунд). Если сообщение отправлено повторно через более длительный интервал, оно отклоняется. Недостаток — необходимость точной синхронизации часов (через NTP, PTP).

Счётчики последовательности (sequence numbers)

Клиент и сервер ведут счётчик отправленных сообщений. Каждое новое сообщение содержит номер, увеличенный на единицу. Сервер проверяет, что номер сообщения строго больше предыдущего. Если злоумышленник повторяет старое сообщение, его номер будет меньше текущего, и запрос будет отклонён. Этот метод используется в протоколах TCP, SSH, IPsec.

Криптографическая привязка к сессии

Каждое сообщение подписывается цифровой подписью или шифруется с использованием ключа сессии, который уникален для каждого сеанса связи. Ключ сессии генерируется случайным образом при установке соединения и уничтожается после завершения сессии. Повторная отправка сообщения из другой сессии будет невозможна, так как ключ уже недействителен.

Комбинированные методы

На практике часто применяется комбинация nonce, временных меток и счётчиков последовательности. Например, в протоколе OAuth 2.0 используется nonce вместе с временной меткой, что позволяет защитить как от повторных атак, так и от атак с задержкой (delayed replay attacks).

Использование одноразовых паролей (OTP)

Одноразовые пароли (например, на основе TOTP или HOTP) генерируются на короткий промежуток времени или на один сеанс. Если пароль был перехвачен, он будет недействителен для следующего запроса, так как сервер ожидает новый пароль.

Примеры известных атак

Атака на протокол Kerberos (2005)

Исследователи из Университета Карнеги-Меллона продемонстрировали, что в некоторых реализациях Kerberos (версии 4) отсутствовала проверка временных меток, что позволяло злоумышленнику повторно использовать билеты аутентификации для получения доступа к ресурсам. После исправления протокол стал требовать обязательной синхронизации времени.

Атака на систему управления доступом KeeLoq (2007)

Криптоаналитики показали, что система дистанционного управления автомобильными замками KeeLoq (используется в автомобилях многих марок) уязвима к атаке повторного воспроизведения. Злоумышленник, перехватив сигнал от брелока, мог повторно открыть автомобиль, если протокол не использовал скользящий код (rolling code). Производители внедрили механизм смены кода (code hopping), который генерирует новый ключ для каждой команды.

Атака на протокол Bluetooth (2018)

Исследователи из компании Armis обнаружили уязвимость BlueBorne, которая позволяла перехватывать и повторять команды в устройствах Bluetooth. В частности, атака была возможна на устройства с устаревшей версией протокола (до 4.2), где не использовалось шифрование с nonce. После обновления протокола (Bluetooth 4.2+) была введена обязательная проверка nonce.

Атака на системы электронного голосования (2019)

В ходе тестирования систем электронного голосования в США было показано, что некоторые протоколы передачи бюллетеней не содержали временных меток и nonce. Злоумышленник, перехватив зашифрованный бюллетень, мог повторно отправить его, что привело бы к двойному учёту голоса. После инцидента были внедрены механизмы цифровой подписи и уникальных идентификаторов бюллетеней.

Критика и ограничения методов защиты

Проблемы синхронизации времени

Методы, основанные на временных метках, требуют точной синхронизации часов между всеми участниками системы. В распределённых системах (например, в блокчейне, глобальных сетях) задержки могут составлять несколько секунд, что вынуждает устанавливать широкие временные окна. Это снижает эффективность защиты, так как злоумышленник может успеть повторно отправить сообщение в пределах окна.

Управление nonce и счётчиками

Хранение и проверка nonce требуют дополнительной памяти и вычислительных ресурсов на сервере. В системах с высокой нагрузкой (например, миллионы запросов в секунду) это может стать узким местом. Кроме того, если nonce генерируется с использованием слабого генератора случайных чисел, злоумышленник может предсказать его и подделать.

Атаки с задержкой (delayed replay)

Даже при использовании временных меток злоумышленник может задержать сообщение на короткое время (например, на 1-2 секунды) и отправить его в пределах допустимого окна. Это особенно опасно для систем, где задержка в несколько секунд критична (например, в финансовых транзакциях или системах управления).

Атаки на протоколы с низкой пропускной способностью

В системах IoT с ограниченными ресурсами (батарейное питание, слабый процессор) реализация сложных криптографических методов может быть невозможна. В таких случаях разработчики часто используют упрощённые протоколы, которые уязвимы к атаке повторного воспроизведения.

Интересные факты

  • Термин «replay attack» впервые был описан в 1970-х годах в контексте протоколов аутентификации в системах с разделением времени (time-sharing systems).
  • Атака повторного воспроизведения является одним из ключевых сценариев, рассматриваемых при тестировании безопасности протоколов TLS/SSL. В версии TLS 1.3 была введена обязательная проверка nonce для всех сообщений.
  • В некоторых криптовалютах (например, Bitcoin) атака повторного воспроизведения может быть использована для двойной траты (double-spending), если блокчейн не имеет механизмов защиты от повторных транзакций (например, nonce в транзакциях).
  • В 2016 году исследователи из Университета Мичигана продемонстрировали атаку повторного воспроизведения на систему управления дорожным движением, перехватив сигналы от светофоров и повторно отправив команды на изменение фаз.

Источники

  • Stallings, W. (2017). Cryptography and Network Security: Principles and Practice (7th ed.). Pearson.
  • Anderson, R. (2020). Security Engineering: A Guide to Building Dependable Distributed Systems (3rd ed.). Wiley.
  • Menezes, A., van Oorschot, P., & Vanstone, S. (1996). Handbook of Applied Cryptography. CRC Press.
  • RFC 6749 — The OAuth 2.0 Authorization Framework.
  • RFC 5246 — The Transport Layer Security (TLS) Protocol Version 1.2.
  • Armis Labs (2018). BlueBorne: The Attack Vector That Exposes Almost Every Connected Device.
  • Carnegie Mellon University (2005). Kerberos Replay Attack Analysis.
  • KeeLoq Cryptanalysis (2007). Breaking KeeLoq in a Real-World Scenario.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →