Позиция 21wiki

Страница переработана после инцидента с генератором случайных чисел COLDCARD в июле 2026 года: разбор инцидента. До публикации независимого отчёта об аудите доверять устройствам этого производителя не стоит.

COLDCARD упоминается ниже как пример конкретных инженерных решений, а не как побуждение к покупке. Эта страница вообще не рекомендует устройств: она разбирает модель угроз, а не выбирает модель за читателя.

Аппаратный кошелёк — устройство, основная задача которого защитить приватные ключи пользователя. Ключи не покидают устройство в открытом виде, транзакция подписывается внутри, наружу выходит только подписанный результат. Это самый сбалансированный по шкале «простота / безопасность» подход к холодному хранению, и обходится он менее чем в сто долларов. Основа: Сравнение аппаратных кошельков.

Эта страница — не обзор моделей, а разбор того, что именно вы вынуждены принимать на веру, покупая такое устройство, и какими средствами это доверие можно сократить.

Что приходится доверять производителю

Аппаратный кошелёк — закрытая коробка, выполняющая несколько критических операций. По каждой из них вы либо доверяете производителю, либо находите способ проверить.

Генератор случайных чисел

Самая незаметная точка доверия. Устройство генерирует сид и показывает вам готовые слова, но качество источника случайности снаружи неотличимо. И исправный, и сломанный генератор выдают внешне одинаковый результат: те же слова, тот же отпечаток, тот же адрес.

Отсюда следует, что правильный вопрос к устройству — не «хороший ли у него генератор». На этот вопрос снаружи нет способа ответить. Правильный вопрос другой: есть ли в создании ключа хоть один источник случайности за пределами кремния производителя, и можно ли воспроизвести результат независимо.

По этой оси устройства делятся на три группы, и деление не совпадает ни с ценой, ни с наличием защищённого элемента, ни с сертификацией:

  • Вся энтропия внутренняя. Ключ создаётся генератором устройства, и больше ничем. Отказ такого генератора пользователь не обнаружит в принципе — не потому, что производитель плох, а потому, что проверять нечем.
  • Свою энтропию можно добавить или подставить. Устройство принимает ваши броски кости — либо подмешивая их к собственной случайности, либо полностью заменяя её ими. Это разные вещи, и разница принципиальна.
  • Устройство вообще не генерирует ключ. SeedSigner доводит идею до предела: энтропию задаёте вы — кости, монета или снимок камерой, — а устройство лишь считает контрольную сумму и показывает сид-фразу. Ломаться внутри просто нечему. Основа: гид по SeedSigner.

Подмешать и заменить — не одно и то же. В гиде по COLDCARD прямо сказано: добавление собственной энтропии бросками игральной кости снижает уровень доверия к генератору случайных чисел, предлагаемому устройством. Но снижает — не значит устраняет. Когда ваши броски подмешиваются к внутренней случайности, вы результат страхуете: он не может выйти хуже, чем ваши собственные броски, но и повторить его независимо нельзя. Когда ваши броски заменяют внутренний источник целиком, результат становится воспроизводимым — ту же последовательность можно прогнать через независимую реализацию и сверить слова. Оба режима описаны в документации производителя. В сравнительных таблицах возможностей это отдельная строка — «DIY-энтропия», — и есть она далеко не у всех моделей.

Насколько всё это не теоретическая угроза, показал инцидент 2026 года: ошибка в сборке прошивки COLDCARD увела генерацию сида с аппаратного генератора на программный запасной. Ни прошивка, ни экран, ни ревью кода не подали никакого сигнала. Разбор: инцидент с ГСЧ COLDCARD.

Важно, что именно этот случай доказывает. Он не доказывает, что один производитель хуже другого, — он показывает класс отказа, которому подвержено любое устройство, вся случайность которого рождается внутри одного кремния. Защищённый элемент и сертификация от этого класса не защищают: они закрывают физическое извлечение ключа из устройства, а здесь ключ вычисляется удалённо, и к устройству никто не подходит.

Прошивка и защищённый элемент

