یک نقص نرم‌افزاری در فرایند تولید عبارت‌بذر دستگاه‌های Coldcard که از مارس ۲۰۲۱ وجود داشته، باعث تولد عبارت‌بذرهایی با آنتروپی کمتر و سرقتِ تقریباً ۹۰٬۰۰۰٬۰۰۰ دلار بیت‌کوین از بیش از ۴٬۵۰۰ آدرس شد. این رخداد پرسش‌های جدی درباره کیفیت آزمون‌های مستقل و روش‌های ممیزی کیف‌پول‌های سخت‌افزاری مطرح کرده است.

چه رخ داد؟

شرکت Coinkite اعلام کرد از مارس ۲۰۲۱، یک تغییر در ادغام کتابخانهٔ رمزنگاری باعث شد فرایند ایجاد کیف‌پول به‌جای فراخوانی تولیدکنندهٔ تصادفی سخت‌افزاری (TRNG)، به یک تولیدکنندهٔ نرم‌افزاری ضعیف‌تر در MicroPython ارجاع داده شود. نتیجهٔ این اشتباه تولید عبارت‌بذرهایی با آنتروپی کاهش‌یافته بود که مهاجمان توانستند از آن‌ها سوءاستفاده کنند و آدرس‌هایی با کلیدهای قابل پیش‌بینی را شناسایی کنند.

برد الکترونیکی دستگاه کیف‌پول سخت‌افزاری Coldcard

چرا این آسیب‌پذیری پنج سال دیده نشد؟

ممیزی‌ها و بازبینی‌های کد وجودِ واحد TRNG را تأیید می‌کردند، اما هیچ‌کس مسیر اجرایی راستی‌آزمایی کامل نکرد که نشان دهد آیا آن واحد واقعاً در زمان تولید عبارت‌بذر فراخوانی می‌شود یا خیر. به عبارت دیگر، ممیزی‌ها عمدتاً وجودِ کدِ صحیح را بررسی می‌کردند، اما آزمون‌های انتها-به-انتها که مسیر اجرا و منبع آنتروپیِ واقعی در محیط تولید را تأیید کنند، انجام نشده بود.

استانداردهای مرجع و خلأها

نیک پرکوکو، مدیر ارشد امنیت در Kraken، اشاره می‌کند که در سایر حوزه‌ها استانداردهایی برای اعتبارسنجی منابع آنتروپی وجود دارد، مانند NIST SP 800-90B و BSI AIS-31. اما برای کیف‌پول‌های سخت‌افزاری فرآیند معادلی که تضمین کند منبع آنتروپیِ تاییدشده همان منبعی است که فرم‌ور در تولید عبارت‌بذر فراخوانی می‌کند، به‌طور گسترده اجرا نمی‌شود.

نمونه‌هایی از تفاوت

  • در صنعت پرداخت، دستگاه‌های ورود PIN بدون تست‌های مستقل آزمایشگاهی و راستی‌آزمایی عملکرد پذیرفته نمی‌شوند.
  • ماژول‌های رمزنگاری تحت مقررات دولتی معمولاً همراه با راستی‌آزماییِ منبع آنتروپی عرضه می‌شوند.
نمای داخلی و قطعات یک کیف‌پول سخت‌افزاری

پیامدهای فنی و عملیاتی

استفاده از یک تولیدکنندهٔ شبه‌تصادفی (PRNG) ضعیف در مسیر تولید عبارت‌بذر احتمال تولد کلیدهای قابل پیش‌بینی را افزایش می‌دهد. مهاجمان با شناسایی این الگوها می‌توانند آدرس‌های آسیب‌پذیر را پیدا و موجودی آن‌ها را خالی کنند. Coinkite اعلام کرده که بخشی از کدِ مربوط به TRNG گاهی برای کارهای کم‌اهمیت‌تر به‌صورت تصادفی استفاده می‌شد، اما جریان اصلی تولید عبارت‌بذر از PRNG ضعیفی تغذیه می‌شد که منجر به کاهش آنتروپی شد.

واکنش Coldcard و وضعیت فعلی

Coldcard پس از تأیید آسیب‌پذیری، ارسال دستگاه‌ها را متوقف و واحدهایی که حاوی فرم‌ور آسیب‌دیده بودند را معدوم کرد. شرکت از کاربران خواسته دستگاه‌های betroffen را دور نیندازند، زیرا ممکن است برای پیگیری‌های فنی یا حقوقی نیاز شوند. همچنین تیم حقوقی Coldcard اعلام کرده در صورت لزوم با مراجع قضایی همکاری خواهد کرد.

جعبه و بسته‌بندی کیف‌پول Coldcard

اقدامات پیشنهادی

گام‌های ضروری برای کاهش ریسک و جلوگیری از تکرار چنین خطاهایی:

  • تولیدکنندگان
    • پیاده‌سازی آزمون‌های انتها-به-انتها که اثبات کنند منبع آنتروپیِ تأییدشده همان منبعی است که فرم‌ور فراخوانی می‌کند.
    • اجرای ممیزی‌های مستقل در محیط تولیدی، نه صرفاً بازبینیِ کدِ منبع.
    • مستندسازیِ دقیق مسیرهای اجرایی مرتبط با تولید عبارت‌بذر و آزمایش‌های دوره‌ای سخت‌افزاری/نرم‌افزاری.
  • ممیزان و آزمایشگاه‌ها
    • افزودن تست‌های زمان اجرا (runtime) و تست‌های سخت‌افزاری برای اعتبارسنجی مسیر آنتروپی مطابق استانداردهای شناخته‌شده.
    • اعلام نتایج آزمایش به‌صورت شفاف و قابل بازتولید برای افزایش اعتماد عمومی.
  • کاربران
    • دنبال کردن اطلاعیه‌های رسمی سازنده و پرهیز از استفاده از دستگاه‌های دارای فرم‌ور آسیب‌پذیر.
    • نگهداری دستگاه‌ها در صورت نیاز به پیگیری‌های حقوقی یا بازیابی دارایی‌ها و مشورت با کارشناسان مستقل در صورت تردید.

چشم‌انداز آینده

این رخداد نشان می‌دهد مدیریت دارایی‌های دیجیتال نیازمند استانداردها و آزمون‌هایی است که فراتر از بازبینیِ سطحیِ کد باشد. انتظار می‌رود تولیدکنندگان، ممیزان و قانون‌گذاران روی تعریف و اعمال فرآیندهای اعتبارسنجی آنتروپی، آزمون‌های انتها-به-انتها و شفافیت نتایج آزمایش‌ها کار کنند تا از بروز شکست‌های مشابه جلوگیری شود.

منابع بیشتر درباره کیف‌پول‌های سخت‌افزاری و استانداردهای آنتروپی: ویکی‌پدیا (Hardware wallet), NIST SP 800-90B, BSI AIS-31.