Апаратні гаманці: що вони насправді захищають

[ GUIDE / THREAT MODEL ]

Апаратні гаманці: що вони насправді захищають

19 хв читання · Гайд 10 з 10

Апаратний гаманець — це пристрій для підписання, а не сейф. Розуміння різниці — точне, на рівні того, що кремній гарантує, а чого ні, — відділяє людей, які користуються ним правильно, від людей, які ним володіють і все одно втрачають кошти.

Що насправді робить апаратний гаманець?

Підписувач, а не сейф

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

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

Апаратний гаманець — це маленький комп’ютер з однією роботою: виконати підпис секретом, який він не розкриє, і показати вам, що саме ви підписуєте, перш ніж це зробити.

Що відбувається, коли ви надсилаєте транзакцію

1
Комп’ютер будує
Непідписана транзакція збирається на ПК
2
Пристрій показує
Суму й адресата на власному екрані
3
Ви схвалюєте
Фізична кнопка — віддалено не натиснути
4
Пристрій підписує
Підпис виходить; ключ — ніколи

Зверніть увагу, що передбачає ця конструкція: ваш комп’ютер уже ворожий. Уся архітектура існує тому, що машина, яка будує транзакцію, може бути заражена. Пристрій захищає вас не від інтернету взагалі — він захищає вас від конкретного комп’ютера, до якого ви його підключаєте.

Чому це формулювання важливе Якщо думати про нього як про сейф, ви припустите, що пристрій захищає монети, і на цьому зупинитесь. Якщо думати як про підписувач — правильні питання виникають самі: що він мені показує, чи можна вірити показаному, і що буде, якщо він зламається?

Який реальний захист дає апаратний гаманець?

Три речі, які він справді робить

Приберіть маркетинг — і цінність вузька, справжня і варта своїх грошей.

1. Він тримає ключ поза комп’ютером загального призначення

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

Практичний наслідок: кейлогер на вашому ПК не ловить нічого корисного, бо ваш ключ там ніколи не вводиться.

2. Він показує, що ви насправді підписуєте

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

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

3. Він вимагає фізичної дії

Жодна транзакція не підписується без натискання кнопки на пристрої. Віддалені атакувальники, хоч як глибоко вони в вашому комп’ютері, натиснути її не можуть. Це перетворює «мій ПК скомпрометовано» з тотальної втрати на незручність.

Чесний підсумок Апаратний гаманець переводить один конкретний ризик — скомпрометований повсякденний комп’ютер — з катастрофічного в керований. Це по-справжньому велике покращення і добра причина ним володіти. Це також уся його користь.

Від чого апаратний гаманець мене не захищає?

Шість речей, яких він не робить

Більшість втрат власників апаратних гаманців потрапляє в цей список. Жодна з них не є відмовою пристрою — це випадки, де пристрій ніколи й не був відповідним захистом.

1. Він не захищає сід-фразу, яку ви розкрили

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

2. Він не завадить вам схвалити погану транзакцію

Якщо вас переконали щось підписати — шкідливе схвалення контракту, платіж на фейкову адресу, «міграцію гаманця», на яку вас умовили, — пристрій це підпише. Він спроєктований підписувати те, що ви схвалюєте. Шахрайство, яке працює через вас, повністю поза його моделлю загроз.

3. Він не захищає від втрати сіда

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

4. Він не боронить від фізичного примусу

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

5. Він не приховує, що ви володієте криптою

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

6. Він не «100% безпечний»

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

Патерн, який треба впізнати П’ять із шести пунктів — про сід-фразу, людське судження або дані, які не можна «розповісти назад». Пристрій не вирішує жодного з них. Краще залізо — не відповідь на жоден пункт цього списку. Саме тому наступний розділ — найважливіший у гайді.

Що вважати цінною частиною своєї системи?

Пристрій — це витратний матеріал

Якщо взяти з цього гайду одну думку — беріть цю.

Пристрій — витратний матеріал. Сід-фраза — актив.

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

Фраза — інша річ. Її не можна замінити, перевипустити чи відновити. Це єдиний незамінний об’єкт у всій вашій системі.

Що з цього випливає

  • Розподіляйте зусилля пропорційно. Люди тижнями досліджують пристрої, а потім записують фразу на картку з коробки. Це навпаки.
  • Ніколи не дозволяйте сіду залежати від вендора. Стандартна фраза BIP39 відновлюється в будь-якому сумісному гаманці. Якщо ваша резервна копія працює лише з софтом однієї компанії — ця компанія тепер назавжди частина вашого шляху відновлення.
  • Обирайте носій резервної копії на іншому масштабі часу. Термін служби пристрою — роки. Фраза мусить пережити десятиліття, включно з пожежею, водою, корозією і переїздами.
  • Вважайте підозрілий пристрій одноразовим. Впустили, позичали, купили в непевному місці? Перемістіть кошти на нову фразу на новому пристрої. Це коштує як залізо — правильна ціна за впевненість.
Де тут PENGER Це і є логіка всього продукту PENGER: титан переживає те, чого не переживає папір, слова записані вашою рукою без участі софту, і зберігаються вони як бінарні патерни з крапок, а не читабельний текст — тож знайдена кимось пластина не оголошує, що вона таке. Пластина навмисно не є гаманцем — це довговічна половина системи, іншу половину якої ви й маєте очікувано міняти.

Як безпечно купити і налаштувати пристрій?

Купівля та налаштування

Купівля

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

Налаштування

  1. Згенеруйте нову фразу на пристрої. Ніколи не використовуйте фразу, що приїхала з ним. Пристрій, що прийшов преініціалізованим або з надрукованою на картці фразою, скомпрометований — це відома шахрайська схема, а не заводська зручність.
  2. Запишіть фразу офлайн, від руки. Без фото, без набору на клавіатурі, без хмари, без менеджера паролів.
  3. Не робіть картку з коробки єдиною резервною копією. Це папір, і зазвичай він підписаний великим шрифтом словами на кшталт recovery seed — що перетворює анонімний папірець на вказівник для кожного, хто його знайде. Перейдіть на щось довговічне і непідписане.
  4. Встановіть PIN — і розумійте, що його робота — виграти вам час у разі крадіжки пристрою, а не захистити фразу.
  5. Перевірте відновлення до поповнення. Зітріть пристрій і відновіться із записаної копії. Потім надішліть малу суму, потім справжню.
Тут не пропускати нічого Тест відновлення — крок, який люди оминають, і саме він ловить помилки переписування, нерозбірливий почерк і неправильно зрозумілі інструкції — поки ці помилки ще безплатно виправити.

Чекліст для початківця

КрокВиконано, коли
Куплено напрямуЗамовлено з введеного вручну домену виробника
Прибув неініціалізованимФразу згенерували ви самі, на пристрої
Фраза записана офлайнВід руки чи пробоєм — ніколи не фото і не набір
Копія непідписанаНіщо на ній не оголошує, що це
Копія довговічнаПереживає вогонь і воду без вас
PIN встановленоНе день народження, не повторюваний
Відновлення перевіреноСтерто і відновлено успішно хоча б раз
Адреси звіряютьсяВи щоразу дивитесь на екран пристрою, а не ПК

Чому екран пристрою — найважливіший компонент?

Екран — це і є модель безпеки

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

Атака, заради якої він існує

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

Це не теорія. У задокументованих випадках проти реальних апаратних гаманців адреса отримання генерувалася кодом на хостовому комп’ютері — тобто шкідливий код міг підмінити її до того, як користувач взагалі її побачив. Щонайменше в одному такому випадку атака не потребувала адміністративних привілеїв: файли гаманця лежали в директорії, доступній для запису користувачем, без перевірки цілісності, тож вистачало зовсім маленького скрипта. Підміна також перегенеровувала QR-код — текст і код узгоджувалися між собою і розходилися з реальністю.

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

Сліпе підписання

Суміжна відмова: коли пристрій не може розібрати, що його просять підписати, він може показати хеш замість зрозумілого людині опису. Схвалити таке — підписати чистий чек: довірений екран є, але показати йому нічого. Якщо пристрій має перемикач «blind signing» — вимкнений стан є безпечним типовим, а потреба його ввімкнути — сигнал, що операція заслуговує більшої уваги.

Наслідок

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

Скільки насправді доводить запечатана коробка?

Захист від втручання і походження

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

Що доводять пломби

Менше, ніж думають. Голографічні наліпки продаються і відтворюються. «Запечатану» плівку можна перекласти феном. Їхня реальна функція — трохи підняти вартість атаки і дати користувачам історію для перевірки, а не криптографічна гарантія.

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

Канал, про який майже ніхто не думає

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

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

Стійка відповідь

Ви не можете верифікувати походження. Ви можете зробити його неважливим:

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

Чи варто встановлювати оновлення прошивки?

Оновлення прошивки: необхідні й небезпечні

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

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

Як оновлюватися безпечно

  1. Ніколи не оновлюйтеся із запиту, що вас здивував. Закрийте його. Зайдіть на сайт вендора самі й переконайтеся, що реліз існує.
  2. Почекайте. Якщо оновлення не закриває щось, що активно експлуатують, дайте йому полежати тиждень-два. Проблеми швидко спливають у спільнотах.
  3. Верифікуйте перед встановленням. Перевірте підписи і хеші супутнього софту.
  4. Спершу підтвердьте резервну копію. Майте фразу під рукою і переконайтеся, що вона правильна, до початку — збій посеред оновлення може вимагати відновлення.
  5. Для великих сум — спершу перемістіть кошти. Переказ на інший ключ, оновлення, перевірка коректної поведінки пристрою, повернення. Нудно — і прибирає весь клас ризику.
  6. Після — звірте адреси знову. Переконайтеся, що пристрій виводить ті самі адреси, що й до оновлення.
Ніколи не вводьте фразу в комп’ютер Жодне легітимне оновлення прошивки не вимагає ввести фразу відновлення на сайті, у листі чи в десктопному застосунку. Ні для верифікації, ні для міграції, ні для підтримки. Це константа майже кожної крадіжки з апаратних гаманців, що не була атакою на ланцюг постачання. Якщо щось просить — це і є атака, хоч як офіційно воно виглядає.

Що захищає мій PIN і чим відрізняється пасфраза?

PIN, пороги стирання і плутанина з пасфразою

Що робить PIN

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

Чого PIN не робить — не захищає сід від атакувальника з лабораторним обладнанням. Проти цієї загрози релевантні захисти — архітектура чипа і пасфраза, а не PIN.

Пасфразу масово розуміють неправильно

Опціональна пасфраза BIP39 — «25-те слово» — по-справжньому потужна і спричиняє чи не найбільше випадкових втрат, бо два різні призначення подаються як одне.

Для чого вона
  • Додати ентропію поза словником із 2048 слів
  • Зробити вкрадений сід сам по собі недостатнім
  • Захист від перебору при частково відомій фразі
Як її використовують
  • Як спосіб плодити «акаунти» з одного сіда
  • Плутають із PIN-кодом пристрою
  • Вводять раз і ніколи не записують

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

Три режими відмови, всі задокументовані Без копії: люди ставили пасфразу під час оновлення, вважаючи її локальним PIN-кодом пристрою, а потім виявляли, що кошти недосяжні. Закоротка: пасфраза менш ніж приблизно з чотирнадцяти символів дає значно менше, ніж здається, щойно атакувальник має сід. Невідтворювана: один користувач ввів пасфразу на незнайомій розкладці клавіатури і так і не зміг відтворити точний рядок — кошти застрягли назавжди при повністю цілому сіді.

Правило, що запобігає всім трьом: якщо ви не розумієте точно, що робить функція, — не вмикайте її. А якщо пасфразу використовуєте — поводьтеся з нею як із другим секретом, з тією ж дисципліною копій, що й сід, але зберігайте окремо: щоб жодне одне місце не видавало обох. Повний розбір — у гайді 25-те слово.

На чому записувати сід-фразу?

Носії резервних копій і проблема підписаної картки

Оскільки сід — це актив, носій, що його тримає, — справжній продукт безпеки у вашій системі. Оцінюйте його проти загроз, які працюють на масштабі десятиліть.

НосійВогоньВодаЧасНепримітність
Картка вендора / папірНіНіПоганоНі — зазвичай підписана
Ламінований папірНіЧастковоТак собіЗалежить
Набивні літери на металіТакТакДобреНі — читається
Пробитий бінарний код на титаніТакТакВідмінноТак — не читається як текст
Цифрова копія будь-деДискваліфіковано

Проблема підпису

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

Мета — копія, що виглядає як ніщо. Підходи бувають імпровізовані — слова, непримітно позначені у звичайному кишеньковому словнику чи зошиті для вивчення мови, що лежить серед подібних речей, а не в сейфі, — і спеціально збудовані, що зберігають слова як номери індексів чи бінарні патерни замість читабельного тексту. Злодій, що знайшов металеву картку в крапках, знайшов предмет без очевидної цінності; злодій, що знайшов картку із заголовком BITCOIN RECOVERY SEED, знайшов інструкцію.

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

Кілька копій, розділених

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

Як знати, що моя резервна копія справді працює?

Тренування відновлення

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

Тренування

  1. Занотуйте поточні адреси отримання.
  2. Повністю зітріть пристрій.
  3. Відновіться, використовуючи лише фізичну копію — не пам’ять, не нотатку в телефоні. Якщо відновлення з самої лише копії не виходить — копія провалилася, і ви дізналися це безпечно.
  4. Переконайтеся, що адреси збігаються і баланс з’явився.
  5. Якщо використовуєте пасфразу — перевірте і прихований гаманець.

Частота і обсяг

  • Одразу після налаштування, до поповнення
  • Щороку — і після будь-якої зміни прошивки
  • Після будь-якої зміни копії, її місця чи вашої пасфрази
  • Хоча б раз — у гаманці іншого вендора: це доводить, що фраза стандартна і ви не залежите від існування однієї компанії
Залучіть спадкоємців Копія, якою можете скористатися лише ви, — копія, що відмовляє в день, коли потрібна найбільше. Хоч який план спадщини ви оберете — хтось, окрім вас, має вміти його виконати. І має потренуватися, на малій сумі, поки ви поруч і можете відповісти на питання.

Чекліст практика

ПрактикаСтандарт
Вихідні адресиЧитаються з екрана пристрою, щоразу
Вхідні адресиПідтверджені на пристрої перед кожним депозитом
Сліпе підписанняВимкнене, якщо не потрібне спеціально
Оновлення прошивкиНіколи з раптового запиту; з затримкою; верифіковані
Великі сумиПереміщені на інший ключ перед змінами прошивки
ПасфразаЗрозуміла, довга, збережена окремо
Носій копіїСтійкий до вогню і води, непідписаний
Кількість копійДві і більше, географічно розділені
Тренування відновленняВиконане за останні 12 місяців
Відновлення в іншого вендораДоведене хоча б раз

Що насправді дає Secure Element і чого він коштує?

Secure Element проти MCU загального призначення

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

MCU загального призначення
  • Задокументований, широко доступний кремній
  • Прошивка може бути повністю відкритою і аудійовною
  • Без NDA між вендором і виробником чипів
  • Мала стійкість до фізичного вилучення
  • Вразливий до ін’єкції збоїв без пом’якшень
Secure Element
  • Спеціально збудований опиратися фізичній атаці
  • Сертифікований проти визначених класів атак
  • Апаратні контрзаходи проти глітчингу
  • Закриті, зв’язані NDA нутрощі
  • Довіра переноситься на виробника чипа

Обмін не «безпека проти небезпеки»

Обмін — це від якого супротивника ви боронитеся. SE суттєво кращий проти атакувальника з вашим пристроєм і лабораторним обладнанням. Відкритий MCU кращий проти можливості нерозкритої поведінки в кремнії, який ви не можете оглянути. Вибір одного означає прийняття залишкового ризику іншого.

Індустріальний розворот

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

Той самий вендор тепер ставить секюр-елементи у свої поточні моделі.

Розворот може відображати справді покращений кремній — або ринок, що почав вважати «має Secure Element» вимогою до покупки незалежно від інженерного аргументу. Обидва прочитання правдоподібні. Для вашої оцінки важливий засадничий урок: архітектурні позиції, подані як принципові висновки з безпеки, можуть бути переглянуті з комерційних причин. Будуйте систему так, щоб помилка щодо архітектури будь-якого одного вендора була пережитною.

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

Чому важливо, який чип керує екраном?

Двочипова архітектура і атестація

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

Це створює інженерну проблему. Пристрою потрібні екран, кнопки і USB, а захищений чип їх дати не може. Поширене рішення — другий, звичайний мікроконтролер, що обслуговує периферію і транслює повідомлення секюр-елементу.

Де насправді проходить межа безпеки

Ключ ніколи не покидає секюр-елемент — це властивість, яку рекламують вендори. Але екран і кнопки під’єднані до іншого чипа — того, що без особливих захистів. Усе, на що ви покладаєтеся, верифікуючи транзакцію, проходить через компонент, який найлегше скомпрометувати.

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

Як це зламали

2018 року дослідник продемонстрував повний обхід на серійному пристрої. Суттєві кроки узагальнюються поза конкретним продуктом:

  1. Атестація порівнювала стиснутий образ пам’яті мікроконтролера. Модифіковану прошивку можна було скроїти так, щоб образ збігався, а поведінка відрізнялася.
  2. Зі скомпрометованим мікроконтролером атакувальник контролював дисплей і кнопки — а отже, кожне попередження, на яке покладався б користувач, включно з тим, що мало б сигналізувати про неавтентичний інтерфейс.
  3. Далі процес онбордингу можна було змінити так, щоб генерація сіда йшла з ентропією, примусово виставленою у фіксоване значення, — фраза виглядала звичайно і була повністю передбачувана атакувальнику.
  4. Секюр-елемент, задоволений підробленою атестацією, весь час нормально співпрацював.

Скомпрометуйте дисплей — і криптографію долати не треба. Досить змінити те, що кажуть користувачу.

Чому цей клас вад важко закрити

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

Питання, які варто поставити вендору Чи покриває атестація код, що керує дисплеєм, чи лише код, що тримає ключ? Чи можна замінити шар інтерфейсу модифікованою збіркою — і якщо так, що заважає цій збірці приховати попередження про саму себе? Чи верифіковний сам завантажувач, що все це стартує, і ким? Вендори, які відповідають конкретно, демонструють щось справжнє; вендори, які відповідають логотипами сертифікацій, — ні.

Чи можуть витягти мій сід із украденого пристрою?

Фізичні атаки: глітчинг і побічні канали

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

Ін’єкція збоїв

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

Це не екзотика. Дослідники безпеки публічно демонстрували вилучення сіда з апаратних гаманців глітчингом, на кількох моделях. Обладнання доступне за ціною, техніка добре задокументована. Вендори відповіли змістовними пом’якшеннями, а секюр-елементи містять апаратні контрзаходи саме проти цього класу атак — це найсильніший аргумент на їхню користь.

Побічні канали

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

Що це означає для вас

Відкалібруйте загрозу Ці атаки потребують фізичного володіння, обладнання і навичок. Звичайні користувачі втрачають кошти не так — а через фішинг і розкриті сід-фрази. Але це рівно та загроза, коли пристрій украдено, загублено підозріло або він побував у руках когось, хто має причину знати, що це. Пристрій, що виходив з-під вашого контролю, вважайте скомпрометованим — і дійте відповідно: перемістіть кошти на новий сід.

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

Що може піти не так у каналі між комп’ютером і пристроєм?

Протокол між хостом і пристроєм

Пристрій і супутній застосунок обмінюються структурованими повідомленнями, зазвичай через USB. Дві властивості цього каналу заслуговують уваги.

Канал зазвичай не автентифікує того, хто викликає

У кількох конструкціях пристрій відповідає на коректно сформовані команди, не з’ясовуючи, який застосунок їх надіслав. Задуманий захист — крок схвалення користувачем: ніщо не підписується без кнопки. Саме тому довірений дисплей несе таку вагу.

Наслідок видно в задокументованому інциденті: підроблений супутній застосунок, опублікований у магазині браузерних розширень під правдоподібною назвою, надіслав пристрою інструкцію переказати кошти на адресу зловмисника — і пристрій обробив запит, як будь-який інший. Криптографія відпрацювала коректно; пристрій просто не мав способу дізнатися, що запит прийшов від ворожого застосунку, а користувач схвалив те, що йому показали.