Часть устройств использует защищённый элемент (secure element, SE) — специализированный чип для хранения секретов. SE обеспечивает защиту от физических атак, но у него есть цена: устройство с защищённым элементом требует несколько большего доверия, особенно если код SE закрыт.

Подходы производителей заметно различаются:

  • Ledger использует SE с закрытым исходным кодом и собственную ОС BOLOS с изолированными приложениями.
  • COLDCARD Mk4 ставит два защищённых элемента от разных производителей: один хранит зашифрованную версию приватного ключа, а для расшифровки нужны второй SE и микроконтроллер. Архитектура устройства позволяет не доверять защищённому элементу.
  • BitBox02 также построен так, что архитектура позволяет не доверять SE.
  • Blockstream Jade обходится вовсе без защищённого элемента, используя модель «слепого оракула»: оракул ничего не знает о данных кошелька и даже не знает фактический PIN пользователя, а при желании его можно запустить самостоятельно. Это позволило полностью открыть исходный код.

Открытость кода

Открытый код — не гарантия отсутствия ошибок, но необходимое условие для того, чтобы ошибку в принципе можно было найти. Основа: открытое ПО.

При этом «открытый» — не бинарный признак, и делить рынок на открытые и закрытые устройства бессмысленно. У любой модели это как минимум три независимых вопроса:

  1. Прошивка — опубликован ли исходный код того, что исполняется на устройстве, и на каких условиях. Лицензии различаются, и «исходники можно прочитать» не всегда означает «свободная лицензия».
  2. Аппаратная часть — опубликованы ли схемы платы и перечень компонентов.
  3. Защищённый элемент — код внутри SE закрыт почти всегда, даже когда прошивка и схемы открыты полностью.

Ответы не совпадают между собой: устройство может иметь полностью открытую прошивку и закрытый SE, или опубликованные схемы при ограничительной лицензии на код. Поэтому степень открытости нужно проверять по репозиторию и документации конкретного производителя, а не по ярлыку в обзоре — например, прошивка и схемы COLDCARD, репозиторий SeedSigner, репозитории Foundation Devices. Ledger здесь крайний случай: ключ создаётся собственной операционной системой BOLOS с закрытым кодом.

И вещь, которую открытость не даёт сама по себе: прочитанный код и правильно прочитанный код — не одно и то же. Дефект может годами лежать в открытом репозитории, если ревью убеждается, что нужный код в прошивке присутствует, а не в том, что вызывается именно он. Открытость необходима, чтобы ошибку можно было найти, но не достаточна, чтобы её нашли.

Само существование производителя

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

Отказы производителей — не единичные аномалии, а несколько устойчивых категорий, и различаются они тем, что можно сделать после.

  • Непреднамеренный дефект в коде. Сборочный дефект в прошивке COLDCARD, из-за которого сиды с марта 2021 года создавались слабым генератором. Чинится обновлением — но только для новых ключей: уже созданный ключ обновление не лечит, и перенос его в другое устройство не лечит тоже.
  • Продуктовое решение, меняющее модель безопасности. В 2023 году Ledger анонсировали функцию, при которой сид хранится не только на самом устройстве. Код при этом работал как задумано — изменились обещания, на которых пользователь строил свой выбор. После этого рекомендовать эти устройства для защиты крупных сумм одним ключом перестало быть разумным — при том что как элемент мультиподписи или для небольших сумм они по-прежнему лучше обычного горячего кошелька.
  • Дефект, который обновлением не чинится. Часть слабостей лежит в самом железе, и тогда «патч» означает сменить устройство или изменить модель поведения. Другого выхода нет: при достаточных ресурсах злоумышленник извлечёт сид-фразу из любого аппаратного кошелька.
  • Вмешательство в цепочке поставок. Устройство приходит уже скомпрометированным, и с качеством кода производителя это не связано вообще. Разбирается ниже отдельно.

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

Средство защиты, общее для всех категорий, здесь одно — совместимость. Сид-фраза стандарта BIP-39 восстанавливается в кошельке любого производителя, и при должном хранении сида аппаратный кошелёк перестаёт быть единой точкой отказа.

