source avatarJoseph Hurtado - Founder Granata Consulting

Поделиться

КОЛДКАРД: БЕЗОПАСНОСТНЫЙ СКАНДАЛ С БИТКОИН-АППАРАТНЫМ КОШЕЛЬКОМ — ЧТО ДЕЙСТВИТЕЛЬНО ПРОИЗОШЛО? Лучший отчет ИИ — Claude Opus 5 Max — о том, что на самом деле произошло с @COLDCARDwallet. Для проверки, но выглядит весьма правдоподобно, и это означает, что Trezor и Ledger должны быть в порядке: «Сбой Coldcard **не** был вызван неисправностью TRNG-чипа. Это была ошибка конфигурации сборки, которая тихо отключала аппаратный TRNG полностью. Конфигурация платы Coldcard устанавливает `MICROPY_HW_ENABLE_RNG` в ноль, поскольку Coinkite поставляет собственную обертку для аппаратного RNG. Однако библиотека libngu проверяла только то, определен ли этот макрос, а не включен ли он, поэтому сборка проходила успешно и тихо привязывалась к программной резервной копии MicroPython — некриптографическому генератору «Yasmarang», инициализированному из UID чипа, регистров SysTick и RTC.¹ Ни один из этих параметров не является секретом: UID — это заводские метаданные, частично доступные как USB-серийный номер, а значения таймеров можно ограничить.¹ Последствия по поколениям:¹ - **Mk2/Mk3 с прошивкой v4.0.0–v4.1.9** — полное отсутствие криптографической энтропии. При известном UID, состоянии таймеров и истории вызовов генерация семени является *детерминированной*. Реалистичный предел при холодном запуске: примерно 2^16–2^40 вариантов вместо 2^256. - **Mk4/Q/Mk5** — при запуске добавляется энтропия из безопасного элемента, но она хешируется и сохраняется только четыре байта, а `reseed()` перезаписывает только одно 32-битное состояние. Предел: 2^32, в среднем ~2^31 попыток. Два момента делают эту ситуацию поучительной. Libngu XOR-ит резервный поток с *вторым* потоком Yasmarang, инициализированным из опубликованных констант — XOR двух воспроизводимых входов остается воспроизводимым.¹ И проверка здоровья отвергала только идентичные соседние выходы, что детерминированный PRNG проходит без проблем.¹ SHA256d над результатом не помогает: хеширование не может расширить набор возможных вариантов.¹ Примерно 594 BTC (~$38 млн) были перечислены из ~500 кошельков с одиночной подписью за 25 минут, 1324 UTXO в пределах трех блоков.³ Собственное уведомление Coinkite охватывает прошивку Mk3 с 4.0.1 по 5.0.3 и утверждает, что Mk4/Q/Mk5 не затронуты при первоначальном анализе;² независимый отчет Block противоречит этому утверждению и ставит текущие модели на уровень 2^32.¹ Рассматривайте оба как предварительные. Два момента, которые удивляют людей: уязвимость зависит от прошивки, которая работала **в момент создания семени**, а не от даты покупки или текущей прошивки — обновление не исправляет существующее семя.¹ И экспорт слабого семени в другой кошелек тоже его не исправляет.¹ ## Как основные кошельки генерируют энтропию **Ledger** — один источник, но тщательно сертифицированный. TRNG находится внутри безопасного элемента; энтропия генерируется там и отображается в слова BIP39.⁵ Собственная лаборатория безопасности Ledger описывает TRNG SE как дизайны на основе свободного осциллятора, сертифицированные сторонними лабораториями до EAL5+ и AIS-31, протестированные при различных температурах, напряжении и частоте с встроенной детекцией дефектов.⁴ Nano X использует EAL5+; Nano S Plus и Stax используют компоненты EAL6+.⁶ Компромисс честный: вы получаете сертификацию, но не проверяемость — ОС закрытая, и нет возможности независимо проверить смешивание энтропии с хостом. **Trezor** — многокомпонентный по дизайну, и это архитектурный ответ на сбой Coldcard. Model One и Model T XOR-ят энтропию ОС хоста с аппаратным TRNG STM32. Safe 3 и Safe 5 добавляют третий источник — безопасный элемент Optiga. Safe 7 добавляет четвертый — чип TROPIC01.⁷ Логика в том, что злоумышленнику нужно одновременно сломать все источники.⁷ Ключевое: вы можете это проверить: `trezorctl` позволяет вам увидеть энтропию, отправленную хостом, и попросить устройство отобразить свою внутреннюю энтропию, затем восстановить семя самостоятельно и проверить совпадение.⁸ Trezor Suite 25.2.2 (февраль 2025) автоматизировал версию этого как «проверку энтропии», и это рабочий процесс в `ResetDevice` прошивки.⁹ ¹⁰ **BitBox02** — пять источников: производственная случайность, пароль вашего устройства, хост-компьютер, микроконтроллер и безопасный чип — все объединены так, что каждый может только добавлять энтропию, никогда не уменьшать её.¹¹ Прошивка открыта с воспроизводимыми сборками, независимо проверенными WalletScrutiny.¹² ## Насколько безопасны эти решения против взлома? Честный ответ: сам TRNG-чип практически никогда не является целью атаки. Все крупные реальные сбои энтропии были *интеграционными* сбоями в программном обеспечении: - Ошибка Android `SecureRandom` в 2013 году привела к краже кошельков⁴ - Milksad (2023) — Libbitcoin Explorer использовал Mersenne Twister, инициализированный 32-битным значением часов; ~2600 кошельков скомпрометировано, ~$900 тыс. подтверждено⁷ - Coldcard (2026) — `#ifndef`, который должен был быть `#if`¹ Атака на сертифицированный TRNG SE требует физического доступа, лабораторного оборудования и специализированных навыков. Эксплуатация ошибки энтропии требует xpub или адреса — которые являются публичными и действуют как бесплатный оракул для проверки, позволяя злоумышленнику тестировать кандидаты на семена офлайн в масштабе.¹ Эта асимметрия объясняет, почему архитектура важнее сертификации здесь. Таким образом, практический рейтинг: 1. **Смешивание нескольких источников**, где независимые компоненты вносят свой вклад. Один неисправный источник не может разрушить семя. 2. **Проверяемость** — открытая прошивка с воспроизводимыми сборками и возможность *вам* подтвердить, что энтропия, которую вы предоставили, действительно была использована. Проверка энтропии Trezor и воспроизводимые сборки BitBox — конкретные примеры. 3. **Сертификация** — реальная ценность против физических атак (EAL5+/6+, AIS-31), но она сертифицирует компонент, а не прошивку, которая его вызывает. Mk4 Coldcard *имел* безопасный элемент; прошивка отбросила 28 из 32 байт.¹ ## Если вы хотите полностью исключить доверие к RNGКости. Каждый бросок D6 добавляет 2,585 бита, поэтому 50 бросков обеспечивают 128-битную безопасность, а 99 бросков — 256-битную.¹³ Выделенный путь Dice в Coldcard хеширует последовательность бросков напрямую с помощью SHA256, полностью обходя генератор устройства². ¹³ — обратите внимание, что это работает только через `Импорт существующего > Броски костей`, а не через стандартный процесс создания нового кошелька.² BitBox02 публикует аналогичную процедуру.¹¹ Ни в коем случае не фотографируйте броски и не вводите их в сеть подключенное устройство.² Надежный BIP39 пароль — это другой фактор: он добавляет энтропию вне генератора случайных чисел устройства, именно поэтому Coinkite утверждает, что кошельки Mk3 с паролем подвержены минимальному риску.² Это реальная мера защиты, а не замена миграции. Если вы сгенерировали семя на затронутом Coldcard, и Coinkite, и Block рекомендуют переместить средства — и обратите внимание, что мультиподпись, состоящая исключительно из уязвимых устройств, не обеспечивает защиты.¹ ² --- **ИСТОЧНИКИ** 1. Block Engineering — *Предсказуемый резервный генератор случайных чисел и повторное инициализирование 32-битным значением в прошивке COLDCARD* — https://t.co/YrOOIe9vZq 2. Блог Coinkite — *Сообщение о безопасности Mk3* — https://t.co/ZSVtMGe7wr 3. CoinDesk — *Крупный дефект кошелька bitcoin привел к краже 594 BTC за 25 минут* — https://t.co/IoK6xqEUOi 4. Ledger Donjon — *Модель угроз: Генерация случайных чисел* — https://t.co/L3pZxe9McO 5. Ledger Academy — *Что такое энтропия в криптовалюте?* — https://t.co/WckSL8rTFM 6. Ledger Academy — *Чип безопасного элемента* — https://t.co/0e1bv1VnBr 7. База знаний Trezor — *Что такое энтропия и как Trezor генерирует ваш кошелек?* — https://t.co/BNQ0E9trcK 8. Форум Trezor — *Проверка энтропии на Trezor Model One* — https://t.co/y1sTJpp10u 9. Trezor — *Обновление Trezor Suite, февраль 2025* — https://t.co/HV77m2i5uk 10. Прошивка Trezor — *core/CHANGELOG.md* — https://t.co/Zllvf7bw5F 11. Поддержка BitBox — *Могу ли я создать кошелек с собственной энтропией?* — https://t.co/TnGyVIDb2J 12. BitBox — *Безопасность на каждом уровне* — https://t.co/Gon18TlnkH 13. Документация COLDCARD — *Проверка математики бросков костей* — https://t.co/hATD4o7yI4

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