149 / 736AIRGAP

Air-gapped Wallet

Гаманець, що підписує поза онлайн-комп’ютером

Комп’ютер готує платіж, а окремий пристрій його підписує. Що дає таке розділення, що передають QR-коди й чому екран усе одно треба перевіряти.

Air-gapped Wallet підписує платежі на пристрої, відокремленому від звичайного мережевого зв’язку з онлайн-комп’ютером або телефоном. Приватні ключі мають залишатися в цьому середовищі; проєкти платежів і підписи переносять контрольованим способом, наприклад QR-кодом чи карткою пам’яті.

Гаманець — це застосунок або пристрій для отримання й надсилання біткоїнів. Анна користується ноутбуком для інтернету. Вона не хоче зберігати на ньому ще й приватні ключі: секретні дані, якими створюють підписи для витрачання bitcoin. Тому розподіляє роботу. Програма на ноутбуці відстежує платежі й готує нові; це координатор. Окремий пристрій перевіряє пропозицію та підписує після згоди Анни; це пристрій підписування, або signer. Так може працювати Hardware Wallet, апаратний гаманець. Air gap описує насамперед розділення та передавання даних, а не автоматичну властивість кожного апаратного гаманця. Тимчасово вимкнути Wi-Fi на звичайному ноутбуці недостатньо: важливі інші з’єднання, програми й те, чи підключиться він знову із секретами всередині. [3] [5]

Анна вводить одержувача й суму в координаторі. Він створює PSBT — пакет із проєктом транзакції та даними для підписування. До них належать відомості про UTXO, ще не витрачені виходи попередніх платежів. Це окремі суми, на які посилаються входи нової транзакції. Анна переносить пакет до пристрою, наприклад скануванням QR-коду. Пристрій опрацьовує підтримувані дані й після перевірки та схвалення додає підпис. Результат повертається на ноутбук. Лише коли виконано потрібні умови підписування, можна зібрати готову транзакцію та передати її в мережу. Це ще не підтвердження в блоці. Блок — це група транзакцій, які разом записують до публічної історії Bitcoin. Цим шляхом ідуть проєкт і підпис, а не секретний ключ чи резервна копія гаманця. [1] [6]

Уявімо вхід 100000 sat. Sat — найменша одиниця bitcoin. Анна хоче надіслати 60000 sat, повернути собі 39000 sat і залишити 1000 sat на комісію. Повернення має окремий вихід — Change Output. Пристрій повинен перевірити його за правильними ключами та конфігурацією гаманця; позначки «решта» від ноутбука недостатньо. Анна також звіряє повну адресу одержувача, суму й комісію на надійному екрані пристрою зі своїм наміром. Заражений ноутбук може підставити чужу адресу й водночас бездоганно порахувати суми. Якщо Анна погодиться, саме розділення пристроїв не захистить її кошти. [1] [4]

QR-код подає дані зображенням, але не засвідчує їхньої безпеки. Великий пакет можна передати послідовністю зображень у форматі BBQr або UR; обидва пристрої мають його розуміти. Програми читання зображення та PSBT можуть мати помилки, як будь-яке програмне забезпечення. Особливо важливо відрізняти QR транзакції від SeedQR. SeedQR містить резервну копію секретних даних, а не проєкт платежу. Тому його не слід показувати камері онлайн-ноутбука чи телефона. Чи можна вивести код з ізольованого середовища, визначають його вміст і призначення, а не схожість з іншими квадратиками. [2] [4]

Інший спосіб використовує MicroSD: Анна записує PSBT на картку, вставляє її в пристрій підписування та переносить результат назад. Мережевий кабель не потрібний, але пристрій усе одно читає зовнішній файл. Безпека залежить від програми обробки, контролера й файлової системи — компонентів, що читають та впорядковують дані. Окрема картка допомагає підтримувати порядок, але не гарантує нешкідливого вмісту. Живлення теж треба оцінити. USB може передавати струм і дані. Якщо він потрібен лише для живлення, активного шляху даних справді не повинно бути. Сам напис «заряджання» цього не доводить. [2] [3]

COLDCARD зараховує до своїх air-gap методів також NFC. Це радіозв’язок малого радіуса дії; QR передає зображення, а MicroSD — файл на фізичному носії. Ототожнювати ці канали неправильно. Якщо ваша вимога — виключити радіозв’язок, увімкнений NFC їй не відповідає. Для конкретного пристрою корисніше з’ясувати, який канал активний, коли він вмикається та що ним може пройти, ніж покладатися на слово air-gapped. Постійне передавання даних через USB має іншу межу, ніж ручне перенесення файлу. [2]

Координатор може працювати в режимі watch-only: спостерігати за гаманцем, але не підписувати платежі самостійно. Для цього слугує xpub, розширений публічний ключ для виведення інших публічних ключів, або публічний Descriptor, опис ключів і правил утворення адрес. Самі ці дані не дозволяють витрачати кошти, проте можуть пов’язати адреси й платежі з одним гаманцем. PSBT також може містити публічні ключі, шляхи їх виведення та дані UTXO. У Multisig, де платіж дозволяють кілька ключів за заданим правилом, правильна конфігурація всіх учасників важлива для відновлення й перевірки решти. Ізоляція пристрою підписування не робить ноутбук анонімним, а його мережеві запити — приватними. [1] [4]

Анні все одно потрібні надійно збережена Seed Phrase, резервна копія у словах, та інші дані, яких вимагає гаманець. SeedSigner завантажує секрети тимчасово: після вимкнення не можна покладатися на його пам’ять як на резервну копію. Air gap не замінює надійної прошивки, тобто програми всередині пристрою, чи перевірки платежу. Secure Element захищає іншу ділянку, ускладнюючи певні атаки на чип. Cold Storage означає зберігання ключів поза онлайн-середовищем; air gap описує роботу з окремим підписуванням. Перш ніж довірити такому порядку значні заощадження, варто відпрацювати перенесення, перевірку та відновлення з окремими тестовими ключами. Мета — розуміти кожний крок, а не просто мати більше пристроїв на столі. [3] [4]

Для повної картини прочитайте також Hardware Wallet, PSBT, Cold Storage, Seed Phrase, Output Descriptor, Multisig. На цю статтю також посилаються Cold Storage, Secure Element, SeedQR, BBQr.

DOC · 001BIP 174 — Partially Signed Bitcoin Transaction FormatСпецифікація DOC · 002COLDCARD — Bitcoin Air-Gap Signing MethodsДокументація DOC · 003SeedSigner — Frequently Asked QuestionsПервинне джерело DOC · 004SeedSigner — Independent Custody GuideДокументація DOC · 005Bitcoin Developer Guide — WalletsДокументація DOC · 006Bitcoin Developer Guide — Block ChainДокументація
Переглянуто: Спочатку джерела · Не інвестиційна порада