Атака повторения
Атака повторения (англ. replay attack) — это вид сетевой атаки, при которой злоумышленник перехватывает и повторно передаёт легитимный сегмент данных (например, аутентификационный запрос, цифровой сертификат или команду управления) с целью обмануть систему, получить несанкционированный доступ, совершить транзакцию или вызвать иное нежелательное действие. Атака основана на том, что получатель не может отличить повторно отправленный пакет от нового, если не предусмотрены специальные механизмы защиты.
Механизм атаки
Атака повторения возможна в любой системе, где данные передаются по открытому или незащищённому каналу, и где получатель доверяет повторной отправке идентичного сообщения. Основные этапы атаки:
- Перехват — злоумышленник, используя сниффер (анализатор трафика) или уязвимость в сетевой инфраструктуре, захватывает пакет данных, передаваемый между отправителем и получателем. Это может быть, например, запрос на аутентификацию, команда на открытие замка или перевод денег.
- Сохранение — перехваченный пакет копируется и сохраняется в памяти атакующего устройства.
- Повторная отправка — в нужный момент (например, когда легитимный пользователь неактивен или после завершения сессии) злоумышленник отправляет сохранённый пакет получателю, выдавая его за новое сообщение от легитимного отправителя.
- Выполнение — получатель, не имея средств проверки уникальности сообщения, обрабатывает его как законное, что приводит к желаемому для атакующего результату.
Атака не требует взлома шифрования, если само сообщение зашифровано, но не содержит меток времени или уникальных идентификаторов. Злоумышленник может повторять сообщение многократно, пока не добьётся цели.
Примеры атак повторения
Аутентификация в сетях
Один из классических примеров — атака на протоколы аутентификации, где пароль передаётся в открытом виде или в виде хеша. Если злоумышленник перехватывает хеш пароля, он может повторно отправить его серверу и войти в систему, не зная самого пароля. В 1980-х годах подобные атаки были распространены в протоколах Telnet и FTP, передававших данные в незашифрованном виде.
Финансовые транзакции
В системах электронных платежей (например, в ранних версиях протоколов банкоматов или кредитных карт) атака повторения могла использоваться для многократного списания средств с одного счёта. Перехватив запрос на перевод, злоумышленник отправлял его повторно, что приводило к дублированию транзакции.
Управление устройствами
В системах «умный дом» или промышленных контроллерах (SCADA) атака повторения может применяться для повторного выполнения команд, например, открытия замка, включения аварийной сигнализации или изменения режима работы оборудования. В 2010 году в ходе атаки на иранскую ядерную программу (вирус Stuxnet) использовались элементы повторения команд для манипуляции центрифугами.
Беспроводные сети
В протоколах Wi-Fi (например, WEP) атака повторения позволяла злоумышленнику собирать зашифрованные пакеты и, используя уязвимости, восстанавливать ключ шифрования. В современных сетях (WPA2/WPA3) атака повторения затруднена, но не исключена полностью.
Уязвимые системы
Атака повторения возможна в системах, где отсутствуют следующие механизмы:
- Метки времени (timestamp) — сообщение считается действительным только в течение определённого временного окна.
- Уникальные идентификаторы (nonce) — одноразовое случайное число, которое включается в каждое сообщение и проверяется получателем на уникальность.
- Счётчики сообщений — последовательные номера, которые увеличиваются с каждым новым сообщением; получатель отклоняет сообщения с меньшим или равным номером.
- Криптографическая привязка к сессии — использование сессионных ключей, которые меняются при каждом новом соединении.
Наиболее уязвимы:
- Протоколы без шифрования или с шифрованием, не обеспечивающим целостность (например, старые версии SSL/TLS).
- Системы, использующие статические пароли или токены без временных ограничений.
- Устройства Интернета вещей (IoT) с ограниченными вычислительными ресурсами, где защита от повторения часто не реализована.
Методы защиты
Временные метки и временные окна
Получатель проверяет, что время отправки сообщения (включённое в пакет) отличается от текущего времени не более чем на заданный интервал (например, 5 секунд). Если разница превышает порог, сообщение отклоняется. Недостаток — необходимость синхронизации часов между отправителем и получателем, что не всегда возможно (например, в распределённых системах).
Nonce (одноразовый номер)
Отправитель включает в сообщение случайное число, которое получатель запоминает и не принимает повторно. Для генерации nonce обычно используются криптостойкие генераторы случайных чисел. Недостаток — необходимость хранения списка использованных nonce, что может быть ресурсоёмко.
Счётчики сообщений
Каждое сообщение нумеруется последовательно. Получатель хранит последний принятый номер и отклоняет сообщения с меньшим или равным номером. Этот метод прост, но требует поддержания состояния между отправителем и получателем.
Криптографическая аутентификация
Использование цифровых подписей или кодов аутентификации сообщений (MAC), которые зависят от содержимого сообщения и секретного ключа. Если злоумышленник изменяет сообщение, подпись становится недействительной. Однако сама по себе подпись не защищает от повторения, если не включены временные метки или nonce.
Протоколы с защитой от повторения
Современные протоколы, такие как TLS 1.3, SSH, IPsec, включают встроенные механизмы защиты от атак повторения (например, использование nonce и счётчиков). В протоколах аутентификации (например, Kerberos) применяются временные метки и билеты с ограниченным сроком действия.
Отличие от других атак
Атаку повторения часто путают с атакой «человек посередине» (MITM), но между ними есть различие: при MITM злоумышленник активно вмешивается в коммуникацию, изменяя или подменяя сообщения в реальном времени, тогда как при атаке повторения сообщение просто пересылается в неизменном виде, но в другое время. Атака повторения также отличается от атаки подмены (spoofing), где злоумышленник подделывает идентификатор отправителя, а не повторяет перехваченное сообщение.
Интересные факты
- Атака повторения была впервые описана в 1970-х годах в контексте анализа протоколов аутентификации в военных системах связи.
- В 2017 году исследователи продемонстрировали атаку повторения на протокол Bluetooth, позволяющую перехватывать и повторять команды для подключения к устройствам (например, наушникам или колонкам).
- В криптовалютах (например, в Bitcoin) атака повторения теоретически возможна при форке блокчейна, когда одна и та же транзакция может быть повторена в другой ветке цепи. Для защиты используются специальные идентификаторы транзакций и проверки цепочки блоков.
- В системах видеонаблюдения атака повторения может использоваться для подмены видеопотока: злоумышленник записывает фрагмент записи и повторно передаёт его, чтобы скрыть реальное событие.
Источники
- Стандарт RFC 4949 (Internet Security Glossary) — определение атаки повторения.
- Книга «Сетевая безопасность: принципы и практика» (У. Столлингс, 2017) — описание механизмов защиты.
- Статья «Replay Attack: Definition, Examples, and Prevention» (SANS Institute, 2020).
- Материалы Национального института стандартов и технологий (NIST) — руководство по защите от атак повторения в протоколах аутентификации.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →