
حمله رینبو تیبل (Rainbow Table Attack) ؛ راهکار جلوگیری از آن چیست؟
دنیای فناوریهای دیجیتال در کنار کاربردهای بیشماری که ارائه میکند، خطراتی را نیز با خود به همراه دارد. یکی از این خطرات حمله رینبو تیبل (Rainbow Table Attack) است. حملات رینبو تیبل ممکن است بزرگترین تهدید برای کسب و کار شما نباشد. با این حال، این حملات مطمئناً تهدیدی هستند که نباید در استراتژی امنیتی کلی شما نادیده گرفته شوند. برای بررسی این حملات، با فکت کوینز همراه باشید.
حمله رینبو تیبل (Rainbow Table Attack)
حمله رینبو تیبل (به معنی جداول رنگین کمانی) مجموعهای از رمزهای عبور از پیش محاسبه شده و مقادیر هش مربوط به آنها است که میتوان از آن برای یافتن رمز عبور سادهی متنی با یک هش خاص استفاده کرد.
این مفهوم را به عنوان یک جدول شامل دو ستون در نظر بگیرید. ستون اول حاوی هش است. در حالی که ستون دوم حاوی متن ساده برای هش است. همانطور که میدانید، رمزهای عبور در یک سیستم کامپیوتری مستقیماً به عنوان متن ساده ذخیره نمیشوند. بلکه این مقادیر تبدیل به هش میشوند و با استفاده از رمزگذاری یک طرفه (عملکرد هش) ایمن میشوند.
این بدان معنی است که مقادیر هش را نمیتوان رمزگشایی کرد. بنابراین هر زمان که کاربر رمز عبوری را برای احراز هویت وارد میکند، آن رمز عبور به یک مقدار هش تبدیل میشود و با مقدار از قبل ذخیره شده مقایسه میشود. اگر مقادیر مطابقت داشته باشند، کاربر احراز هویت میشود.
بیشتر بخوانید : آیا صرافی های ناسازگار با ابزار احراز هویت به اندازه پلتفرم های سازگار ایمن هستند؟
اصطلاح “جدولهای رینبو (Rainbow Tables)” برای اولین بار توسط فیلیپ اوچسلین (Philippe Oechslin) در مقاله تحقیقاتی خود مطرح شد. این مقاله، خود بر اساس کارهای تحقیقاتی قبلی مارتین هلمن (Martin Hellman) و رونالد ریوست (Ronald Rivest) است. اصطلاح “جدولهای رینبو” برای اشاره به روش استفاده از رنگها برای نشان دادن مراحل و عملگرهای مختلف کاهشی استفاده میشود. این مفهوم یک رنگین کمان رنگارنگ با تعداد تکرارهای متناظر ایجاد میکند. از این رو رینبو تیبل نامگذاری شد.
حمله رینبو تیبل به چه معنی است؟
Rainbow Table Attack یک روش شکستن رمز عبور است که از جداول رینبو برای شکستن هش رمز عبور در دیتا بیس (پایگاه داده) استفاده میکند. مجرمان سایبری، گردآوری رینبو تیبل را به عنوان راهی آسان برای رمزگشایی رمزهای عبور به کار گرفتند تا آنها را قادر به دسترسی غیرمجاز به سیستمها کند.
آنها این کار را به جای اتکا به روش حمله دیکشنری (dictionary attack- که فضای حافظه بیشتری مصرف میکند) یا حمله brute force (که قدرت محاسباتی بیشتری مصرف میکند) انجام میدهند. تنها کاری که مهاجم باید انجام دهد این است که رینبو تیبل را بررسی کند تا هشِ رمز عبور را پیدا کند. جداول رنگین کمان عمداً برای مصرف توان محاسباتی کمتر در ازای استفاده از فضای بیشتر طراحی شدهاند. در نتیجه، معمولاً سریعتر از حملات دیکشنری یا brute force نتیجه میدهند.
اما این مزایا بهایی نیز دارند. جداول رینبو به زمان قابل توجهی برای کامپایل شدن از صفر نیاز دارند. این مسئله به این دلیل است که همه هشها و موارد محاسباتی همراه با آنها باید از قبل محاسبه و ذخیره شوند. اگرچه این موارد از پیش کامپایل شده نیز میتوانند به صورت آنلاین دانلود شوند. اما وقتی همه چیز را مرتب کردید، یک رینبو تیبل دارید که همیشه میتوانید هر زمان که نیاز به شکستن رمز عبور داشته باشید، دوباره از آن استفاده کنید.
حمله رینبو تیبل چگونه کار میکند؟
قبل از اینکه حمله رینبو تیبلی انجام شود، مهاجمان باید ابتدا به هشهای لو رفته دسترسی پیدا کنند. به عنوان مثال، یک مهاجم ممکن است آسیبپذیری را در دایرکتوری فعال یا برنامه وب یک شرکت با پایگاه دادهای که رمز عبور ضعیفی دارد پیدا کند. مهاجم هش رمز عبور را میدزدد و با استفاده از رینبو تیبل میتواند رمزهای عبور هر کاربر سیستم یا برنامه را به صورت متن ساده رمزگشایی کند.
فرض کنید 1500 رمز عبور لو رفته برای رمزگشایی دارید. در یک حمله brute force، شما باید تمام ترکیبهای کلمه ممکن را محاسبه کنید، آنها را با هش رمز عبور مقایسه کنید و این کار را برای هر رمز عبور انجام دهید. در حالی که در حمله رینبو تیبل ، همه هشها را یک بار محاسبه کردید، و اکنون فقط باید هش مناسب را پیدا کنید.
علاوه بر این تکنیکها، میلیونها هش رمز عبور فاش شده در دارک وب (dark web) در دسترس مجرمان است. هنگامی که آنها به این موارد رمز عبور دست پیدا کردند، رینبو تیبل میتواند به رمزگشایی هش رمزهای عبور کمک کند. حمله رینبو تیبل به بیان ساده به این صورت کار میکند.
چگونه از حملات Rainbow Table جلوگیری کنیم؟
جلوگیری از حملات رینبو تیبل نسبتاً ساده است. در ادامه مراحل سادهای وجود دارد که میتوانید از آنها استفاده کنیداز سالیتینگ (Saliting) رمز عبور استفاده کنید روش اصلی مقابله با حمله رینبو تیبل ، سالتینگ رمز عبور است. Salt ها به بیان ساده، راهی برای وارد کردن احتمالات به هشهای حاصله هستند.
سالت به یک رمز عبور اجازه میدهد تا چندین روش هش شدن را در اختیار داشته باشد. در صورت عدم وجود سالت، رمز عبور یکسان هر بار همان هش را ایجاد میکند. بنابراین، رمزهای عبور هش شده هرگز نباید بدون سالت ذخیره شوند. برای سیستمی که از سالت استفاده نمیکند یک رینبو تیبل کافی است. اما برای سیستمی که از salting استفاده میکند، بسته به طول رشته سالت، به هزاران رینبو تیبل نیاز است. این امر رمزگشایی رمز عبور را دشوارتر میکند.
- استفاده از MFA
استفاده از احراز هویت چند عاملی (MFA) یا دو مرحلهای (2FA) که شامل هویت شما (بیومتریک) و آنچه در اختیار دارید (توکن) میشود، دسترسی افراد به حساب شما را فقط با استفاده از یک رمز عبور بسیار دشوار میکند. این امر باعث میشود که مهاجم نتواند به طور موثر از حمله رینبو تیبل استفاده کند.
از الگوریتمهای هش منسوخ شده اجتناب کنید
مهاجمان به دنبال برنامهها و سرورهایی میگردند که از الگوریتمهای هش رمز عبور منسوخ مانند MD5 و SHA1 استفاده میکنند. قابل ذکر است که هشهای LM و NT ویندوز شامل سالت نمیشوند و آنها را به ویژه در برابر حملات Rainbow آسیبپذیر میکند. اگر برنامه شما از این الگوریتمهای ضعیف استفاده کند، خطر Rainbow Table Attack به میزان قابل توجهی افزایش مییابد.
عدم استفاده رمز عبور
اگر هش رمز عبوری برای سرقت وجود نداشته باشد، در وهله اول هیچ حمله رنگین کمانی وجود نخواهد داشت. متأسفانه، کاربران در بسیاری از اوقات از رمزهای عبور ضعیف را پیدا میکنند. آنها برای دسترسی به رمزهای عبور قوی تلاش میکنند و در نهایت آنها را یادداشت میکنند و دوباره از آنها استفاده میکنند. رمزهای عبور ضعیف به راحتی کد گشایی میشوند و سازمان را در برابر نفوذ مهاجمان آسیب پذیر میکنند. اما با این حال نداشتن رمز عبور باعث میشود هیچ حمله رنگین کمانیای نیز وجود نداشته باشد.
آیا حملات Rainbow Table هنوز یک تهدید هستند؟
برخی از کارشناسان امنیتی استدلال میکنند که جداول رنگین کمان به کمک روشهای مدرن شکستن رمز عبور منسوخ شدهاند. در عوض، اکثر مهاجمان اکنون از روشهای پیشرفتهتری برای شکستن رمز عبور مبتنی بر واحد پردازشگر گرافیکی (GPU) استفاده میکنند.
یک فارم متوسط GPU میتواند به راحتی یک رینبو تیبل را در عرض چند ثانیه بازسازی کند. این بدان معناست که رمزگذاری آن پسوردها در رینبو تیبل چندان منطقی نخواهد بود. علاوه بر این، اکثر رمزهای عبور به هر حال همراه با سالتینگ هستند. به این معنی که برای هر مقدار سالت به جدولهای رنگین کمانی نیاز داریم. برای سالت بزرگتر، این کاملا غیر عملی است.
استخراج کنندگان بیت کوین و سایر ارزهای دیجیتال از فناوری GPU برای محاسبه هش برای فارمینگ بیت کوین استفاده میکنند. ابزارهایی وجود دارند که میتوانند از فناوری GPU برای رمزگشایی هش رمز عبور بالقوه استفاده کنند. به عنوان مثال، از خوشه گرافیکی مبتنی بر لینوکس برای شکستن 90 درصد از 6.5 میلیون هش رمز عبور درز شده لینکدین در سال 2012 استفاده شد.
سخن پایانی
دنیای فناوری پر از پتانسیلهای مثبت و منفی است. در کنار آسایش و سرعتی که تکنولوژی برای ما به ارمغان آورده است، تهدیدهایی را نیز پیرامون ما قرار داده است. حمله رینبو تیبل یا Rainbow Table Attack ممکن است بزرگترین تهدید برای سازمانهای امروزی نباشد. با این حال، این نوع حملات مطمئناً یک تهدید بزرگ هستند و باید به عنوان بخشی از استراتژی امنیتی کلی شما در نظر گرفته شوند.
نظر شما در مورد این نوع حملات چیست؟ آیا راهکار بهتری برای مقابله با ناامنیهای سایبری میشناسی؟ دیدگاهتان را با ما در میان بگذارید.