Кидання кубиків зберігає ключі bitcoin офлайн, але не всі це зроблять

iconBitcoin.com
Поділитися
AI summary iconКороткий зміст
Останні новини про bitcoin: кидання шестигранного кубика може генерувати безпечні посіви для гаманця bitcoin автономно, забезпечуючи захист від електронних вразливостей. Справедливий кубик надає приблизно 2,585 біт ентропії за кожне кидання, і 50 кидань відповідають стандарту 128 біт. Однак недавній експлойт Coldcard показує, що інші функції пристрою все ще можуть становити ризик. Дослідник безпеки Кевін Лоек зазначив, що функції, такі як створення паперового гаманця, можуть залишатися вразливими. Хоча ентропія на основі кубиків безпечна теоретично, ручний процес схильний до помилок і непрактичний для більшості нових користувачів. Новини про bitcoin підкреслюють тривалий дебат між безпекою та зручністю при генерації ключів.

Звичайний шестигранний кубик генерує приблизно 2,6 біта непередбачуваної інформації з кожним кидком. Це може здатися невеликою кількістю, але при достатній кількості повторень ці кидки можуть створити первинну випадковість, необхідну для безпеки гаманця bitcoin, без залежності від програмного забезпечення чи електронних компонентів.

Основні висновки

  • Кидання справедливої шестигранної кості забезпечує приблизно 2,585 біт ентропії за формулою Клода Шеннона.
  • Документація Coinkite стверджує, що 50 кидків кубика відповідають стандарту 128 біт для посіву гаманця bitcoin.
  • Аналіз Кевіна Лоека Wizard Sardine виявив ризик у інструментах Coldcard, крім основного семені.

Чому кидання кубика так важко передбачити

Клод Шеннон, математик, який заклав основи теорії інформації, використовував ентропію для вимірювання ступеня невизначеності результату. При справедливому шестигранному кубику кожна грань має однакову ймовірність випадання — одну шосту. Це дає кожному кидку приблизно 2,585 біта ентропії. Підкидання монети дає 1 біт, а восьмигранний кубик — 3 біти.

Зображення різнокольорових кубиків

Недавній скандал із Coldcard спровокував поширення генерації посівів на основі кубиків у соціальних мережах. Деякі користувачі вважають це обов’язковим, інші стверджують, що це захистило їхні кошти, тоді як досвідчені оператори зазначають, що більшість новачків не зможуть терпіти повільний та схильний до помилок процес налаштування.

Важливо не те, що кубик, який котиться, веде себе випадково на атомному рівні. Це не так. Результат визначається фізикою, але занадто багато малих змінних змінюються одночасно, щоб хтось міг надійно розрахувати результат. Кубик залишає руку з певною швидкістю, кутом, висотою та обертанням, потім вдаряється об стіл і змінює напрямок з кожним відскоком.

На практиці навіть найменша зміна випуску може призвести до абсолютно іншого результату. Трохи інша позиція пальця або трохи сильніший кидок змінює траєкторію настільки, що кінцеве число не можна передбачити, спостерігаючи за рухом. Результат може бути детермінованим у теорії, але для генерації гаманця важливо, щоб зловмисник не міг його відтворити або розрахувати.

Перетворення кидків кубиків у корисні дані

Комп'ютер не може безпосередньо використовувати список результатів кидків кубиків. Спочатку результати кидків потрібно перетворити на двійкові дані, і метод перетворення має значення.

Простий метод парності-непарності легко зрозуміти, але він марно витрачає велику частину доступної ентропії. Кожен кидок зводиться до одного біта, хоча кубик генерує приблизно 2,6 біта інформації. Більш ефективні методи збирають довгу послідовність кидків і обробляють весь рядок, зазвичай за допомогою криптографічної хеш-функції. Це зберігає значно більше випадковості.

Той самий принцип застосовується в Diceware — довгий час використовуваному методі створення безпечних паролів — а також при ручному створенні bitcoin-гаманців. Типовий відновлювальний фраза з 12 слів побудована з 128 бітів ентропії. Приблизно по 2,6 біта на кидок, близько 50 справедливих кидків надають достатньо сирої інформації, щоб перетнути цей поріг.

Coinkite, виробник апаратного гаманця Coldcard, рекомендує 99 або більше рулонів користувачам, які шукають майже 256 біт ентропії. Це не робить гаманець у два рази складнішим у використанні, але надає згенерованому секрету значно більший математичний запас безпеки.

Реальний тест насіння, згенерованого за допомогою кубиків

Ця відмінність стала важливою після того, як Coinkite розкрила проблему з прошивкою, яка сягає 2021 року. На деяких пристроях Coldcard програмне забезпечення могло пропускати внутрішній апаратний генератор випадкових чисел і замість цього використовувати слабший процес, пов’язаний з несекретною інформацією пристрою.

Оскільки частини цього процесу можна було відновити, зловмисникам вдалося скоротити можливі ключі гаманця, а не шукати в усьому просторі ключів. Цей недолік пов’язували з крадіжкою приблизно 1 128,6633 BTC з близько 1100 адрес, станом на 13:00 за східним часом.

X скріншот
Джерело зображення: X

Сіди гаманців, створені виключно з достатньої кількості незалежних кидків кубиків, не були виставлені через той самий шлях. Ці користувачі надали власну ентропію, тому несправний апаратний генератор не був відповідальний за створення основного секрету гаманця.

Ця захистна міра, однак, поширювалася лише на ключове слово, створене за допомогою кубиків. Вона не захищала автоматично всі інші секрети, згенеровані пристроєм.

