اتریوم بلاک چین

سرقت ارز دیجیتال از طریق حدس کلید‌خصوصی ضعیف

eth-private-key
نوشته شده توسط kazem

در اوایل هفته جاری یکی از شرکت‌های مطرح آمریکایی که در زمینه ارائه خدمات امنیتی فعالیت دارد، گزارشی را منتشر نمود که در آن به شبکه بلاک چین اتریوم (Ethereum) و کلیدهای خصوصی حساس (Private Key) پرداخته بود. شرکت مشاوره امنیت ISE در این گزارش بیان نموده بود که در حال حاضر بالغ بر ۷۰۰ کلید خصوصی وجود دارد که به طور مرتب از سوی کاربران مختلف مورد استفاده قرار می‌گیرند. در طی بررسی‌هایی که این مؤسسه ترتیب داد، موفق به یافتن هکری شد که با حدس زدن کلیدهای خصوصی دارای سطح امنیتی پایین توانسته بود بالغ بر ۴۵,۰۰۰ اتر (ETH) را به سرقت ببرد.

یافته‌های کلیدی

بر اساس اظهارات این مؤسسه امنیتی، هکر مورد نظر بصورت کاملاً تصادفی شناسایی شده است؛ بندارک (Bednarek) در زمانی موفق به یافتن این هکر شد که بر روی سازمان‌هایی تحقیق می‌کرد که قصد توسعه و اجرای کیف پول رمزارز (Wallet) شخصی خود را داشتند. این سازمان‌ها قصد داشتن این کیف پول‌ها را به نحوی توسعه دهند که در بر دارنده الگوریتم تولید کلید خصوصی باشد. بنا به اظهار وی، «به عنوان یک تحلیل‌گر مسائل امنیتی پیش از آغاز تحقیق و ارزیابی بایستی در وهله اول از فناوری مورد نظر آگاهی جامعی داشته باشیم؛ این آگاهی بایستی در حدی باشد که بتوانیم آن فناوری را از نو خلق کنیم. به همین دلیل، فرایند تولید کلیدهای خصوصی را به عنوان یکی از این فناوری‌های کلیدی مورد بررسی قرار دادم و آن‌ها را به طور خاص بر روی شبکه اتریوم ارزیابی نمودم.»

eth-weak-private-key

در شبکه‌هایی مانند اتریوم، بیت کوین (Bitcoin) و دیگر بلاک چین‌های قدرت‌مندی که از پروتکل ECDSA پشتیبانی می‌کنند، کلیدهای خصوصی در قالب اعدادی ۲۵۶ بیتی ظاهر می‌شوند. از آن‌جایی که موفقیت حملات جستجوی فراگیر (Brute Force Attack) بر روی کدهای ۲۵۶ بیتی به لحاظ آماری بسیار غیر محتمل است، ISE طی تحقیق خود موفق به تفکیک این کلیدهای خصوصی به ۸ قسمت ۳۲ بیتی شد. این هشت قسمت ۳۲ بیتی جدید محتوی بالغ بر ۳۴ میلیارد کلید ضعیف‌تر بودند که ISE توانست طی اسکنی که یک روز کامل به طول انجامید آن‌ها را پیدا کند. شایان ذکر است که این کلیدهای ضعیف نتیجه وجود یک کد ناقص و همچنین تولید کننده‌های ایراد دار کلید ایجاد شده‌ بودند. طی این تحقیق، هدف محققین کلید‌هایی بودند که عملکرد آن‌ها از سطح بهینه ضعیف‌تر بود.

بیشتر بخوانید: توصیه های مهم برای امنیت ارز دیجیتال

نگاه فنی

کلید خصوصی عملاً نقش نام کاربری و کلمه عبور را به طور هم‌زمان بر عهده دارد؛ این کلیدها با اطلاعات ورود به حساب بانکی که متشکل از دو جزء مذکور تشکیل شده است تفاوت دارند. به همین دلیل، اگر دو نفر برای ساخت کیف پول ذهنی (Brain Wallet) از یک کلمه عبور استفاده کنند، این دو نفر در عمل مالک یک کیف پول مشترک خواهند بود! متخصصین ISE در ابتدا دریافتند که کلید خصوصی «۱» بر روی بلاک چین مورد استفاده قرار دارد؛ به خاطر داشته باشید قالب ۲۵۶ بیتی کلید خصوصی ۱ به صورت زیر خواهد بود:

