Безопасность транзакций важнее, чем когда-либо, в стремительно развивающейся нишевой отрасли crypto. Из-за роста использования блокчейна увеличивается количество способов, которыми хакеры могут эксплуатировать уязвимости. Атака повторной передачи — одна из серьезных и плохо понятых угроз.
Что такое атака повторного воспроизведения?
Атака повторного воспроизведения происходит, когда злоумышленник повторно передает легитимную транзакцию, чтобы обмануть систему. Злоумышленник не изменяет подпись, а использует ее в другом месте. Это может привести к повторению одной и той же транзакции, что представляет угрозу для пользователя.
Поскольку подпись остаётся неизменной, блокчейн может принять избыточное сообщение. В случаях, когда блокчейны или приложения не проверены, злоумышленник использует повторную атаку. Это может быть особенно опасно при форках или между такими цепочками блокчейнов.
Когда происходят атаки повторного воспроизведения?
Атаки повторного воспроизведения часто происходят при разделении блокчейна или когда две цепи имеют одинаковый формат. Подписанная транзакция может использоваться в обеих цепях без достаточной защиты. Это означает, что средства могут быть отправлены одновременно в одной цепи и в другой.
Отсутствие четких границ между блокчейнами в системах создает возможность для хакеров. Они также нацеливаются на приложения с слабой проверкой сообщений. В обоих случаях злоумышленник стремится заработать, повторяя действия, которые выглядят как действительные.
Одним из таких примеров стал случай с Ethereum и Ethereum classic в 2016 году. Злоумышленники повторяли транзакции в обеих сетях, поскольку изначальной защиты не было. В результате пользователи случайно тратили деньги на совершение транзакций дважды.
Как кошельки предотвращают атаки повторного воспроизведения
Криптовалютные кошельки имеют мощные инструменты безопасности, которые реализуются до любой атаки повторного воспроизведения. Одним из них является chain ID, связанный с каждым подписанном сообщением. Это гарантирует, что подпись может пройти только по одному блокчейну и не пройдет по другим блокчейнам.
Другим важным инструментом является nonce — число, которое увеличивается в каждой транзакции. Кошелек отклоняет транзакцию, если nonce повторяется. Это гарантирует, что хакеры не смогут повторить одно и то же сообщение или платеж.
Временные ограничения также используются в некоторых кошельках для получения платежа. Например, сообщение может быть действительным до пяти минут. После этого подпись становится бесполезной, и повторная передача невозможна.
Смарт-контракт и защита на уровне приложения
Хотя кошельки функциональны, смарт-контракты и приложения также должны обеспечивать свою безопасность. Большинство контрактов используют nonce/пользователя — счетчик nonce для предотвращения дублирования действий. Это позволяет контракту отрицать любую подпись, которую он зафиксировал.
Приложения, помогающие с подписью вне цепочки, скорее всего, будут соответствовать стандарту EIP-712. Этот формат включает идентификатор цепочки, название приложения и контракта. Используя этот стандарт, приложения связывают каждое сообщение с его целью и предотвращают повторы.
Согласно QuillAudits, компании по безопасности блокчейна, приложения не должны пропускать разделение доменов при одобрениях вне цепочки. Отсутствие правильного контекста позволит злоумышленникам злоупотреблять интероперабельностью. Это объясняет, почему аудиты важны для обеспечения безопасности систем Web3.
Ключевые компоненты
Защита от повторных атак опирается на четкие и явные инструменты для обеспечения правильного контекста. К таким инструментам относятся идентификаторы цепочек, nonce аккаунтов и время истечения срока действия. Их комбинация затрудняет злоумышленникам попытки повторной атаки.
Самыми значимыми элементами являются:
- Chain ID – Транзакция действительна только в одном блокчейне и отклоняется другими блокчейнами.
- Nonce – это число, используемое для обеспечения того, чтобы подписанное сообщение не использовалось многократно.
- Временная метка или ограничения по времени — это добавит временной интервал, в течение которого воспроизведенное сообщение будет отклонено после истечения времени.
- Разделитель домена – Tether отключает внеблокчейн-сообщения для конкретного приложения, контракта и цепочки через стандарты EIP-712.
- Отслеживание nonce смарт-контракта — позволяет приложениям и контрактам блокировать использованные или дублирующиеся сообщения на уровне контракта.
Комбинация этих инструментов предотвращает большинство угроз повторной передачи. Все эти методы используются кошельками, приложениями и протоколами для защиты от дублирования сообщений. Результат — более безопасный опыт для разработчиков и пользователей.
Почему защита от повторного воспроизведения важна для пользователей
Защита от повторного воспроизведения обеспечивает уверенность пользователей при использовании кошельков, мостов и бирж. Без нее пользователи не осознают, что потеряли деньги. Системы становятся более безопасными и надежными, отказываясь выполнять повторные или злоупотребляемые транзакции.
Кошельки с именем, ID и подсказкой сети позволяют пользователям избежать ошибок. Когда пользователи четко понимают, куда направляется их транзакция, они могут взять ситуацию под контроль. Это также снижает путаницу при переходе между сетями или приложениями.
Защита от повторного воспроизведения также используется для безопасных выводов и депозитов бирж и хранителей. Они разрабатывают персонализированные инструменты, позволяющие осуществлять транзакции только на соответствующей сети. Это обеспечивает безопасность клиентов и стабильность операций в случае форков или обновлений.
Заключение
Атаки повторной отправки представляют угрозу безопасности блокчейна, используя повторно используемые подписи в одной или нескольких цепочках или системах. Однако с помощью идентификатора цепочки, одноразовых номеров и временных ограничений кошельки вносят значительный вклад в предотвращение таких атак. Приложения и смарт-контракты также должны участвовать в этом, отслеживая их использование и подписи.
Системы должны взаимодействовать и быть осведомлены друг о друге, так как это единственный способ обеспечить наилучшую защиту. Пользователи минимизируют риск повторной атаки с помощью использования надежных кошельков, проверенных dapp и прошедших аудит смарт-контрактов. Пространство блокчейна расширяется, и усилия по обеспечению его безопасности должны быть усилены.

