492 / 736CK-RNG

COLDCARD RNG Incident (2026)

Инцидент генерации случайности в кошельках COLDCARD

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

COLDCARD RNG Incident (2026) — инцидент, раскрытый в июле 2026 года, когда программная ошибка ослабила создание seed. Seed — секретная основа, из которой выводятся ключи кошелька; RNG означает генератор случайных чисел. Для оценки риска нужно знать способ создания seed и использованную тогда прошивку. Это не было нарушением правил Bitcoin или удалённым захватом устройства.

Coinkite и Block опубликовали первые разборы 30 июля 2026 года после сообщений о потерях. По данным производителя, злоумышленникам не требовалось управлять чужим устройством: они могли воспроизвести слабо созданные секреты и получить соответствующие приватные ключи. Эти ключи позволяют подписывать переводы, поэтому отключения от интернета было недостаточно. Однако описание инцидента не устанавливает причину каждой отдельной потери; одной марки устройства для этого недостаточно. [2] [3]

Кошелёк должен был использовать аппаратный источник случайности, TRNG. Но после подключения библиотеки libNgU вызов ngu.random.bytes попадал в функцию rng_get из MicroPython и её программный генератор Yasmarang. При сборке программы связали не те компоненты. MICROPY_HW_ENABLE_RNG имело значение 0, тогда как #ifndef проверяло только существование настройки, но не её значение. Правильный аппаратный код мог присутствовать в файле, но не использоваться для создания seed. Это не была поломка чипа или намеренный аварийный режим. [1]

Злоумышленнику легче, если секрет выбирают из меньшего числа возможностей. Здесь состояние программы зависело от данных устройства, таймеров и прошлых вызовов. Для Mk4, Mk5 и Q Block описывает дополнительное обновление состояния, ограниченное 32 битами: максимум 2^32 различных выходных последовательностей при неизменной остальной части. Coinkite предварительно оценивала общую энтропию, то есть меру неопределённости, примерно в 40 бит для Mk2/Mk3 и 72 бита для новых моделей. Цифры основаны на разных предположениях. Они не определяют стоимость каждой атаки и не доказывают, что любой кошелёк можно взломать мгновенно. [3] [1]

Официальное предупреждение указывает Mk2/Mk3 с 4.0.1–4.1.9. Первый разбор Block включает уже 4.0.0 и изменение в марте 2021 года. Таким образом, источники расходятся в начальной границе; заменять эту неопределённость догадкой не стоит. При неясном происхождении seed руководство по миграции рекомендует считать кошелёк затронутым. Mk4/Mk5 и Q также были затронуты до исправления своей ветки прошивки. Тогдашнее утверждение обо всех производственных версиях не описывает позднейшие исправленные выпуски. [2] [3] [5]

Первые исправленные версии: Mk2/Mk3 4.2.0, Mk4/Mk5 Standard 5.6.0, Q Standard 1.5.0Q, Mk4/Mk5 Edge 6.6.0X и Q Edge 6.6.0QX. Standard и Edge — отдельные ветки; больший номер другой ветки сам по себе ничего не доказывает. Во время этой ревизии производитель рекомендует Standard 5.6.3 для Mk4/Mk5 и 1.5.3Q для Q. Перед установкой проверьте актуальную официальную страницу, хеш файла и подпись выпуска. Хеш — отпечаток содержимого, подпись помогает проверить происхождение. Даже правильно установленное обновление не меняет существующий seed. [4]

Представьте, что слабо созданный seed восстановлен на новом устройстве. Устройство другое, но секрет тот же. Это относится и к клонированию или переносу кошелька. Хеширование, вычисление отпечатка данных, не добавляет возможных входов; BIP39 Checksum помогает замечать ошибки в словах, а не восполняет недостающую случайность. И наоборот: seed, безопасно созданный в другом месте, не становится слабее из-за этой конкретной ошибки лишь от импорта в COLDCARD. Важно его происхождение. [3] [5]

Исключение производителя требует не менее 50 независимых бросков правильного, несмещённого кубика, введённых исходной функцией Add Dice Rolls. Последовательность не должна была записываться или раскрываться, а кошелёк должен использовать окончательные слова после добавления бросков. При меньшем числе или сомнениях рекомендуется миграция. BIP39 Passphrase — другая мера: дополнительный секретный текст, который вместе с seed определяет иной кошелёк. Сильная уникальная passphrase добавляет препятствие, но seed не исправляет; производитель советует миграцию и её пользователям. PIN защищает только доступ к устройству. Сегодняшние правила для новых seed отличаются от этого исторического исключения. [2]

Сначала убедитесь, что резервная копия исходного кошелька пригодна для восстановления. Затем по руководству миграции создайте действительно новый seed на исправленной прошивке и проверьте его копию. Сверьте fingerprint, короткий идентификатор кошелька, и адрес получения на экране устройства. Отправьте небольшую тестовую сумму; лишь после проверки назначения и поступления переводите остальное. Учтите все счета со средствами, кошельки с passphrase, производные кошельки и схемы multisig. Сохраните старую копию до подтверждения всего переноса. При несовпадении ничего не отправляйте и не стирайте. Никогда не вводите секреты восстановления в веб-форму. [5]

Multisig требует для перевода заданное число подписей от нескольких ключей. Если злоумышленник получил достаточно ключей для выполнения правила, защиты уже недостаточно. Нужно оценить остальные ключи, подготовить и проверить на устройстве новое правило подписания и перевести средства. Block описывает и другие применения того же генератора: отдельные ключи Paper Wallet и некоторые временные ключи шифрования. Последствия зависят от конкретного использования и доступных злоумышленнику данных; они не одинаковы для всех функций. [3] [5]

Страница состояния перечисляет испытание аппаратного генератора на настоящем Mk4, проверку исходного кода и независимое повторение сборки конкретного исправления. Это помогает проверить описанный механизм, но не доказывает безопасность каждого опубликованного файла. Нынешний Standard также требует собственного вклада случайности пользователя при создании seed. Старый совет о том, что вклад всегда необязателен, поэтому не является актуальной процедурой этой ветки. Страница отражает ход исправлений; отдельный подробный технический отчёт о причинах всё ещё обозначен как готовящийся. [4]

Пример · CK-RNG

Устройство обновлено, проблема осталась

Владелец создал seed на Mk3 4.1.9 без собственных бросков кубика. Он устанавливает 4.2.0 и восстанавливает те же слова на другом устройстве, но продолжает использовать прежний секрет. По руководству миграции нужен новый seed на исправленной прошивке, проверка копии и адреса, затем небольшой пробный перевод. Только после этого переводят остальное. Старую копию сохраняют до полного подтверждения переноса.

Для полной картины прочитайте эту статью вместе с Cryptographic Entropy, Deterministic RNG, Seed Generation, BIP39 checksum, BIP39 passphrase, Dice Roll Entropy.

01Достаточно купить новое устройство?

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

02Означают ли 32 бита одинаково простую атаку на все модели?

Нет. В анализе Block число относится к дополнительному изменению состояния генератора при фиксированной остальной части и истории вызовов. Неизвестные данные устройства или временные параметры меняют задачу злоумышленника. Это не универсальное измерение скорости атаки и не гарантия безопасности конкретного seed.

DOC · 001Coinkite — Technical Deep Dive into the Entropy IssueПервичный источник DOC · 002Coinkite — COLDCARD Security AdvisoryПервичный источник DOC · 003Block — Predictable RNG Fallback and 32-Bit ReseedПервичный источник DOC · 004COLDCARD — Current Security StatusПервичный источник DOC · 005COLDCARD — Seed migration guideДокументация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией