Bitcoin Core 31.0 містить уразливість у сфері приватності: зловмисні вузли можуть примусово ініціювати розкриття IP-адреси

BTC-0,01%

Bitcoin Core隱私漏洞

Команда розробників Bitcoin Core 12 червня опублікувала допис у X, підтвердивши, що нова функція -privatebroadcast у версії Bitcoin Core 31.0 містить проблему з конфіденційністю: за певних мережевих умов, якщо v2-встановлення зв’язку (handshake) не вдається, Bitcoin Core підключатиметься до рівних (пірингових) вузлів через IPv4 або IPv6, тим самим розкриваючи стороні-отримувачу відкриту (безпосередню) IP-адресу відправника.

Умови, за яких постраждають користувачі: п’ять пунктів мають одночасно виконатися

Згідно з офіційним оголошенням Bitcoin Core, вузол зазнає впливу цього вразливості лише тоді, коли одночасно виконуються всі такі п’ять умов:

· Вузол працює під Bitcoin Core 31.0 і ввімкнено функцію -privatebroadcast

· Транзакції транслюються (ширяться) через RPC-команду sendrawtransaction (гаманецьні RPC на кшталт sendtoaddress, sendall тощо не використовують private broadcast, тож не підпадають під вплив)

Tor може встановити вихідне підключення

· Можна напряму встановити вихідне IPv4 або IPv6-з’єднання (без обмеження -onlynet і без налаштування -proxy=...)

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

Підключення до onion- та I2P-пірингових вузлів не зазнають впливу, оскільки під час будь-яких повторних спроб у рамках v1 ці підключення завжди здійснюються через відповідні проксі-маршрути.

Технічний механізм вразливості: після збою v2 повтор у режимі v1 не проходить через Tor

Згідно з офіційними поясненнями, механізм тригера вразливості такий: коли для private broadcast обирається підтримуваний v2 (BIP324) протокол передачі до IPv4 або IPv6-пірингового вузла, початкове з’єднання, як і очікується, проходить через Tor-проксі-маршрут. Якщо v2-handshake не вдається, Bitcoin Core намагатиметься повторити з’єднання за протоколом v1; при цьому повтор у режимі v1 не проходить через Tor-проксі-маршрут, а встановлюється напряму через IPv4 або IPv6-з’єднання, через що розкривається IP-адреса ініціатора.

Ця поведінка порушує конфіденційні гарантії, описані для версії 31.0: «Отримувачі ніколи не дізнаються їхню IP-адресу (а також геолокацію)». Команда розробників підтвердила, що вразливість найімовірніше штучно спричиняють, коли зловмисний піринговий вузол навмисно вимикає v2-handshake, щоб примусово викликати повтор у режимі v1.

Три тимчасові рішення: до релізу 31.1 можна застосувати одне з них

Офіційно Bitcoin Core пропонує такі три тимчасові рішення:

Рішення перше (рекомендоване): напряму вимкнути налаштування -privatebroadcast, встановивши -privatebroadcast=0

Рішення друге: вимкнути v2-передачу, встановивши -v2transport=0. Увага: це налаштування призведе до того, що всі підключення вузла використовуватимуть незашифрований протокол v1, що на відкритій мережі (в «clear net») робить вузол більш уразливим до відбитків (fingerprinting) і цензури.

Рішення третє: спрямувати вихідний трафік IPv4/IPv6 через Tor, налаштувавши -proxy=127.0.0.1:9050 (замініть порт на фактичний порт SOCKS Tor). Увага: це налаштування робить вузол більш вразливим до атак «молитвника» (Sybil Attack).

Поширені запитання

Чи постраждають вузли, які використовують гаманцеві RPC на кшталт sendtoaddress або sendall?

Згідно з офіційним оголошенням Bitcoin Core, гаманцеві RPC (наприклад, sendtoaddress, sendall тощо) не використовують private broadcast, тому цей вразливості не стосується. Вразливість спрацьовує лише під час трансляції через sendrawtransaction і лише за умови, що виконуються решта чотири умови.

Чи може ця вразливість виникнути природно без необхідності зловмисного вузла?

Згідно з офіційними поясненнями, для реальних пірингових вузлів, які підтримують v2-передачу, у звичайних умовах v2-handshake навряд чи зазнає збою. Найімовірніше вразливість штучно спричиняють, коли зловмисний піринговий вузол навмисно вимикає v2-handshake, щоб примусово викликати повтор у режимі v1.

Який графік релізу Bitcoin Core 31.1?

Згідно з офіційним оголошенням Bitcoin Core, виправлення буде доступне разом із версією 31.1, але в оголошенні не вказано конкретної дати релізу. Офіційно рекомендовано перед оновленням до 31.1 скористатися одним із трьох тимчасових рішень, описаних вище.

Застереження: інформація на цій сторінці може походити зі сторонніх джерел і надається виключно для ознайомлення. Вона не відображає позицію чи думку Gate і не є фінансовою, інвестиційною чи юридичною консультацією. Торгівля віртуальними активами пов’язана з високим ризиком. Будь ласка, не покладайтеся лише на інформацію з цієї сторінки під час прийняття рішень. Детальніше дивіться у Застереженні.
Прокоментувати
0/400
Немає коментарів