Wizard Sardine перевіряє дрібний шрифт

Дослідник безпеки Кевін Лоак опублікував оцінку експлойту Coldcard на вебсайті Wizard Sardine 1 серпня. Його найважливішим спостереженням було те, що функції Coldcard генерували власні секрети окремо від основного посіву гаманця.

«Я вважаю надзвичайно важливим підкреслити, що навіть користувачі, які імпортували або згенерували seed за допомогою кубиків, вразливі, якщо вони використовують такі функції», — написав Loaec на X, перш ніж представив діаграму вразливої системи.

Діаграма показує пошкоджений генератор випадкових чисел, який живить кілька додаткових функцій Coldcard. До них належать створення паперового гаманця, клонування пристрою, шифрування сеансу USB, функція переказу Secret Teleport, створення ключів для спільного підпису, вбудований генератор паролів та коди аутентифікації модуля апаратної безпеки.

X знімок екрана
Джерело зображення: пост у X від дослідника безпеки Кевіна Лоека.

Основний гаманець, створений за допомогою 99 кидків кубиків, залишився в окремій частині системи. Проблема полягала в тому, що інші інструменти все ще могли запитувати нову випадковість з несправного генератора. Як наслідок, безпечний посів не гарантував, що кожен пароль, резервна копія, код автентифікації або вторинний ключ, створений на тому ж пристрої, був так само безпечним.

Чому більшість нових користувачів не будуть кидати кубики

Ентропія, згенерована за допомогою кидання кубика, технічно надійна, якщо виконано правильно, але це не реалістичний стандартний варіант для більшості нових користувачів. Кидання кубика 50 або 99 разів, точне введення кожного результату та підтвердження, що жоден кидок не був пропущений або продубльований, вимагає терпіння та великої концентрації. Один неправильно введений номер може повністю змінити фінальний гаманець, і більшість пристроїв не можуть визначити, чи помилка виникла через поганий кидок, помилку введення чи непорозуміння інструкцій.

X скріншот
Джерело зображення: X

Цей процес також вводить ризики, яких не існує при належно працюючому апаратному генераторі. Користувачі можуть записувати кидки на папері, фотографувати їх, вводити їх у онлайн-інструмент або залишати список у місці, де його може знайти інша особа. Деякі люди кидають кубик повторюваним або контролюваним способом, використовують підігнаний або пошкоджений кубик або зупиняються рано, оскільки процес виглядає надмірним. Математика може бути міцною, але результат є лише настільки безпечним, наскільки безпечна процедура користувача.

X знімок екрана
Джерело зображення: X

Тому кидання кубиків не завжди вважається найкращим методом для багатьох людей, навіть серед досвідчених користувачів bitcoin. Він замінює довіру до пристрою довірою до ручного процесу. Для технічно уважного користувача, який розуміє ентропію, перевіряє метод і зберігає послідовність кидків у таємниці, цей компроміс може мати сенс. Для звичайного покупця, який вперше налаштовує гаманець, це додає кілька можливостей припуститися постійної помилки, одночасно буваючи дуже неприємним процесом.

X знімок екрана
Джерело зображення: X

Також важко уявити широке прийняття bitcoin, яке залежить від людей, які сидять за столом і записують 99 результатів кидання кубиків, перш ніж отримають кошти безпечно. Практики безпеки мають витримувати реальні домашні умови, щільний графік, відволікання та користувачів, які не хочуть вивчати криптографію. Ручне джерело ентропії має залишатися доступним як розширена опція, але довгострокова мета — це апаратне та програмне забезпечення, яке правильно генерує сильну випадковість, чітко пояснює, що відбувається, і вимагає якомога менше спеціальних знань.

Що повинні перевірити власники Coldcard

Власники вплинутих пристроїв Coldcard спочатку повинні перевірити версію прошивки, встановленої на пристрої. Потім вони повинні проаналізувати, які функції вони використовували під час роботи зі старішою прошивкою, а не зосереджуватися лише на тому, як була створена основна ключова фраза гаманця.

Будь-хто, хто використовував уражений пристрій для генерації паперового гаманця, клонування секрету, пароля, ключа співпідпису або коду автентифікації, може мати потребу негайно замінити ці дані. Встановлення оновлення запобігає виникненню тієї ж проблеми з новими секретами, але не відновлює нічого, створеного раніше.

Цей інцидент також надає більш сильного практичного обґрунтування використанню багатопостачальницьких гаманців. У багатопідписовій схемі може вимагатися схвалення транзакції окремими апаратними пристроями від різних виробників. Така структура не робить помилки в прошивці неможливими, але може запобігти тому, щоб один несправний генератор випадкових чисел сам по собі відкрив весь гаманець.

Відмова від відповідальності: Інформація на цій сторінці може бути отримана від третіх осіб і не обов'язково відображає погляди або думки KuCoin. Цей контент надається лише для загального інформування, без будь-яких запевнень або гарантій, а також не може розглядатися як фінансова або інвестиційна порада. KuCoin не несе відповідальності за будь-які помилки або упущення, а також за будь-які результати, отримані в результаті використання цієї інформації. Інвестиції в цифрові активи можуть бути ризикованими. Будь ласка, ретельно оцініть ризики продукту та свою толерантність до ризику, виходячи з ваших власних фінансових обставин. Для отримання додаткової інформації, будь ласка, зверніться до наших Умов використання та Розкриття інформації про ризики.