یک نقص در فریمور کیفپولهای Coldcard باعث شد تا دارندگان بیتکوین بیش از ۱۰۰ میلیون دلار ضرر کنند و مجدداً بحثهای قدیمی درباره قابل اعتماد بودن استفاده از تاس را زنده کند. این مشکل از آنجا ناشی شد که این کیفپولها به جای بهرهگیری مستقیم از تراشه سختافزاری تولید اعداد تصادفی، از تولیدکننده اعداد شبهتصادفی نرمافزاری استفاده میکردند.
در نتیجه، فضای جستوجوی کلیدهای خصوصی در مدلهای قدیمی از ۱۲۸ بیت به حدود ۴۰ بیت کاهش یافت و این امر حمله به کیفپولها را تسهیل کرد. محققان برآورد میکنند که تا کنون بیش از ۱۵۹۶ بیتکوین، معادل حدود ۱۳۰ میلیون دلار، در چند موج سرقت شده است.
مشکل در تولید اعداد تصادفی
در سال 2021، شرکت Coinkite تصمیم گرفت رمزنگاری Coldcard را به کتابخانه libsecp256k1 انتقال دهد، همان کتابخانهای که بیتکوین مرکزی (Bitcoin Core) از آن استفاده میکند. اما در حین این انتقال، فرآیند تولید کلید به جای بهرهگیری از تراشه سختافزاری تصادفی، به تولیدکننده شبهتصادفی Yasmarang در نرمافزار MicroPython تغییر یافت.
این خطای پنهان در کد باعث شد که منبع اصلی تولید اعداد تصادفی در دستگاه غیرفعال شود یا به شدت کمکاربرد باشد. بیشتر این دستگاهها در حلقه تولید، از شماره سریال تراشه و تایماستمپ بهره میبردند که فضای جستوجوی آنها در حدود ۴۰ بیت بود، در حالی که هدف رسیدن به ۱۲۸ بیت است. این فاصله، به شدت بر امنیت تاثیر میگذاشت و اجازه میداد تا مهاجمان به راحتی به کلیدهای خصوصی دست پیدا کنند.
راهحل و نکات مهم
شرکت Coinkite برای هر مدل آسیبدیده، فریمور اصلاح شده ارائه داده است که باید روی دستگاه نصب شود. ولی این موضوع به معنی آن نیست که کلیدهای تولید شده قبل از آن، امن هستند؛ این کلیدها باید مجدداً تولید شوند و داراییها منتقل شوند. تحلیلها نشان میدهند که نشت سرمایهها به شکل دایمی ادامه یافته است.
در عین حال، موضوع مهم این است که تصادفی بودن تولید کلیدهای ارز دیجیتال باید از منبع فیزیکی واقعی ناشی شود. هرچند استفاده از تاسهای طبیعی توصیه میشود، اما این روش در مقیاس بزرگ و در شرایط حساس، قابل اعتماد نیست. شرکتها و توسعهدهندگان باید همواره از صحت پیادهسازی تولید اعداد تصادفی اطمینان حاصل کنند.
در نهایت، این حادثه نشان میدهد که تولید اعداد تصادفی نرمافزاری، حتی در سختافزار امن، در صورت خطا یا عدم نظارت، میتواند منجر به خرابیهای بزرگ در امنیت کیفپولهای دیجیتال شود و اهمیت بازبینی و اصلاح مداوم کدهای رمزنگاری را بیش از پیش روشن میسازد.