0x0000000000000000000000000000000000000000000000000000000000000001

اطلاع از این امر هشداری اساسی را در ذهن محققین ایجاد کرد و دلیل استفاده از چنین کلید خصوصی ضعیفی به پرسشی اساسی تبدیل شد. به لحاظ عملی، استفاده از چنین کلیدی بایستی غیر ممکن باشد. در راستای یافتن پاسخ این پرسش و اطلاع از ابعاد مشکل، تیم تحقیق شروع به بررسی کلیدهای بیشتری کرد؛ با وجود این که محققین ISE دریافتند که این معضل از فراگیری بالایی برخوردار نیست، اما بالغ بر ۷۳۲ کلید ضعیف را یافتند که برای ۴۹,۰۶۰ تراکنش مورد استفاده قرار گرفته بودند.

دزد بلاک چین

همان طور که در بالا اشاره شد، محققین طی بررسی‌های خود به ارتباط میان برخی کیف‌های پول و کلیدهای خصوصی برخورد کرده و متوجه شدند تعداد بسیار زیادی از تراکنش‌ها به سمت یک آدرس مشخص هدایت می‌شوند. نکته جالب توجه این بود که از این آدرس هیچ تراکنش خروجی صورت نمی‌گرفت و وجوه فقط به آن واریز می‌شدند! به گفته بدنارک، به نظر می‌رسید فردی از چند آدرس که به آن‌ها دسترسی داشتیم در حال سرقت بود و وجوه مسروقه را به آدرس خود انتقال می‌داد. یافتن کلیدهای خصوصی ضعیف و سؤ استفاده از آن‌ها از طریق یک حدس ساده به لحاظ آماری بسیار غیر محتمل بود، بنابراین به نظر می‌رسید که هکر برای این کار از شیوه‌ای دیگر اقدام نموده باشد. این دزد بلاک چین عملاً وجوه را به محض واریز شدن به کیف پول افراد برداشت می‌کرد.

همچنین بخوایند: حملات فیشینگ (phishing) چیست؟

در مصاحبه‌ای که با بدنارک صورت گرفت، وی اظهار نمود که هکر یا تیم هک مسئول این کار، یک نود (Node) را در شبکه ایجاد کرده بود که به صورت خودکار موجودی حساب‌های دارای کلیدهای خصوصی ضعیف را تخلیه می‌کرد. برای اثبات این نظریه، محققین برای سارق تله گذاشته و یک دلار را با استفاده از یکی از کلیدهای خصوصی ضعیف که مطمئن بودند هکر از آن اطلاع دارد، ارسال کردند. آن‌ها قصد داشتند از این طریق از نحوه برداشت وجه اطلاع پیدا کنند؛ به محض واریز شدن وجه به حساب مورد نظر، یک دلار طعمه ظرف چند ثانیه ناپدید شد. به گفته محققین، اگر برداشت وجه به صورت دستی انجام می‌شد، برای ترتیب دادن تراکنش زمان بیشتری مورد نیاز بود؛ اما به محض تکمیل شدن تراکنش واریز، طعمه ظرف چند ثانیه از حساب مورد نظر برداشت شد. نتیجتاً این عملیات توسط سیستمی انجام می‌شد که در نقطه‌ای از شبکه به عنوان یک نود فعالیت می‌کرد.

بر اساس داده‌های دریافت شده از اتراسکن (Etherscan)، کیف پول دزد بلاک چین محتوی ۴۵,۰۰۰ اتر بود که ارزش آن به بیش از ۷.۳ میلیون دلار آمریکا می رسید. همچنین داده‌ها نشان ‌دهنده این امر بودند که سرقت اتر توسط این هکر بیش از یک سال قبل آغاز شده و ادامه داشته است.

درباره نویسنده

kazem

xan
Student of pure mathematics
Interested in the technology of the day and cyberspace

نظر بدهید