Rainbow Table چیست؟ معرفی کاربرد جدول رنگین کمان در کرک پسورد
- بهدست: Admingfars
- دستهبندی: شبکه و امنیت
- Tags: جدول رنگین کمان
رمزهای عبور در یک سیستم کامپیوتری مستقیماً به صورت متن ساده ذخیره نمی شوند، بلکه با استفاده از رمزگذاری هش می شوند. یک تابع هش یک تابع یک طرفه است، به این معنی که نمی توان آن را رمزگشایی کرد. هر زمان که یک کاربر رمز عبور را وارد می کند، آن را به یک مقدار هش تبدیل می کند و با مقدار هش از قبل ذخیره شده مقایسه می شود. اگر مقادیر مطابقت داشته باشند، کاربر احراز هویت می شود.
جدول رنگین کمان یک پایگاه داده است که برای احراز هویت با شکستن هش رمز عبور استفاده می شود. این یک فرهنگ لغت از پیش محاسبه شده از رمزهای عبور متن ساده و مقادیر هش مربوط به آنها است که می تواند برای یافتن اینکه رمز عبور متن ساده یک هش خاص را ایجاد می کند، استفاده می شود. از آنجایی که بیش از یک متن میتواند یک هش را تولید کند، مهم نیست که بدانیم رمز اصلی واقعاً چه بوده است، تا زمانی که همان هش را تولید میکند.
Rainbow Table Attack چگونه کار می کند؟
جدول رنگین کمانی با انجام یک تحلیل رمز بسیار سریع و موثر کار می کند. بر خلاف حمله bruteforce، که با محاسبه تابع هش هر رشته ای که با آنها وجود دارد، محاسبه مقدار هش آنها و سپس مقایسه آن با آنچه در رایانه در هر مرحله انجام می شود، کار می کند. حمله جدول رنگین کمانی با محاسبه هش مجموعه بزرگی از رشته های موجود، این نیاز را برطرف می کند. دو مرحله اصلی در این مورد وجود دارد:
ایجاد یک جدول
در اینجا، هش یک رشته گرفته میشود و سپس برای ایجاد یک رشته جدید کاهش مییابد، که مجدداً کاهش مییابد. به عنوان مثال، بیایید جدولی از رایج ترین رمز عبور، 12345678 ، با استفاده از تابع هش MD5 روی 8 کاراکتر اول ایجاد کنیم:
- ابتدا رشته را می گیریم و از تابع هش md5 عبور می دهیم.
hashMD5(12345678) = 25d55ad283aa400af464c76d713c07ad
- ما فقط با گرفتن 8 کاراکتر اول هش را کاهش می دهیم. سپس، آن را دوباره هش می کنیم.
hashMD5(25d55ad2) = 5c41c6b3958e798662d8853ece970f70
- این کار تا زمانی که هش کافی در زنجیره خروجی ایجاد شود تکرار می شود. این یک زنجیره را نشان می دهد که از اولین متن ساده شروع می شود و به آخرین هش ختم می شود.
- پس از به دست آوردن زنجیر کافی، آنها را در یک میز نگهداری می کنیم.
شکستن رمز عبور
با شروع با متن هش شده (رمز عبور) بررسی می شود که آیا در پایگاه داده وجود دارد یا خیر. اگر چنین است، به ابتدای زنجیره بروید و شروع به هش کنید تا زمانی که یک مسابقه وجود داشته باشد. به محض بدست آوردن تطابق، فرآیند متوقف می شود و احراز هویت کرک می شود. فلوچارت زیر مراحل را توضیح می دهد:
مزایا و معایب Rainbow Table Attack
مزایای:
- برخلاف brute-forcing، انجام تابع هش مشکل اینجا نیست (زیرا همه چیز از قبل محاسبه شده است). با همه مقادیری که قبلاً محاسبه شدهاند، به یک عملیات جستجو و مقایسه ساده روی جدول ساده شده است.
- نیازی به دانستن رشته رمز عبور دقیق نیست. اگر هش مطابقت داشته باشد، مهم نیست که رشته رمز عبور خود نباشد. احراز هویت خواهد شد.
معایب:
- مقدار زیادی فضای ذخیره سازی برای جداول فروشگاه مورد نیاز است.
- با همه مقادیری که قبلاً محاسبه شدهاند، به یک عملیات جستجو و مقایسه ساده روی جدول ساده شده است.
دفاع در برابر حملات جدول رنگین کمان
با استفاده از تکنیکهای salt که یک داده تصادفی است که به همراه متن ساده به تابع هش ارسال میشود، میتوان به راحتی از حملات جدول رنگین کمان جلوگیری کرد . این تضمین می کند که هر رمز عبور دارای یک هش منحصر به فرد تولید شده است و از این رو، از حمله جدول رنگین کمانی، که بر اساس این اصل کار می کند که بیش از یک متن می تواند دارای مقدار هش یکسان باشد، جلوگیری می شود.
تکنیک دیگری که به جلوگیری از حملات پیش محاسباتی کمک می کند کشش کلید است. با استفاده از این، salt، گذرواژه و برخی از مقادیر هش میانی چندین بار از طریق تابع هش اجرا میشوند تا زمان محاسباتی مورد نیاز برای هش کردن هر رمز عبور افزایش یابد. یک رویکرد جایگزین، به نام تقویت کلید، کلید را با نمک تصادفی گسترش می دهد، اما سپس (برخلاف کشش کلید) به طور ایمن نمک را حذف می کند. این امر هم مهاجم و هم کاربران قانونی را مجبور میکند تا یک جستجوی brute-force برای مقدار نمک انجام دهند. بنابراین، هیچ نکته ای برای دور زدن نمک وجود ندارد
وحید پورنچی کنگرلو
بدون دیدگاه