Главное:

Coldcard требует 65 нажатий клавиш: старые seed-фразы остаются под угрозой

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

Bitcoin hardware wallet on desk with dice and coins representing physical entropy input

Речь о Coldcard — одном из самых известных аппаратных кошельков для Биткоина. Coinkite, производитель Coldcard, 20 августа выпустила новую стандартную прошивку, которая заставляет пользователей добавлять физическую случайность при генерации seed-фразы. Проблема в том, что установка патча не отменяет уязвимость уже существующих ключей.

Почему теперь нужны 65 нажатий, 50 бросков кубика или 128 подбрасываний монеты

Суть изменения простая: генератор случайных чисел внутри устройства больше не работает в одиночку. Теперь каждая новая seed-фраза обязана получить порцию энтропии от человека.

При стандартном создании seed каждый ключ сочетает свежую энтропию устройства с одним обязательным источником человеческого ввода: минимум 65 нажатий клавиш через непредсказуемые промежутки, 50 бросков физического шестигранного кубика или 128 подбрасываний монеты. Это снижает зависимость только от встроенного генератора случайных чисел кошелька.

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

Кого затрагивает уязвимость и почему прошивка не чинит старый ключ

Главное, что нужно понять держателям Coldcard: установка исправленной прошивки не меняет старую seed-фразу. Если ключ был создан на уязвимой версии, он остаётся уязвимым и после обновления.

Текущий статус безопасности Coldcard рекомендует версию 5.6.1 для устройств Mk4 и Mk5 и 1.5.1Q для устройств Q. Список подверженных уязвимости версий шире и зависит от линейки. Официальное руководство по миграции Coinkite охватывает прошивки Mk2 и Mk3 версий с 4.0.1 по 4.1.9; стандартные прошивки Mk4 и Mk5 до 5.6.0 и Edge до 6.6.0X; а также стандартные прошивки Q до 1.5.0Q и Edge до 6.6.0QX.

� Заходите в наш Telegram-чат 2Bitcoins, если хотите обсудить новость с другими читателями.

Есть важный нюанс с границами уязвимости. Независимый технический анализ Block использует более широкую границу для Mk2 и Mk3, включающую версию 4.0.0. Владельцам этой версии не стоит считать границу, указанную вендором, доказательством безопасности. То есть если вы на самом краю списка, лучше исходить из худшего сценария.

Как переносить средства и когда миграция не нужна

Если ваш кошелёк попал в список, единственный надёжный путь — завести новый ключ. Clone или restore тут не помогут: клонирование или восстановление кошелька не создаёт новую seed-фразу.

� Следите за новостями в нашем Telegram-канале 2Bitcoins.

Порядок действий, который советует Coinkite для затронутых пользователей:

  1. сгенерировать по-настоящему новую seed-фразу
  2. проверить её резервную копию и отпечаток кошелька (fingerprint)
  3. подтвердить адрес получения прямо на устройстве
  4. отправить небольшую тестовую транзакцию
  5. перевести весь баланс со старого ключа

Если исключение с бросками кубика неприменимо, руководство по миграции Coinkite предписывает затронутым пользователям создать новую seed-фразу, проверить её бэкап и отпечаток кошелька, подтвердить адрес получения на устройстве, отправить небольшую тестовую транзакцию и затем перевести весь баланс, привязанный к старому ключу.

Затронутым пользователям нужно создать новый ключ и перенести туда все средства

Затронутым пользователям нужно создать новый ключ и перенести туда все средства

Когда переносить средства не обязательно. Миграция не требуется при этой уязвимости RNG, если пользователь добавил как минимум 50 честных, независимых и приватных физических бросков кубика через затронутый рабочий процесс и никогда не записывал и не раскрывал эту последовательность. Меньшее число бросков или сомнения в этих условиях означают, что пользователю следует мигрировать. Условие узкое, так что большинству оно не подойдёт.

Стоит отделять этот сценарий от продвинутого режима. Coldcard рассматривает смешанный режим иначе, чем продвинутую опцию Dice Rolls Only. Этот режим исключает аппаратную случайность и требует 50 бросков для seed-фразы из 12 слов или 99 для фразы из 24 слов.

Прочие исправления и оценка реального ущерба

Обновление затрагивает не только генерацию ключей, но и путь подписания транзакций. Пакет прошивки привязывает USB-проверку к контрольной сумме подготовленного PSBT, перепроверяет байты транзакции перед подписанием, по умолчанию блокирует режимы SIGHASH_SINGLE, ограничивает USB-загрузки результатом текущей зашифрованной сессии и проверяет длину файла прошивки. Он добавляет постоянные остановки при сбое RNG, проверку связи с аппаратным генератором случайных чисел при загрузке, больше изоляции Delta Mode и поведение резервного копирования активного кошелька.

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

Читайте также: Bitcoin у $80K: Bernstein видит сдвиг рынка на притоках в ETF

Заметно, что независимые проверки не заменяют полный аудит. Страница статуса перечисляет точечный обзор исходного кода, тест RNG-пути на реальном устройстве и воспроизводимую сборку с трассировкой пути бросков кубика, но Coldcard говорит, что это не равнозначно полному аудиту каждого исправленного бинарника.

История с Coldcard уже вышла за рамки одного вендора: ранее CZ советовал делить средства по кошелькам, чтобы одна уязвимость не выносила весь портфель. Урок здесь общий для всех держателей аппаратных кошельков: обновления защищают новое, но не всегда лечат уже созданное. Если ваш ключ в списке затронутых, ключевой момент - не откладывать проверку прошивки и, при необходимости, миграцию средств.

Кого затрагивает уязвимость и почему прошивка не чинит старый ключ

Кого затрагивает уязвимость и почему прошивка не чинит старый ключ

ПОДПИСЫВАЙТЕСЬ НА НАШ КАНАЛ В ТЕЛЕГРАМЕ, ЧТОБЫ БЫТЬ В КУРСЕ.