Цепочка поставок

Отдельный класс угроз, не связанный с качеством самого устройства. Проблема в том, что между производителем и вами стоят люди. Основа: гид по SeedSigner.

Чем длиннее логистическая цепочка, тем больше третьих лиц и тем выше вероятность вмешательства в целостность устройства. Подменённые аппаратные кошельки — не гипотеза: покупатели устройств у третьих лиц не раз обнаруживали, что их сбережения ушли на неподконтрольный им адрес, и Trezor здесь лишь один пример из многих. Покупка устройства на маркетплейсах общего назначения — категорически неприемлемый вариант.

Часть производителей отвечает на это сокращением самой цепочки — отказом от реселлеров и отправкой устройств только напрямую; так поступает, например, Coinkite. Логика простая: стоит ли экономия тридцати долларов на реселлере того риска, которому вы подвергаете хранимую сумму.

Производители отвечают на эту угрозу несколькими механизмами:

  • Упаковка с защитой от вскрытия. Устройство приходит запечатанным так, что вскрытие оставляет необратимый след, а напечатанный на упаковке уникальный номер должен совпасть с числом, которое устройство покажет на экране при первом включении. Так устроена, например, поставка COLDCARD: прозрачный герметичный пакет, на котором после снятия пломбы проступает слово «void».
  • Антифишинговые слова. PIN разделён на две части. После ввода первой половины устройство показывает два слова, уникальных для этого экземпляра. Если вы видите не те слова — перед вами подменённое устройство, и вводить остаток PIN нельзя.
  • Светодиодные индикаторы. У COLDCARD Mk4 и Passport отдельные светодиоды подтверждают, что содержимое защищённого элемента не изменилось с прошлого использования, что программное обеспечение не скомпрометировано и что в устройство не вносились физические изменения.
  • Защита от вскрытия корпуса. У Keystone 3 Pro любая попытка вскрыть корпус приводит к удалению данных.

Радикальный ответ на ту же угрозу — собрать устройство самому. SeedSigner собирается из общедоступных компонентов широкого применения: микрокомпьютера, платы с дисплеем и миникамеры. Детали можно купить где угодно, потому что сами по себе они не несут секретов — плата лишь производит вычисления по проверяемому открытому коду, а устройство никогда не подключается к интернету. Смысл подхода его автор формулирует прямо: перестать быть вынужденным кому-либо доверять.

Физические атаки и принуждение

Отдельная ветка модели угроз — сценарий, в котором устройство физически оказалось в чужих руках.

Базовый факт стоит принять сразу: никакое оборудование не обеспечивает стопроцентную защиту сида. При достаточных ресурсах и опыте злоумышленник извлечёт сид-фразу из любого аппаратного кошелька. Основа: материал о парольных фразах. Именно поэтому, если физические атаки входят в вашу модель угроз, к устройству нужна надёжная парольная фраза.

Механизмы, которые устройства предлагают на этот случай:

  • Защита от перебора PIN. Устройства Ledger сбрасываются до заводских настроек уже после трёх неудачных попыток, Trezor — после шестнадцати. Компромисс двусторонний: подобрать PIN злоумышленнику крайне сложно, но и вы рискуете быстро получить стёртое устройство, если забыли код.
  • Запасной («подставной») PIN. Открывает второй кошелёк с небольшой суммой. У Jade это реализовано ещё мягче: устройство удаляет сохранённую фразу восстановления и выводит на экран «Внутреннюю ошибку».
  • PIN-кирпич. У COLDCARD ввод аварийного PIN не сбрасывает устройство, а уничтожает оба защищённых элемента, делая кошелёк бесполезным.

Отдельно стоит отметить биометрию. Датчик отпечатка пальца, как в Keystone 3 Pro, удобен, но такая авторизация уязвима перед «атакой гаечным ключом» и лишает возможности правдоподобного отрицания, поэтому включение устройства и вход в настройки безопасности там всё равно требуют PIN или пароль.

Воздушный зазор