Семантика складніша за криптографію

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

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

Користувач бачить: заплатити малу суму на відому адресу. Транзакція насправді каже: заплатити малу суму на відому адресу — і надіслати все інше атакувальнику. Той самий клас проблеми знайшли в пристроях більш ніж одного виробника, і через роки після виправлення він сплив знову.

Підписати коректно — не те саме, що зрозуміти підписане. Більшість сучасних атак цілять у другу проблему.

Підписання через повітряний розрив

Найсильніша структурна відповідь прибирає електричне з’єднання цілком. З air-gapped підписанням непідписані транзакції потрапляють на пристрій через QR-код чи знімний носій, і підписи повертаються так само. Немає USB-сесії, яку можна захопити, і немає стеку драйверів, який можна експлуатувати.

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

Чи робить мене безпечнішим володіння кількома пристроями?

Різноманітність вендорів і мультипідпис

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

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

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

Що диверсифікує насправді

Справжня диверсифікація вимагає незалежності режимів відмови — тобто варіювання того, що може відмовити:

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

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

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

Колаборативне зберігання

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

Shamir-бекап чи пасфраза?

Shamir-бекап проти пасфрази

Обидва ділять чи підсилюють один ключ. Вони розв’язують різні проблеми і відмовляють по-різному.

Shamir / мультичастковийПасфраза BIP39
Захищає відЗнаходження одного місця з копієюЗнаходження самого сіда
Толерантність до втратНалаштовна — переживає втрату частокНульова — забули, і коштів немає
ПереносністьОбмежена — менше реалізаційВисока — підтримується широко
Правдоподібне запереченняНіТак — уможливлює приховані гаманці
Режим відмовиВідновлюваних часток замалоПасфразу забуто чи введено з помилкою

Міркування, що вирішують

Shamir по-справжньому кращий для надлишковості: схема часток 2-із-3 переживає втрату місця, чого один сід не вміє. Його ціна — переносність. Підтримка вужча за BIP39, що повертає залежність від існування конкретних реалізацій — рівно ту залежність, яку стандарт сід-фраз створювався прибрати.

Пасфрази підтримуються універсально і дають справжній захист від компрометації сіда. Їхня ціна — крихкість: немає відновлення, немає надлишковості, немає толерантності до помилок. Ніщо не попередить, що ви ввели її з помилкою, — ви просто опинитеся в іншому, порожньому гаманці.

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

Який ризик лишається, коли все зроблено правильно?

Залишковий ризик

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

Залишковий ризикПом’якшується
Нерозкрита поведінка закритого кремніюВендорно-різноманітним мультипідписом
Шкідливе чи скомпрометоване оновлення прошивкиЗатримкою оновлень; коштами на іншому ключі; мультипідписом
Модифікація в ланцюзі постачанняСамостійною генерацією сіда; різноманітністю вендорів
Слабка ентропія при генераціїЕнтропією від користувача; костями; перехресною верифікацією
Фізичне вилучення з украденого пристроюПасфразою; секюр-елементом; швидкою міграцією
Семантичні атаки на вміст транзакційAir-gapped підписанням; уважним читанням екрана
Знайдену копіюНепримітними носіями; географічним розділенням; мультипідписом
Фізичний примусПрихованим гаманцем; розподіленим кворумом
Витік даних вендора про факт володінняПісля покупки не пом’якшується
Вашу власну помилкуТренуваннями, документацією, простотою

Як читати таблицю

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

Фінальний аргумент Апаратний гаманець — хороший інструмент, що добре робить вузьку роботу: тримає ключ поза машиною, якій не можна вірити, і показує, що ви схвалюєте. Майже все інше — довговічність, надлишковість, непримітність, відновлюваність, виживання помилки вендора — вирішується тим, як ви поводитеся з сід-фразою і як розподіляєте повноваження. Пристрій — це частина, яку можна замінити. Побудуйте систему так, щоб заміна була всім, що вам колись доведеться зробити.