Bitcoin Core 31.0 содержит уязвимость в области приватности: вредоносные ноды могут принудительно вызывать утечку IP-адреса

BTC-0,01%

Bitcoin Core隱私漏洞

Разработчики Bitcoin Core 12 июня в X подтвердили, что в новой функции -privatebroadcast версии Bitcoin Core 31.0 есть уязвимость конфиденциальности: при определённых сетевых условиях, если не удаётся установить рукопожатие v2, соединение будет выполняться с узлами-партнёрами через IPv4 или IPv6, из-за чего получателю будет раскрываться открытый IP-адрес отправителя.

Условия, при которых затронуты пользователи: пять пунктов должны выполняться одновременно

Согласно официальному объявлению Bitcoin Core, узлы будут затронуты этой уязвимостью только при одновременном выполнении всех следующих пяти условий:

· узел работает под Bitcoin Core 31.0 и включена функция -privatebroadcast

· транзакции передаются через RPC-команду sendrawtransaction (кошелёчные RPC вроде sendtoaddress, sendall и т. п. не используют приватную рассылку, поэтому не затронуты)

Tor может устанавливать исходящие соединения

· можно напрямую установить исходящее соединение IPv4 или IPv6 (без ограничений -onlynet и без настройки -proxy=...)

· передача BIP324 v2 не отключена (не задан параметр -v2transport=0)

Соединения с узлами-партнёрами в onion и I2P не затронуты, потому что при любой повторной попытке в v1 эти соединения всегда идут через соответствующую прокси-маршрутизацию.

Технический механизм уязвимости: после сбоя v2-переноса повтор в v1 не идёт через Tor

Согласно официальному описанию, механизм срабатывания уязвимости таков: когда выбор приватной рассылки включает узлы-партнёры, поддерживающие передачу v2 (BIP324) через IPv4 или IPv6, начальное соединение должно быть установлено через Tor-прокси-маршрутизацию. Если рукопожатие v2 не удаётся, Bitcoin Core пытается повторить соединение по протоколу v1; при этом повтор в v1 выполняется не через Tor-прокси-маршрутизацию, а напрямую через IPv4 или IPv6, из-за чего раскрывается IP-адрес инициатора.

Это нарушает гарантию конфиденциальности, указанную в описании версии 31.0: «Получатель никогда не узнает их IP-адрес (а также географическое местоположение)». Разработчики подтвердили, что наиболее вероятно, что уязвимость намеренно вызывается злоумышленными узлами-партнёрами путём искусственного отключения рукопожатия v2, чтобы принудить повтор по v1.

Три временных решения: можно применять до выхода 31.1

Официально Bitcoin Core предлагает следующие три временных решения:

Вариант первый (рекомендуется): полностью отключить параметр -privatebroadcast, установив -privatebroadcast=0

Вариант второй: отключить передачу v2, задав -v2transport=0. Важно: это приведёт к тому, что все соединения узла будут использовать нешифрованный протокол v1; в открытой сети это делает узел более подверженным идентификации по отпечаткам и воздействию цензуры.

Вариант третий: маршрутизировать исходящий трафик IPv4/IPv6 в Tor, задав -proxy=127.0.0.1:9050 (замените на фактический порт Tor SOCKS). Важно: это сделает узел более уязвимым к атакам Сибил (Sybil Attack).

Частые вопросы

Затронуты ли узлы, использующие кошелёчные RPC вроде sendtoaddress или sendall?

Согласно объявлению Bitcoin Core, кошелёчные RPC (например sendtoaddress, sendall и т. п.) не используют функцию приватной рассылки, поэтому на них эта уязвимость не влияет. Уязвимость срабатывает только при широковещательной рассылке через sendrawtransaction и при выполнении остальных четырёх условий.

Может ли эта уязвимость возникнуть естественным образом без необходимости в злоумышленном узле?

Согласно официальному описанию, для узлов-партнёров, которые реально поддерживают передачу v2, рукопожатие v2 в нормальных условиях не должно часто терпеть неудачу. Наиболее вероятно, что уязвимость намеренно вызывается злоумышленными узлами-партнёрами путём искусственного отключения рукопожатия v2, чтобы принудить повтор по v1.

Каков график релиза Bitcoin Core 31.1?

Согласно объявлению Bitcoin Core, исправление будет выпущено вместе с версией 31.1, но в объявлении не указана конкретная дата релиза. Официальная рекомендация — до обновления до 31.1 использовать одно из трёх временных решений, описанных выше.

Дисклеймер: Информация на этой странице может быть получена из источников третьих сторон и предоставляется только для ознакомления. Она не отражает взгляды или мнения Gate и не является финансовой, инвестиционной или юридической рекомендацией. Торговля виртуальными активами связана с высоким риском. Пожалуйста, не основывайте свои решения исключительно на данных этой страницы. Подробнее смотрите в Дисклеймере.
комментарий
0/400
Нет комментариев