Большинство аппаратных кошельков работает через прямое подключение к компьютеру по USB. Воздушный зазор (air gap) убирает и этот канал: устройство никогда физически не соединяется ни с чем, кроме источника питания.

Обмен данными идёт через промежуточный носитель — карту microSD, QR-код на экране и камеру или NFC. Работает это благодаря стандарту BIP-174, задающему формат частично подписанной транзакции (PSBT). Компьютер конструирует транзакцию и сохраняет её как PSBT, устройство подписывает её офлайн своими приватными ключами, подписанный файл возвращается в программу для трансляции в сеть. Тот же формат лежит в основе мультиподписи, где транзакция по очереди обходит владельцев ключей, накапливая подписи.

Практическое следствие: устройство с воздушным зазором совместимо с любым программным обеспечением, поддерживающим PSBT; вы не привязаны к фирменному приложению производителя.

Беспроводные интерфейсы

Bluetooth и NFC расширяют возможности и одновременно расширяют поверхность атаки.

Наличие Bluetooth вызывает у многих обоснованные опасения из-за потенциала атаки во время сопряжения, и производители наличие такой опасности признают. Функция, как правило, отключается в настройках, а подключение переводится на кабель, но сам факт наличия беспроводного модуля в устройстве, хранящем ключи, спокойствия не прибавляет. Аналогично с NFC у COLDCARD Mk4: по умолчанию функция отключена, а при желании соединение на плате можно физически нарушить.

Bitcoin-only прошивки

Поддержка тысяч посторонних токенов означает больше кода, больше приложений и больше векторов атаки. Ряд производителей предлагает прошивку исключительно для Биткоина, из которой удалено всё лишнее.

Нюансы стоит знать заранее: у Trezor Bitcoin-only прошивка существует, но не устанавливается по умолчанию. У BitBox02 версия Bitcoin-only, в отличие от других устройств, не может быть перенастроена на поддержку других монет — это уже не режим, а отдельный продукт. У COLDCARD, Jade, Passport и SeedSigner поддержка Биткоина эксклюзивна изначально.

Как сократить доверие на практике

Ни один из пунктов ниже не требует специальных знаний — только последовательности.

  1. Покупайте напрямую у производителя. Не у реселлеров, не с рук и тем более не на маркетплейсах общего назначения.
  2. Проверьте упаковку до включения. Сверьте номер на пломбе с числом на экране при первом запуске.
  3. Запишите антифишинговые слова и сверяйте их при каждом вводе PIN.
  4. Задайте энтропию сами, если устройство это позволяет, — или используйте устройство, которое иначе и не умеет.
  5. Проверьте подлинность программного обеспечения перед установкой — подпись PGP и контрольную сумму. Для SeedSigner это официально рекомендованный (хотя и необязательный) шаг сборки. Процедура целиком — на странице проверка подлинности ПО.
  6. Запишите отпечаток кошелька (XFP) рядом с сид-фразой и сверяйте его каждый раз при подключении к новому программному обеспечению или вводе парольной фразы.
  7. Не храните аппаратный кошелёк вместе с резервной копией сида. Даже если они защищают один и тот же сид, разделение даёт вам время вывести средства раньше злоумышленника.
  8. Проверьте схему на небольшой сумме до того, как переносить сбережения.

Когда одного устройства мало

Аппаратный кошелёк устраняет самую массовую угрозу — попадание ключа в интернет, — но остаётся единственным устройством, за которым стоит единственный производитель, единственная прошивка и единственный источник случайности.

Ключевой вопрос при выборе устройства формулируется в исходном обзоре так: будет ли оно использоваться как отдельный кошелёк с одной подписью или как часть схемы мультиподписи. Ответ определяет всё остальное — от требований к устройству до допустимых мест хранения резервных копий.

Пробелы

Внутреннее устройство аппаратного источника случайности источники описывают только на уровне последствий его отказа. Отдельный открытый вопрос — воспроизводимость сборок самих прошивок аппаратных кошельков: практика здесь заметно неоднороднее, чем у Bitcoin Core, и по ней в нашей вики пока что материала нет.

Источники

Дополнительные материалы