Во время запуска пограничной сети пользователей предостерегали от повторного использования ключей из олимпийской тестовой сети, чтобы предотвратить «атаки воспроизведения». Что такое повторная атака и почему повторное использование ключа из тестовой сети делает кого-то уязвимым для нее?
Повторная атака — это действительная передача данных, которая злонамеренно или мошеннически повторяется или задерживается.
Распространяя это на блокчейны, повторная атака принимает транзакцию в одном блокчейне и злонамеренно или мошеннически повторяет ее в другом блокчейне.
Например, злоумышленник берет чью-то транзакцию в тестовой сети и повторяет ее в «настоящей» цепочке блоков, чтобы украсть «настоящие» средства.
Как прокомментировал @libertylocked, была реализована защита от атак EIP 155 Simple Replay .
В биткойне адреса в тестовой сети используют префикс, отличный от адреса в основной сети: поэтому ключи разные.
В Ethereum в настоящее время нет «префиксов». (Вероятно, это сделано для того, чтобы упростить создание новых адресов.) Таким образом, транзакция, подписанная ключом, который действителен в одной сети/цепочке Ethereum, действителен для всех цепочек Ethereum.
Это означает, что если при «тестировании» средства отправляются со счета B на accountTest, эта же транзакция может быть воспроизведена (транслирована) в общедоступный блокчейн Ethereum: атака воспроизведения. Повторная атака «успешна», если на счете B есть средства в общедоступной цепочке блоков. Чтобы полностью преуспеть, злоумышленнику необходимо знать закрытый ключ accountTest для кражи средств, но, учитывая, что accountTest был создан для тестирования, его закрытый ключ может быть небезопасным (возможно, это просто «мозговой кошелек» с паролем «test» ).
Атаки повторного воспроизведения устраняются за счет использования разных адресов/ключей между пограничной сетью и всеми другими цепями Ethereum. (Это немного похоже на использование другого пароля для ценных материалов с менее ценных или менее надежных веб-сайтов.) Также см.: Как предотвратить повторную атаку между двумя конкурирующими цепочками? и, как отмечено в комментарии @libertylocked, была реализована защита от атак EIP 155 Simple Replay .
Это означает, что транзакция, которая была действительна в тестовой сети Olympic, по-прежнему действительна для следующего выпуска (Frontier).
Если вы совершили транзакцию T в Olympic, которая отправляет эфир с адреса A на B, а затем повторно использовали ключ за адресом A в выпуске Frontier, эта транзакция T могла бы быть передана снова (воспроизведена), и передача от A к B произошла бы в Граница, даже если вы (владелец А) не собирались этого делать.
Вот почему людей просили не использовать ключи повторно.
Чтобы избежать повторной атаки, используйте типы транзакций EIP155 , которые доступны с блока 2675000. Они включаются chainID
в подпись транзакции. Убедитесь, что программное обеспечение вашего кошелька поддерживает протокол EIP155, и вы будете в безопасности.
Томас Клоуз
размер
эт
эт
свободазаперта
CHAIN_ID
как часть байта восстановления при проверке подписи транзакции. Поэтому транзакции, отправленные в одной сети, не будут иметь правильной подписи в идентификаторе другой цепочки.