چرا هکرها زودتر از مهندسان امنیت به جواب می‌رسند؟

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

در این میان از دورانی که مفهومی به نام اینترنت‌بانک در جامعه بشری شکل گرفته است تا امروزه که شاهد ورود روزافزون تلفن همراه و اینترنت اشیاء به حیطه پرداخت الکترونیکی و توسعه روش‌های ابتکاری بسیار جذاب در این زمینه هستیم، همچنان یک ماهیت مشترک، قلب اعتماد‌بخشی به‌کل این فرآیندها را تشکیل می‌دهد که در دنیای فناوری اطلاعات با نام الگوریتم‌های hash از آن یاد می‌شود. انواع الگوریتم‌های هش که خود در اصل از ترکیب دو عملگر xor و rotation شکل می‌گیرند، وظیفه مهمی در انتقال داده در شبکه‌های رایانه‌ای دارند که به آن همگرایی گفته می‌شود؛ یعنی در جایی که لازم است اطمینان حاصل کنیم، پیامی که ارسال می‌کنیم تا لحظه دریافت توسط مخاطب دچار هیچ نوع دست‌کاری نشده و تمامیت آن حفظ شده است، در مبدأ اصل پیام را از تابع هش عبور داده و خروجی آن را به انتهای پیام اضافه می‌کنیم. به‌این‌ترتیب در مقصد، فرد گیرنده پیام با عبور مجدد اصل پیام از تابع هش و مقایسه آن با مقدار ارسال‌شده از مبدأ، پی به حفظ تمامیت آن برده و به آن اعتماد می‌کند.
این پروسه تقریباً هرلحظه در دهکده جهانی در حال تکرار است و در مقایسه با سیستم‌های بیولوژیکی، می‌توان ازنظر اهمیت آن را مشابه عملیات دم و بازدم یا تپش قلب در موجودات زنده دانست. ولی گویا چند سالی است که ضربان قلب دنیای دیجیتال، آرام‌آرام در حال نامنظم‌شدن است. درواقع آسیب‌پذیری توابع هش از جایی آغاز می‌شود که برای دو مقدار ورودی متفاوت، یک مقدار خروجی مشترک تولید کنند که به این پدیده collision یا تلاقی گفته می‌شود. به‌طور مثال، در حالت عادی برای تابع هش از نوع md5 احتمال بروز تصادفی یک تلاقی معادل ۲^۶۴ است و تا اینجا می‌توان با اطمینان خوبی از آن در سیستم‌های رایانه‌ای استفاده کرد ولی وقتی پای امضای دیجیتالی به میان می‌آید که روی اسناد الکترونیکی اعمال می‌شود و بار حقوقی معادل امضای عادی یک شهروند را دارد، حمله از پیش تعیین‌شده یک مهاجم با شانس و احتمال همراه نیست، بلکه این بار با یک حمله از جنس تلاقی روبه‌رو هستید که فرد مهاجم در ‌آن با استفاده از روش‌های cryptanalysis راه میانبری برای پیدا کردن یک سند دست‌کاری‌شده پیدا می‌کند که خروجی مشابه سند اصلی داشته، ولی به‌دلخواه مقدار آن را تغییر داده است.
پس از سال ۲۰۰۰ میلادی و در همین مورد اخبار انواع حمله به تابع md5 با زمان از چند ساعت روی چندین رایانه تا حتی یک دقیقه روی رایانه همراه معمولی گزارش شده است و البته این مشکل تنها محدود به الگوریتم md5 نبوده، بلکه انواع الگوریتم‌های خانواده sha-x را نیز شامل می‌شود. ولی منشأ این سرعت عمل بالا در پیدا کردن تلاقی چیست؟ برای دست یافتن به یک پاسخ روشن، ابتدا باید دقت کنیم که همواره طرز فکر یک مهاجم سایبری با یک مهندس امنیت در دو زاویه ۱۸۰ درجه نسبت به یکدیگر قرار دارند. در جایی که مهندس امنیت احتمال نمایش عدد ۴ برای یک تاس در حال افتادن روی میز را یک‌ششم برآورد می‌کند، یک مهاجم سایبری برای اینکه نمایش عدد ۴ را به یک تاس دیکته کند، ابتدا کمی تاس را در دست خود حرکت داده، عدد ۴ را پیدا کرده و سپس آن را روی میز قرار می‌دهد! لذا درحالی‌که یک مهندس امنیت سطح امنیت سیستم‌های دفاعی خود را بر اساس CPU‌های پرسرعت برآورد می‌کند، یک مهاجم سایبری امکان شکستن سد دفاعی پیش روی خود را نه با پردازنده‌های افسانه‌ای کوانتومی، بلکه با پردازش موازی (Cluster) روی چندین کارت گرافیکی (GPU) آزمایش می‌کند. در مقاله‌ای که به شرح روش حمله روی الگوریتم sha-1 پرداخته است ارزش هر کارت گرافیک GTX970 استفاده‌شده را معادل ۳۲۲ هسته از پردازنده اینتل core-i5 3.2GHz اعلام کرده است که این سرعت سرسام‌آور ارزان‌قیمت در کنار روش‌های محاسباتی میانبر، همه شرایط برای به خطر انداختن امضاهای دیجیتالی را آماده می‌سازد.
بر همین اساس و در ادامه حملات صورت گرفته ‌روی استاندارد هش از نوع sha-1 و md5، اداره استاندارد ملی آمریکا (NIST) اقدام به طراحی و معرفی نسل sha-2 در سال ۲۰۰۱ کرده و به‌صورت دوره‌ای طی سال‌های ۲۰۰۷، ۲۰۱۰، ۲۰۱۱ و ۲۰۱۳ اقدام به حذف یکی از ویرایش‌های خود نموده است تا جایی که در سال ۲۰۱۳ نسل جدید sha-3 را معرفی کرده که در طی تمامی این موارد گزارش‌های رسمی و مقالات آکادمیک از حملات تلاقی موفق روی برخی نسخه‌ها از همه الگوریتم‌های فوق مشاهده می‌شود؛ و نتیجه اینکه امضای دیجیتال درعین‌حالی که اگر همواره بر اساس آخرین استانداردها به‌روز باشد اطمینان قابل قبولی دارد، ولی به همان اندازه هم به‌سادگی می‌تواند ناامن باشد و جعل شود، درحالی‌که قانون آن را معادل امضای فرد می‌داند.
درواقع، توجه به این نکته که واقعاً چه چیزی در ذات الگوریتم هش وجود دارد که دیر یا زود روش سریع حمله تلاقی به آن کشف می‌شود، دلیل نگارش این مقاله و پژوهش‌های مربوط به آن است؛ و پاسخ اینکه الگوریتم‌های هش برعکس الگوریتم‌های رمزنگاری که توابع منتشرشده و برگشت‌پذیر با یک کلید مخفی هستند، توابعی غیرقابل‌برگشت (یکطرفه) با الگوریتم منتشرشده و بدون کلید هستند، بنابراین مشکلاتی که توابع هش با آنها درگیر هستند را در توابع رمزنگاری همانند AES یا RSA مشاهده نمی‌کنیم. در توابع رمزنگاری درنهایت با افزایش طول کلید مسائل امنیتی شما در مقابل افزایش توان پردازشی مهاجم حل می‌شود، ولی در توابع هش شما به‌طورکلی با جایگزینی الگوریتم قدیمی با یک الگوریتم جدید به‌عنوان راه‌حل مواجه هستید. به‌طور مثال در یک مقاله از دانشگاه استنفورد گزارش ۲۰سال حمله موفق به الگوریتم RSA و دلایل موفقیت این حملات بررسی و درنهایت کاملاً مشخص شده است که اگر الگوریتم RSA مطابق استانداردهای تعریف‌شده پیاده‌سازی شود، امکان حمله به آن وجود ندارد. و اگر تا پیش‌ازاین الگوریتم‌های هش نقش قلب بانکداری الکترونیکی را بازی می‌کرده‌اند، در آینده نزدیک نقش زیرساخت فین‌تک را هم بازی خواهند کرد.

0 پاسخ

دیدگاه خود را ثبت کنید

Want to join the discussion?
Feel free to contribute!

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.