وجود یک آسیبپذیری در یکی از کتابخانههای لیب بیت کوین Libbitcoin، سبب نگرانی کاربران ارزهای دیجیتال در فضای ایکس (توییتر سابق) شده است.
در کتابخانهی bitcoin explorer تابعی به نام bx seed وجود دارد که از آن به طور گسترده در ساخت کیف پولهای رمزارزی استفاده شده است.
در این تابع برای تولید کلید خصوصی از الگوریتم Mersenne twister استفاده میشود. این الگوریتم معیوب به هکرها اجازه میدهد تا با آزمون و خطا بتوانند کلیدهای خصوصی کاربران و به عبارتی کنترل حسابهای آنها را بدست آورده و اقدام به سرقت وجوه آنها کنند.
این حفره امنیتی برای اولین بار توسط تیم امنیتی Distrust کشف و سپس جهت افزایش آگاهی مردم در رابطه با آن، یک وبسایت به نام milksad.info راهاندازی شد. در این وبسایت، محققان تخمین زدهاند که این آسیبپذیری تاکنون منجر به سرقت 900 هزار دلار ارز دیجیتال در چندین بلاکچین مختلف شده است. ظاهرا هکرها، بی سروصدا در حال تخلیهی کیف پولهای مردم هستند!
الگورتیم Mersenne twister، یک تولید کننده اعداد شبه تصادفی (PRNG) است که به هیچ عنوان نباید برای تولید کلید خصوصی رمزنگاری استفاده شود؛ چراکه به شدت قابل پیشبینی است و از این رو، فاقد امنیت رمزنگاری میباشد.
کلید خصوصی یک رشتهی بهم ریخته از اعداد و حروف است که به صورت تصادفی تولید میشود. الگوریتم Mersenne twister قادر است این اعداد را در محدودهی 32 بیتی تعریف کند و این بدان معناست که انتروپی یا میزان تصادفی بودن کلید خصوصی به 2 به توان 32 (حدودا 4 میلیارد) کاهش مییابد. در واقع، تنها 4 میلیارد ترکیب ممکن برای این رشته وجود دارد!
برای اینکه ذهنیت درستی از این عدد داشته باشید، باید بدانید که یک فرد با دارا بودن مهارت برنامه نویسی کافی و همچنین یک کامپیوتر با کارت گرافیک نسبتا خوب به راحتی میتواند در کمتر از یک روز، تمام این فضای محدود برای تولید کلید خصوصی را به روش بروت فورس جستجو کند. از لحاظ امنیتی، این مساله برای یک کیف پول، فاجعه است!
در حقیقت، اگر برای تولید کلید خصوصی کیف پولهای خود از یک تابع با میزان انتروپی کم استفاده کرده باشید؛ فارغ از اینکه تا چه میزان نکتههای امنیتی را رعایت کنید، داراییهای شما در معرض خطر هستند.
برای کیف پولهای رمزارزی توصیه میشود که از سیستمهایی برای رمزنگاری و تولید کلید خصوصی استفاده کنند که انتروپی یا معیار تصادفی بودن قویتری داشته باشند. به عنوان مثال برخی از کیفپولها، رشتههای 128 یا 256 بیت برای تولید کلید خصوصی استفاده میشود تا امکان حدس زدن تصادفی آنها بسیار بسیار کم شود.
برخی از جزئیات منتشر شده در این وبسایت، به شرح زیر است:
آندریاس آنتونوپلوس (Andreas M. Antonopoulos) در کتاب معروف Mastering Bitcoin که یک نوع راهنما برای توسعه دهندگان بیت کوین است؛ استفاده از تابع bx seed برای تولید کیف پول پیشنهاد شده است.
واکنش کاربران توییتری
بسیاری از افراد جامعهی ارزهای دیجیتال، تیم libbitcoin و همچنین نویسنده کتاب مذکور را به دلیل ارائه ابزارهایی که امنیت داراییهای افراد را به خطر میاندازند، مورد انتقاد قرار دادهاند.
ظاهرا در این کتاب هیچ هشداری در رابطه با اینکه این تابع، اعداد تصادفی امن و مطمئنی تولید نمیکند، داده نشده است.
یکی از اعضای تیم لیب بیت کوین، حدودا 6 سال پیش، در بخش مربوط به تابع bx seed در وبسایت گیتهاب، یک یادداشت هشدار قرار داده و گفته بود: «مکانیزم تولید کلمات بازیابی شبه تصادفی، میتواند یک ضعف رمزنگاری ایجاد کند.»
بسیاری از منتقدان استفاده از کلمه «میتواند» در این یادداشت را گمراهکننده و مبهم دانستند. آنها معتقدند که در این هشدار باید صراحتا اعلام میشد که کیف پول های ساخته شده با این مکانیزم کاملا ناامن هستند و نباید برای ذخیره سازی داراییها استفاده شوند.
محققان milk sad پس از کشف این نقص امنیتی، اقدام به برقراری ارتباط با تیم لیب بیت کوین کردند. تیم لیب بیت کوین در اولین پاسخ خود گفت:
ما احساس نمیکنیم که این یک باگ باشد.
تاکنون مشخص نشده است که چه کیف پولها و پلتفرمهایی از این الگوریتم استفاده کردهاند.
من در رشته متالوژی صنعتی تحصیل کردم. از سال 1401 تصمیم گرفتم در رسانه بلاکپست به تولید محتوا در مورد فناوری بلاکچین و صنعت جذاب ارزهای دیجیتال بپردازم. سعی میکنم تا ...