[ GUIDE / THREAT MODEL ]
Апаратні гаманці: що вони насправді захищають
Апаратний гаманець — це пристрій для підписання, а не сейф. Розуміння різниці — точне, на рівні того, що кремній гарантує, а чого ні, — відділяє людей, які користуються ним правильно, від людей, які ним володіють і все одно втрачають кошти.
Що насправді робить апаратний гаманець?
Підписувач, а не сейф
Ментальний образ, з якого починає більшість, — сховище: маленький металевий предмет, де живуть монети, замкнені від інтернету. Майже кожна частина цієї картини хибна, і саме з хибних частин походять втрати.
Ваші монети не в пристрої. Вони — записи в публічному реєстрі, видимі будь-кому. Пристрій тримає приватний ключ, що авторизує зміни цих записів. І пристрій не так зберігає цей ключ, як використовує його — виконуючи на запит одну вузьку роботу.
Апаратний гаманець — це маленький комп’ютер з однією роботою: виконати підпис секретом, який він не розкриє, і показати вам, що саме ви підписуєте, перш ніж це зробити.
Що відбувається, коли ви надсилаєте транзакцію
Зверніть увагу, що передбачає ця конструкція: ваш комп’ютер уже ворожий. Уся архітектура існує тому, що машина, яка будує транзакцію, може бути заражена. Пристрій захищає вас не від інтернету взагалі — він захищає вас від конкретного комп’ютера, до якого ви його підключаєте.
Який реальний захист дає апаратний гаманець?
Три речі, які він справді робить
Приберіть маркетинг — і цінність вузька, справжня і варта своїх грошей.
1. Він тримає ключ поза комп’ютером загального призначення
Ваш ноутбук виконує браузер, поштовий клієнт і софт десятків вендорів. Будь-що з цього може стати шляхом для шкідливого коду. Виділений пристрій, що виконує лише код підписання, має драматично меншу поверхню атаки — не через магію, а тому, що на ньому майже нічого немає.
Практичний наслідок: кейлогер на вашому ПК не ловить нічого корисного, бо ваш ключ там ніколи не вводиться.
2. Він показує, що ви насправді підписуєте
Це та частина, яку недооцінюють, і, ймовірно, найважливіша. Найлегша атака шкідливого коду — не крадіжка ключа, а підміна адреси призначення після того, як ви її скопіювали: ви авторизуєте платіж зловмиснику, поки екран показує адресу, яку ви мали на увазі.
Пристрій із власним екраном ламає цю схему, бо дисплеєм керує пристрій, а не заражений комп’ютер. Це працює, лише якщо ви справді читаєте екран. Схвалення без перевірки прибирає всю користь.
3. Він вимагає фізичної дії
Жодна транзакція не підписується без натискання кнопки на пристрої. Віддалені атакувальники, хоч як глибоко вони в вашому комп’ютері, натиснути її не можуть. Це перетворює «мій ПК скомпрометовано» з тотальної втрати на незручність.
Від чого апаратний гаманець мене не захищає?
Шість речей, яких він не робить
Більшість втрат власників апаратних гаманців потрапляє в цей список. Жодна з них не є відмовою пристрою — це випадки, де пристрій ніколи й не був відповідним захистом.
1. Він не захищає сід-фразу, яку ви розкрили
Ваша фраза відновлення відбудовує ключ без пристрою. Сфотографована, введена в телефон, збережена в хмару чи введена на сайті — і все, а пристрій у шухляді вже ні до чого. Переважна більшість повідомлень «мій апаратний гаманець зламали» зводиться саме до цього.
2. Він не завадить вам схвалити погану транзакцію
Якщо вас переконали щось підписати — шкідливе схвалення контракту, платіж на фейкову адресу, «міграцію гаманця», на яку вас умовили, — пристрій це підпише. Він спроєктований підписувати те, що ви схвалюєте. Шахрайство, яке працює через вас, повністю поза його моделлю загроз.
3. Він не захищає від втрати сіда
Втрата знищує більше крипти, ніж крадіжка. Пристрій, що помер, загубився при переїзді чи згорів, не коштує вам нічого, якщо фраза в безпеці, — і коштує всього, якщо ні.
4. Він не боронить від фізичного примусу
Той, хто має вас і ваш пристрій, має ваші кошти — якщо ви не подбали інакше: через мультипідпис із географічно розділеними ключами або прихований гаманець під пасфразою.
5. Він не приховує, що ви володієте криптою
Ви його купили — ймовірно, з іменем і адресою доставки. Цей запис існує в системах вендора, а клієнтські бази в цій індустрії витікали: в одному широко висвітленому випадку публічними стали сотні тисяч записів із телефонами й домашніми адресами, бо дані зберігалися без шифрування. Наслідок — безжальний фішинг, а зрідка ризик стає фізичним. Пристрій захищає ключі; факт володіння він не захищає.
6. Він не «100% безпечний»
Ви побачите цю заяву, іноді напряму від вендорів. Вона не буває правдою ні про що. У кожного пристрою цієї категорії були розкриті вразливості; хороші виправили їх і сказали про це. Сприймайте саму абсолютну заяву як тривожний сигнал — і будьте так само скептичні до продукту, що обіцяє максимальну безпеку та максимальну зручність, бо вони за визначенням обмінюються одна на одну.
Що вважати цінною частиною своєї системи?
Пристрій — це витратний матеріал
Якщо взяти з цього гайду одну думку — беріть цю.
Пристрій — витратний матеріал. Сід-фраза — актив.
Пристрої ламаються, губляться, знімаються з виробництва, виконують прошивку, яку перестають підтримувати, і їх роблять компанії, які не всі існуватимуть через двадцять років. Ніщо з цього не має значення. Новий пристрій відновлює ваші кошти з фрази за хвилини.
Фраза — інша річ. Її не можна замінити, перевипустити чи відновити. Це єдиний незамінний об’єкт у всій вашій системі.
Що з цього випливає
- Розподіляйте зусилля пропорційно. Люди тижнями досліджують пристрої, а потім записують фразу на картку з коробки. Це навпаки.
- Ніколи не дозволяйте сіду залежати від вендора. Стандартна фраза BIP39 відновлюється в будь-якому сумісному гаманці. Якщо ваша резервна копія працює лише з софтом однієї компанії — ця компанія тепер назавжди частина вашого шляху відновлення.
- Обирайте носій резервної копії на іншому масштабі часу. Термін служби пристрою — роки. Фраза мусить пережити десятиліття, включно з пожежею, водою, корозією і переїздами.
- Вважайте підозрілий пристрій одноразовим. Впустили, позичали, купили в непевному місці? Перемістіть кошти на нову фразу на новому пристрої. Це коштує як залізо — правильна ціна за впевненість.
Як безпечно купити і налаштувати пристрій?
Купівля та налаштування
Купівля
- Купуйте у виробника напряму, на домені, який ви ввели вручну. Маркетплейси й реселери додають людей між фабрикою і вами.
- Ніколи не купуйте вживаний і ніколи не приймайте в подарунок від когось, кому не довіряєте повністю.
- Подумайте про адресу доставки. Посилка від компанії апаратних гаманців каже кожному, хто її торкається, що всередині — і що ви, ймовірно, маєте.
Налаштування
- Згенеруйте нову фразу на пристрої. Ніколи не використовуйте фразу, що приїхала з ним. Пристрій, що прийшов преініціалізованим або з надрукованою на картці фразою, скомпрометований — це відома шахрайська схема, а не заводська зручність.
- Запишіть фразу офлайн, від руки. Без фото, без набору на клавіатурі, без хмари, без менеджера паролів.
- Не робіть картку з коробки єдиною резервною копією. Це папір, і зазвичай він підписаний великим шрифтом словами на кшталт recovery seed — що перетворює анонімний папірець на вказівник для кожного, хто його знайде. Перейдіть на щось довговічне і непідписане.
- Встановіть PIN — і розумійте, що його робота — виграти вам час у разі крадіжки пристрою, а не захистити фразу.
- Перевірте відновлення до поповнення. Зітріть пристрій і відновіться із записаної копії. Потім надішліть малу суму, потім справжню.
Чекліст для початківця
| Крок | Виконано, коли |
|---|---|
| Куплено напряму | Замовлено з введеного вручну домену виробника |
| Прибув неініціалізованим | Фразу згенерували ви самі, на пристрої |
| Фраза записана офлайн | Від руки чи пробоєм — ніколи не фото і не набір |
| Копія непідписана | Ніщо на ній не оголошує, що це |
| Копія довговічна | Переживає вогонь і воду без вас |
| PIN встановлено | Не день народження, не повторюваний |
| Відновлення перевірено | Стерто і відновлено успішно хоча б раз |
| Адреси звіряються | Ви щоразу дивитесь на екран пристрою, а не ПК |
Чому екран пристрою — найважливіший компонент?
Екран — це і є модель безпеки
Усе, що обіцяє апаратний гаманець, зводиться до однієї властивості: існує дисплей, якому можна вірити і який не контролюється вашим комп’ютером. Якщо ця властивість падає, пристрій не дає майже нічого — хоч як добре захищений ключ.
Атака, заради якої він існує
Підміна адреси — найпродуктивніша атака проти звичайних користувачів, бо не потребує криптографії. Шкідливий код чекає на криптоадресу, підміняє її в момент показу чи копіювання — і ви авторизуєте платіж на адресу, яку вважаєте своєю.
Це не теорія. У задокументованих випадках проти реальних апаратних гаманців адреса отримання генерувалася кодом на хостовому комп’ютері — тобто шкідливий код міг підмінити її до того, як користувач взагалі її побачив. Щонайменше в одному такому випадку атака не потребувала адміністративних привілеїв: файли гаманця лежали в директорії, доступній для запису користувачем, без перевірки цілісності, тож вистачало зовсім маленького скрипта. Підміна також перегенеровувала QR-код — текст і код узгоджувалися між собою і розходилися з реальністю.
Сліпе підписання
Суміжна відмова: коли пристрій не може розібрати, що його просять підписати, він може показати хеш замість зрозумілого людині опису. Схвалити таке — підписати чистий чек: довірений екран є, але показати йому нічого. Якщо пристрій має перемикач «blind signing» — вимкнений стан є безпечним типовим, а потреба його ввімкнути — сигнал, що операція заслуговує більшої уваги.
Наслідок
Якщо атакувальник отримує контроль над дисплеєм, уся модель падає — не частково, а повністю, бо кожна ваша перевірка проходить через те, що він контролює. Ось чому архітектурні питання з просунутого розділу важливі: який чип керує екраном і що доводить автентичність його коду — це не другорядні інженерні деталі. Це і є модель безпеки.
Скільки насправді доводить запечатана коробка?
Захист від втручання і походження
Між фабрикою і вашими руками пристрій проходить ланцюг постачання, якого ви не бачите. Атаки на ланцюг постачання привабливі, бо приходять раніше за кожен ваш захист: до PIN-коду, до обережного налаштування, до першої транзакції.
Що доводять пломби
Менше, ніж думають. Голографічні наліпки продаються і відтворюються. «Запечатану» плівку можна перекласти феном. Їхня реальна функція — трохи підняти вартість атаки і дати користувачам історію для перевірки, а не криптографічна гарантія.
Деякі вендори свідомо не використовують пломби, аргументуючи, що криптографічна атестація робить їх непотрібними. Це цілісна інженерна позиція — і вона переносить увесь тягар на те, чи покриває атестація весь пристрій. Це питання розібране в просунутому розділі, де історична відповідь — «менше, ніж рекламувалося».
Канал, про який майже ніхто не думає
Прочитайте політику повернень вендора. Багато хто приймає повернення протягом вікна за умови, що пакування виглядає нерозкритим, — і повертає ці одиниці на склад. Для монітора чи відеокарти це звичайна роздрібна практика. Для пристрою, що існує заради зберігання секретів, це означає: отримана вами одиниця могла два тижні пробути в чужих руках — а атакувальник, готовий купувати, модифікувати, перепаковувати і повертати пристрої, має дешевий повторюваний канал із правдоподібною віддачею, адже ці продукти непропорційно купують люди зі значними сумами.
Спитайте, що вендор робить із поверненими одиницями. Це питання з конкретною, перевірною відповіддю — і його майже ніхто не ставить.
Стійка відповідь
Ви не можете верифікувати походження. Ви можете зробити його неважливим:
- Завжди генеруйте сід самостійно після отримання. Готова фраза в коробці — найчіткіша ознака компрометації.
- Припускайте, що пристрій може бути модифікований, і тримайте сід незалежним від нього — щоб підозріла одиниця коштувала вам пристрою, а не балансу.
- Для значних сум — вендорно-різноманітний мультипідпис, щоб одного скомпрометованого ланцюга постачання було недостатньо.
- Купуйте пристрої в інший час і в іншому місці, ніж поповнюєте їх, розриваючи зв’язок між доставкою і великим депозитом.
Чи варто встановлювати оновлення прошивки?
Оновлення прошивки: необхідні й небезпечні
Оновлення виправляють справжні вразливості — включно з фізичними атаками, описаними далі в цьому гайді. Відмова оновлюватися лишає вас відкритими до відомих проблем. Але оновлення — це й момент, коли на пристрій, що тримає ваш ключ, записується новий код, і це найконцентрованіша точка ризику в нормальній експлуатації.
Існує стійкий патерн повідомлень користувачів про втрати невдовзі після оновлення. Пояснень кілька, і всі підходять: фішинг, приурочений до анонсів оновлень, фейкові запити на оновлення, збіг і зсув вибірки повідомлень — а в деяких випадках і визнані баги, коли пристрої скидалися до заводських налаштувань під час процесу. Суть не в призначенні вини. Суть у тому, що емпірично це вікно, в якому щось іде не так, — тож воно заслуговує свідомого поводження, а не рефлекторного кліку.
Як оновлюватися безпечно
- Ніколи не оновлюйтеся із запиту, що вас здивував. Закрийте його. Зайдіть на сайт вендора самі й переконайтеся, що реліз існує.
- Почекайте. Якщо оновлення не закриває щось, що активно експлуатують, дайте йому полежати тиждень-два. Проблеми швидко спливають у спільнотах.
- Верифікуйте перед встановленням. Перевірте підписи і хеші супутнього софту.
- Спершу підтвердьте резервну копію. Майте фразу під рукою і переконайтеся, що вона правильна, до початку — збій посеред оновлення може вимагати відновлення.
- Для великих сум — спершу перемістіть кошти. Переказ на інший ключ, оновлення, перевірка коректної поведінки пристрою, повернення. Нудно — і прибирає весь клас ризику.
- Після — звірте адреси знову. Переконайтеся, що пристрій виводить ті самі адреси, що й до оновлення.
Що захищає мій PIN і чим відрізняється пасфраза?
PIN, пороги стирання і плутанина з пасфразою
Що робить PIN
PIN захищає від того, хто фізично має ваш пристрій і хоче скористатися ним побіжно. Він поєднується з наростаючими затримками між спробами і, на більшості пристроїв, зі стиранням після певної кількості невдач — що безпечно саме тому, що сід ви тримаєте окремо і можете відновитися.
Чого PIN не робить — не захищає сід від атакувальника з лабораторним обладнанням. Проти цієї загрози релевантні захисти — архітектура чипа і пасфраза, а не PIN.
Пасфразу масово розуміють неправильно
Опціональна пасфраза BIP39 — «25-те слово» — по-справжньому потужна і спричиняє чи не найбільше випадкових втрат, бо два різні призначення подаються як одне.
- Додати ентропію поза словником із 2048 слів
- Зробити вкрадений сід сам по собі недостатнім
- Захист від перебору при частково відомій фразі
- Як спосіб плодити «акаунти» з одного сіда
- Плутають із PIN-кодом пристрою
- Вводять раз і ніколи не записують
Обидва використання технічно валідні — будь-яка пасфраза породжує окремий гаманець. Проблема в тому, що фреймінг змінює обережність. Користувач, який вважає, що ставить пароль пристрою, не робить резервну копію. Користувач, який розуміє, що підсилює сід, — робить.
Правило, що запобігає всім трьом: якщо ви не розумієте точно, що робить функція, — не вмикайте її. А якщо пасфразу використовуєте — поводьтеся з нею як із другим секретом, з тією ж дисципліною копій, що й сід, але зберігайте окремо: щоб жодне одне місце не видавало обох. Повний розбір — у гайді 25-те слово.
На чому записувати сід-фразу?
Носії резервних копій і проблема підписаної картки
Оскільки сід — це актив, носій, що його тримає, — справжній продукт безпеки у вашій системі. Оцінюйте його проти загроз, які працюють на масштабі десятиліть.
| Носій | Вогонь | Вода | Час | Непримітність |
|---|---|---|---|---|
| Картка вендора / папір | Ні | Ні | Погано | Ні — зазвичай підписана |
| Ламінований папір | Ні | Частково | Так собі | Залежить |
| Набивні літери на металі | Так | Так | Добре | Ні — читається |
| Пробитий бінарний код на титані | Так | Так | Відмінно | Так — не читається як текст |
| Цифрова копія будь-де | — | — | — | Дискваліфіковано |
Проблема підпису
Резервна копія, що оголошує сама себе, руйнує половину власного призначення. Картка з комплекту багатьох пристроїв надрукована з назвою бренду і фразами на кшталт recovery seed великим кеглем — іноді поруч із застереженнями нікому не показувати, — що зручно повідомляє кожному, хто її знайде: знайдено щось варте забирання.
Мета — копія, що виглядає як ніщо. Підходи бувають імпровізовані — слова, непримітно позначені у звичайному кишеньковому словнику чи зошиті для вивчення мови, що лежить серед подібних речей, а не в сейфі, — і спеціально збудовані, що зберігають слова як номери індексів чи бінарні патерни замість читабельного тексту. Злодій, що знайшов металеву картку в крапках, знайшов предмет без очевидної цінності; злодій, що знайшов картку із заголовком BITCOIN RECOVERY SEED, знайшов інструкцію.
Кілька копій, розділених
Одна копія — єдина точка відмови для речі, яку не можна замінити. Дві-три копії в справді різних місцях захищають від пожежі, потопу і втрати. Ціна — кожна копія стає ще одним місцем, де злодій може досягти успіху. Це один із найчистіших аргументів на користь мультипідпису, де жодного одного знайденого місця недостатньо.
Як знати, що моя резервна копія справді працює?
Тренування відновлення
Неперевірена резервна копія — гіпотеза. Більшість людей виявляє помилку переписування, неоднозначну літеру чи забуту пасфразу в найгірший можливий момент.
Тренування
- Занотуйте поточні адреси отримання.
- Повністю зітріть пристрій.
- Відновіться, використовуючи лише фізичну копію — не пам’ять, не нотатку в телефоні. Якщо відновлення з самої лише копії не виходить — копія провалилася, і ви дізналися це безпечно.
- Переконайтеся, що адреси збігаються і баланс з’явився.
- Якщо використовуєте пасфразу — перевірте і прихований гаманець.
Частота і обсяг
- Одразу після налаштування, до поповнення
- Щороку — і після будь-якої зміни прошивки
- Після будь-якої зміни копії, її місця чи вашої пасфрази
- Хоча б раз — у гаманці іншого вендора: це доводить, що фраза стандартна і ви не залежите від існування однієї компанії
Чекліст практика
| Практика | Стандарт |
|---|---|
| Вихідні адреси | Читаються з екрана пристрою, щоразу |
| Вхідні адреси | Підтверджені на пристрої перед кожним депозитом |
| Сліпе підписання | Вимкнене, якщо не потрібне спеціально |
| Оновлення прошивки | Ніколи з раптового запиту; з затримкою; верифіковані |
| Великі суми | Переміщені на інший ключ перед змінами прошивки |
| Пасфраза | Зрозуміла, довга, збережена окремо |
| Носій копії | Стійкий до вогню і води, непідписаний |
| Кількість копій | Дві і більше, географічно розділені |
| Тренування відновлення | Виконане за останні 12 місяців |
| Відновлення в іншого вендора | Доведене хоча б раз |
Що насправді дає Secure Element і чого він коштує?
Secure Element проти MCU загального призначення
Центральне апаратне рішення — який кремній тримає секрет. Два варіанти несуть протилежні компроміси, і індустрія сперечається про це десятиліття без сходження.
- Задокументований, широко доступний кремній
- Прошивка може бути повністю відкритою і аудійовною
- Без NDA між вендором і виробником чипів
- Мала стійкість до фізичного вилучення
- Вразливий до ін’єкції збоїв без пом’якшень
- Спеціально збудований опиратися фізичній атаці
- Сертифікований проти визначених класів атак
- Апаратні контрзаходи проти глітчингу
- Закриті, зв’язані NDA нутрощі
- Довіра переноситься на виробника чипа
Обмін не «безпека проти небезпеки»
Обмін — це від якого супротивника ви боронитеся. SE суттєво кращий проти атакувальника з вашим пристроєм і лабораторним обладнанням. Відкритий MCU кращий проти можливості нерозкритої поведінки в кремнії, який ви не можете оглянути. Вибір одного означає прийняття залишкового ризику іншого.
Індустріальний розворот
Ця напруга не академічна. Один великий вендор роками публічно пояснював, що досліджував секюр-елементи, знаходив критичні вади в кожному оглянутому і був незадоволений реакцією виробників чипів — хтось відмовлявся виправляти відоме, хтось просив не розкривати знахідки. На цій підставі він будував продукти на чипах загального призначення.
Той самий вендор тепер ставить секюр-елементи у свої поточні моделі.
Розворот може відображати справді покращений кремній — або ринок, що почав вважати «має Secure Element» вимогою до покупки незалежно від інженерного аргументу. Обидва прочитання правдоподібні. Для вашої оцінки важливий засадничий урок: архітектурні позиції, подані як принципові висновки з безпеки, можуть бути переглянуті з комерційних причин. Будуйте систему так, щоб помилка щодо архітектури будь-якого одного вендора була пережитною.
Чому важливо, який чип керує екраном?
Двочипова архітектура і атестація
Секюр-елементи збудовані для смарткарт. Вони відмінно захищають секрети і погані в усьому іншому — багато з них взагалі не вміють керувати дисплеєм чи говорити USB, спілкуючись лише повільним послідовним каналом.
Це створює інженерну проблему. Пристрою потрібні екран, кнопки і USB, а захищений чип їх дати не може. Поширене рішення — другий, звичайний мікроконтролер, що обслуговує периферію і транслює повідомлення секюр-елементу.
Де насправді проходить межа безпеки
Ключ ніколи не покидає секюр-елемент — це властивість, яку рекламують вендори. Але екран і кнопки під’єднані до іншого чипа — того, що без особливих захистів. Усе, на що ви покладаєтеся, верифікуючи транзакцію, проходить через компонент, який найлегше скомпрометувати.
Задумане виправлення — атестація: секюр-елемент викликає мікроконтролер довести, що той виконує автентичну прошивку, і відмовляється співпрацювати інакше. Коли це працює — це елегантно. Впевненість у цьому була настільки сильною, що вендори аргументували непотрібність захисного пакування, а щонайменше один публічно казав користувачам, що купувати на відкритих маркетплейсах прийнятно, бо атестація зловить модифікований пристрій.
Як це зламали
2018 року дослідник продемонстрував повний обхід на серійному пристрої. Суттєві кроки узагальнюються поза конкретним продуктом:
- Атестація порівнювала стиснутий образ пам’яті мікроконтролера. Модифіковану прошивку можна було скроїти так, щоб образ збігався, а поведінка відрізнялася.
- Зі скомпрометованим мікроконтролером атакувальник контролював дисплей і кнопки — а отже, кожне попередження, на яке покладався б користувач, включно з тим, що мало б сигналізувати про неавтентичний інтерфейс.
- Далі процес онбордингу можна було змінити так, щоб генерація сіда йшла з ентропією, примусово виставленою у фіксоване значення, — фраза виглядала звичайно і була повністю передбачувана атакувальнику.
- Секюр-елемент, задоволений підробленою атестацією, весь час нормально співпрацював.
Скомпрометуйте дисплей — і криптографію долати не треба. Досить змінити те, що кажуть користувачу.
Чому цей клас вад важко закрити
Пом’якшення, що пішли слідом, були архітектурними латками, а не редизайном: реструктурована прошивка, щоб зменшити код, який атакувальник може перевикористати, і часові обмеження, покликані не дати мікроконтролеру виконувати зайву роботу під час відповіді. Дослідник зазначив структурну складність: секюр-елемент працює на частці тактової частоти мікроконтролера — повільніший верифікатор намагається обмежити швидшого доводжувача через повільний канал. Чи можна зробити таку схему стійкою — питання по-справжньому відкрите, а не вирішене.
Чи можуть витягти мій сід із украденого пристрою?
Фізичні атаки: глітчинг і побічні канали
З фізичним володінням атакувальник більше не обмежений інтерфейсами, які задумали проєктувальники. Він може маніпулювати умовами, в яких працює чип.
Ін’єкція збоїв
Найпрактичніша техніка проти незахищених мікроконтролерів — глітчинг напруги чи тактового сигналу: навмисне збурення живлення або клоку в точно обраний момент, щоб процесор схибив. Одного пропущеного порівняння — того, що перевіряє, чи читабельна область пам’яті, — може вистачити, щоб захищена пам’ять відкрилася на частку секунди, потрібну для зчитування.
Це не екзотика. Дослідники безпеки публічно демонстрували вилучення сіда з апаратних гаманців глітчингом, на кількох моделях. Обладнання доступне за ціною, техніка добре задокументована. Вендори відповіли змістовними пом’якшеннями, а секюр-елементи містять апаратні контрзаходи саме проти цього класу атак — це найсильніший аргумент на їхню користь.
Побічні канали
Навіть без спричинення збоїв чип втрачає інформацію через споживання живлення, електромагнітне випромінювання і тайминги операцій. Ретельні виміри впродовж багатьох операцій можуть відновити ключовий матеріал чи цифри PIN, жодної перевірки не обходячи. Контрзаходи — константний час виконання, маскування, рандомізація — стандартні в секюр-елементах і часто відсутні деінде.
Що це означає для вас
Ще одна заувага про те, як ці дослідження доходять до публіки. Демонстрацію нової атаки на серійний пристрій, за одним свідченням, зробили приватною після того, як дослідники отримали від вендора винагороду. Така домовленість нормальна і загалом здорова — вона фінансує дослідження і дає вендорам час на латання. Вона також означає, що відсутність публічних демонстрацій атак — слабкий доказ їх відсутності. Виходьте з того, що опубліковані атаки — підмножина відомих.
Що може піти не так у каналі між комп’ютером і пристроєм?
Протокол між хостом і пристроєм
Пристрій і супутній застосунок обмінюються структурованими повідомленнями, зазвичай через USB. Дві властивості цього каналу заслуговують уваги.
Канал зазвичай не автентифікує того, хто викликає
У кількох конструкціях пристрій відповідає на коректно сформовані команди, не з’ясовуючи, який застосунок їх надіслав. Задуманий захист — крок схвалення користувачем: ніщо не підписується без кнопки. Саме тому довірений дисплей несе таку вагу.
Наслідок видно в задокументованому інциденті: підроблений супутній застосунок, опублікований у магазині браузерних розширень під правдоподібною назвою, надіслав пристрою інструкцію переказати кошти на адресу зловмисника — і пристрій обробив запит, як будь-який інший. Криптографія відпрацювала коректно; пристрій просто не мав способу дізнатися, що запит прийшов від ворожого застосунку, а користувач схвалив те, що йому показали.
Семантика складніша за криптографію
Тонші відмови не в підписанні, а в розумінні того, що підписується. Найчіткіший опублікований приклад стосується виходів на решту.
Коли ви витрачаєте частину UTXO, залишок повертається на адресу, яку контролює ваш гаманець. Пристрій мусить верифікувати, що вихід на решту справді ваш. Дослідники виявили, що деякі пристрої приймали транзакцію, де шлях деривації для виходу на решту був просто порожнім рядком, — і не позначали це. Атакувальник, здатний маніпулювати поданою транзакцією, міг спрямувати решту на власну адресу, поки користувач бачив і схвалював маленький, легітимний на вигляд платіж.
Користувач бачить: заплатити малу суму на відому адресу. Транзакція насправді каже: заплатити малу суму на відому адресу — і надіслати все інше атакувальнику. Той самий клас проблеми знайшли в пристроях більш ніж одного виробника, і через роки після виправлення він сплив знову.
Підписати коректно — не те саме, що зрозуміти підписане. Більшість сучасних атак цілять у другу проблему.
Підписання через повітряний розрив
Найсильніша структурна відповідь прибирає електричне з’єднання цілком. З air-gapped підписанням непідписані транзакції потрапляють на пристрій через QR-код чи знімний носій, і підписи повертаються так само. Немає USB-сесії, яку можна захопити, і немає стеку драйверів, який можна експлуатувати.
Це не розв’язує семантичну проблему — пристрій, що хибно тлумачить транзакцію, хибно тлумачить її і через QR, — але прибирає цілу категорію атак рівня з’єднання і змушує дані, що перетинають межу, бути досить малими, щоб про них можна було міркувати.
Чи робить мене безпечнішим володіння кількома пристроями?
Різноманітність вендорів і мультипідпис
Поширений і хибний інстинкт — купити кілька одиниць одного пристрою і розкласти активи між ними. Це відчувається як диверсифікація. Це не вона.
Чотири однакові пристрої ділять однакову прошивку, однаковий кремній, однаковий ланцюг постачання і однакового вендора. Вада в будь-чому з цього вражає всі чотири одночасно. Ви помножили кількість об’єктів, які треба охороняти, не зменшивши ймовірність, що одне відкриття скомпрометує все, — і створили чотири можливості фізичної крадіжки замість однієї.
Розкладання коштів між однаковими пристроями ділить вашу зручність і лишає ваш корельований ризик рівно там, де він був.
Що диверсифікує насправді
Справжня диверсифікація вимагає незалежності режимів відмови — тобто варіювання того, що може відмовити:
- Різні виробники — щоб бага прошивки, ворожого оновлення чи компрометації постачання одного вендора було недостатньо
- Різні архітектури чипів — щоб одна вада кремнію не стосувалася кожного ключа
- Різна географія — щоб пожежа, потоп, крадіжка чи вилучення сягали лише одного
- Різні джерела ентропії — щоб слабкий генератор вражав один ключ, а не всі
- Різні носії копій — щоб режим відмови одного носія не застосовувався всюди
Структура, що змушує це окупитися, — мультипідпис. У 2-із-3 на трьох виробниках атакувальник мусить скомпрометувати дві незалежні організації, а ви можете втратити будь-який один пристрій чи місце, не втративши доступ. Це єдина конструкція, в якій помилка вендора — подія, яку можна пережити, а не термінальна.
Колаборативне зберігання
Існують сервіси, що тримають один ключ у мультипідписній схемі, поки ви тримаєте решту, — допомога з відновленням без кастодіальності. Модель здорова: сервіс не може рухати кошти сам, а ви можете відновитися без сервісу. Дві речі варто перевірити, перш ніж покладатися: що ви справді можете відновитися незалежно, якщо компанія зникне, і що дескриптор ви тримаєте самі, а не залежите від їхнього софту в його відбудові.
Shamir-бекап чи пасфраза?
Shamir-бекап проти пасфрази
Обидва ділять чи підсилюють один ключ. Вони розв’язують різні проблеми і відмовляють по-різному.
| Shamir / мультичастковий | Пасфраза BIP39 | |
|---|---|---|
| Захищає від | Знаходження одного місця з копією | Знаходження самого сіда |
| Толерантність до втрат | Налаштовна — переживає втрату часток | Нульова — забули, і коштів немає |
| Переносність | Обмежена — менше реалізацій | Висока — підтримується широко |
| Правдоподібне заперечення | Ні | Так — уможливлює приховані гаманці |
| Режим відмови | Відновлюваних часток замало | Пасфразу забуто чи введено з помилкою |
Міркування, що вирішують
Shamir по-справжньому кращий для надлишковості: схема часток 2-із-3 переживає втрату місця, чого один сід не вміє. Його ціна — переносність. Підтримка вужча за BIP39, що повертає залежність від існування конкретних реалізацій — рівно ту залежність, яку стандарт сід-фраз створювався прибрати.
Пасфрази підтримуються універсально і дають справжній захист від компрометації сіда. Їхня ціна — крихкість: немає відновлення, немає надлишковості, немає толерантності до помилок. Ніщо не попередить, що ви ввели її з помилкою, — ви просто опинитеся в іншому, порожньому гаманці.
Який ризик лишається, коли все зроблено правильно?
Залишковий ризик
Робота з безпекою має закінчуватися чесним переліком того, що лишилося. Ось що лишається для добре веденої однопристрійної системи — і що потрібно, щоб закрити кожен пункт.
| Залишковий ризик | Пом’якшується |
|---|---|
| Нерозкрита поведінка закритого кремнію | Вендорно-різноманітним мультипідписом |
| Шкідливе чи скомпрометоване оновлення прошивки | Затримкою оновлень; коштами на іншому ключі; мультипідписом |
| Модифікація в ланцюзі постачання | Самостійною генерацією сіда; різноманітністю вендорів |
| Слабка ентропія при генерації | Ентропією від користувача; костями; перехресною верифікацією |
| Фізичне вилучення з украденого пристрою | Пасфразою; секюр-елементом; швидкою міграцією |
| Семантичні атаки на вміст транзакцій | Air-gapped підписанням; уважним читанням екрана |
| Знайдену копію | Непримітними носіями; географічним розділенням; мультипідписом |
| Фізичний примус | Прихованим гаманцем; розподіленим кворумом |
| Витік даних вендора про факт володіння | Після покупки не пом’якшується |
| Вашу власну помилку | Тренуваннями, документацією, простотою |
Як читати таблицю
Впадають в око дві речі. Перша: мультипідпис стоїть навпроти більшої кількості рядків, ніж будь-що інше — це структурна зміна з найбільшим важелем, бо вона перетворює довіру до вендора з вимоги на вподобання. Друга: останні два рядки не розв’язуються технологією. Витік уже стався, коли ви купили пристрій, а проти власної помилки найкраще працює система, досить проста, щоб ви оперували нею коректно в стресі, через роки — і, можливо, вже не ви.