روش دارک اسکیپی (Dark Skippy) می تواند کلیدهای خصوصی کیف پول سخت افزاری را به سرقت ببرد!
محققان امنیتی روش جدیدی را کشف کردهاند که هکرها می توانند از آن برای استخراج کلیدهای خصوصی از کیف پول سختافزاری بیت کوین تنها با دو تراکنش امضا شده که آن را دارکاسکیپی (Dark Skippy) نامیدهاند، استفاده کنند.
به گزارش میهن بلاکچین، این آسیبپذیری احتمالا بر همه مدلهای کیف پول سختافزاری تأثیر میگذارد، اما تنها در صورتی میتواند کار کند که مهاجم قربانی را فریب دهد تا فریمور (Firmware) یا سفتافزار مخرب را دانلود کند.
دارک اسکیپی، اکسپلویت جدید که کیف پولهای سخت افزاری را هدف قرار میدهد
در نسخه قبلی این روش، قربانی باید «دهها» تراکنش را به بلاکچین ارسال میکرد. اما نسخه جدید دارکاسکیپی حتی اگر قربانی فقط چند تراکنش را در بلاکچین مخابره (Broadcast) کند، قابل اجراست. علاوه بر این، حتی اگر کاربر برای تولید کلمات اولیه (Seed Phrases) به یک دستگاه جداگانه تکیه کند، حمله میتواند اجرا شود.
گزارش افشا توسط لوید فورنیر (Lloyd Fournier)، نیک فارو (Nick Farrow) و رابین لاینس (Robin Linus) در ۵ آگوست (۱۵ مرداد) منتشر شد. فورنیر و فارو از بنیانگذاران سازنده کیف پول سختافزاری فراستاسنپ (Frostsnap) و لاینس یکی از توسعهدهندگان پروتکلهای بیت کوین ZeroSync و BitVM هستند.
بر اساس این گزارش، فریمور کیف پول سختافزاری را میتوان طوری برنامهریزی کرد که بخشهایی از کلمات اولیه کاربر را در «نانسهای خصوصی با آنتروپی پایین» جاسازی کند که سپس برای امضای تراکنشها استفاده میشود. با تایید تراکنشها، امضاهای حاصل به بلاکچین ارسال میشوند. سپس مهاجم میتواند بلاکچین را برای یافتن و ثبت این امضاها اسکن کند.
امضاهای به دست آمده فقط حاوی «نانسهای عمومی» هستند، نه بخشهایی از خود کلمات خصوصی. با این حال، مهاجم میتواند این نانسهای عمومی را در الگوریتم کانگرو پولارد (Pollard’s Kangaroo Algorithm) وارد کند تا با موفقیت نانسهای خصوصی را از نسخههای عمومی خود محاسبه کند.
الگوریتم کانگوروی پولارد که توسط ریاضیدان جان پولارد (John Pollard) کشف شد، الگوریتمی در جبر محاسباتی است که میتواند برای حل مسئله لگاریتم گسسته استفاده شود.
Dark Skippy تهدیدی قابل توجه برای امنیت کیف پولهای سخت افزاری بیت کوین است. این روش به یک امضاکننده به خطر افتاده اجازه میدهد تا با جاسازی بخشهایی در امضای تراکنش، عبارت اصلی سید (بازیابی) را استخراج کند که برای تکمیل تنها به دو تراکنش نیاز دارد. برخلاف مفروضات قبلی مبنی بر اینکه چندین تراکنش ضروری است، این رویکرد ساده به این معنی است که یک بار استفاده از یک دستگاه در معرض خطر میتواند منجر به نقض کامل امنیت شود.
این حمله به استفاده از فریمور مخربی بستگی دارد که فرآیند امضای استاندارد را تغییر میدهد. به طور معمول، عملیات امضا از یک nonce به طور تصادفی تولید شده به عنوان بخشی از فرآیند امضای اشنور (Schnorr) استفاده میکند. با این حال، در دستگاهی که توسط Dark Skippy به خطر افتاده است، فریمور به جای آن از نانسهای قطعی و کم آنتروپی مشتق شده از سید اصلی استفاده میکند. به طور خاص، نیمه اول seed برای یک تراکنش و نیمه دوم برای تراکنش دیگر استفاده میشود و به مهاجم اجازه میدهد تا اگر بتواند هر دو تراکنش را مشاهده کند، کل seed را کنار هم قرار دهد.
ین حمله مستلزم مختل شدن دستگاه امضاکننده است که میتواند از طرق مختلف رخ دهد: فریمور مخرب میتواند توسط یک مهاجم یا سهوا توسط یک کاربر نصب شود. در عوض، مهاجمان ممکن است دستگاههای از قبل در معرض خطر را از طریق زنجیره تامین توزیع کنند. هنگامی که این سیستم عامل در معرض خطر قرار گرفت، دادههای مخفی را در امضای تراکنشهای عمومی جاسازی کرده و به طور موثر از بلاکچین به عنوان یک کانال مخفی برای افشای اطلاعات حساس استفاده میکند. ظرافت و کارایی این تکنیک آن را به ویژه خطرناک میکند، زیرا میتوان آن را بدون اطلاع کاربر اجرا کرد و تشخیص آن بعد از وقوع چالشبرانگیز است.
به گفته محققان، مجموعه کامل کلمات اولیه کاربر را میتوان با استفاده از این روش استخراج کرد؛ حتی اگر کاربر فقط دو امضا از دستگاه در معرض خطر خود تولید کند و کلمات اولیه در یک دستگاه جداگانه تولید شده باشند.
به گفته محققان، نسخههای قبلی این آسیبپذیری در گذشته مستند شده است. با این حال، این نسخههای قدیمیتر به «تجزیه نانس (Nonce Grinding)»، فرآیندی بسیار کندتر که مستلزم ارسال تراکنشهای بیشتری به بلاکچین است، متکی بود. با این حال، محققان از نامیدن دارکاسکیپی، یک آسیبپذیری جدید خودداری کردند و در عوض ادعا کردند که این یک روش جدید برای اکسپلویت از یک آسیبپذیری موجود است.
برای کاهش این تهدید، این گزارش بیان میکند که سازندگان کیف پول سختافزاری باید مراقبت بیشتری را برای جلوگیری از ورود فریمر مخرب به دستگاههای کاربران انجام دهند که میتوانند این کار را از طریق ویژگیهایی مانند «بوت امن و اینترفیسهای قفلشده JTAG/SWD […] قابل تکرار و بیلدهای فریمور تضمینی فروشنده و سایر ویژگیهای امنیتی انجام دهند». همچنین، این امر نشان میدهد که دارندگان کیف پول ممکن است بخواهند از روشهایی برای ایمن نگهداشتن دستگاههای خود، از جمله «مکانهای مخفی، گاوصندوق شخصی، یا شاید حتی کیفهای ضدسرقت» استفاده کنند، اگرچه این گزارش نشان میدهد که این شیوهها ممکن است «دستوپاگیر» باشند.
پیشنهاد دیگری که این گزارش ارائه میکند این است که نرمافزار کیف پول از پروتکلهای امضای «ضد اکسفیلتراسیون (Anti-exfiltration)» استفاده کند که مانع از تولید نانسها توسط کیف پول سختافزاری میشود.
آسیبپذیریهای کیف پول بیت کوین در گذشته ضررهای قابل توجهی را به کاربران وارد کرده است. در آگوست ۲۰۲۴، شرکت امنیت سایبری اسلومیست (SlowMist) گزارش داد که بیش از ۹۰۰٬۰۰۰ دلار بیت کوین از طریق آسیبپذیری در کتابخانه اکسپلورر Libbitcoin به سرقت رفته است. در ماه نوامبر، آنسایفرد (Unciphered) گزارش داد که ۲.۱ میلیارد دلار بیت کوین در کیف پولهای قدیمی نگهداری میشود که ممکن است در خطر خالی شدن توسط حملهکنندههایی قرار داشته باشند که از آسیبپذیری کیف پول نرمافزاری BitcoinJS استفاده میکنند.
کاربران باید مراقب باشند و اطمینان حاصل کنند که دستگاههای سختافزاری آنها از فریمور اصلی استفاده میکنند و از فروشندگان معتبر تهیه میشوند تا خطرات را به حداقل برسانند. علاوه بر این، تنظیمات چندامضایی میتواند سد دفاعی بیشتردر برابر این نوع حمله ایجاد کند.