پشتیبانی 24/7 :

031-36691964 | 021-88203003

جستجو
چقدر زمان لازم است تا یک هکر الگوریتم های هش جدید را کرک کند؟

چقدر زمان لازم است تا یک هکر الگوریتم های هش جدید را کرک کند؟

تیتر مطالب

در این مطلب به چگونگی تلاش مهاجمان سایبری برای شکستن رمزهای عبور و زمان لازم برای هک الگوریتم های هش جدید میپردازیم.

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

حتی عبارت های رمزعبور ایمن و طولانی نیز باید هش شوند تا از افشای کامل آنها در صورت نقض داده جلوگیری شود و هرگز نباید به صورت متن ساده ذخیره شوند.

تکنیک های جدید کرک پسورد

مهاجمین مجموعه ای از ابزار و روشهای مخرب را برای کرک پسوردهای هش شده در اختیار دارند. برخی از پرکاربردترین روشهای آنها Brute Force، حملات password dictionary، حملات ترکیبی و حملات mask هستند.

حملات Brute force

یک حمله brute force شامل تلاش ‌های آزمایشی بیش از حد و اجباری برای دسترسی به حساب کاربری است. عوامل مخرب از ابزارهای تخصصی برای آزمایش سیستماتیک تغییرات رمز عبور استفاده می کنند تا زمانی که یک ترکیب کشف شود. حملات brute force اگرچه پیچیده نیستند، اما با استفاده از نرم افزارهای شکستن رمز عبور و سخت افزارهای محاسباتی پرقدرت مانند واحدهای پردازش گرافیکی (GPU) بسیار موثر هستند.
هرچند در حال حاضر حملات brute force توسط نرم افزارهای امنیتی قوی و به روز مهار می شوند اما هنوز روشی پر استفاده است.

حملات password dictionary

همانطور که از نام آن مشخص است حملات password dictionary از یک پایگاه داده رمزعبور استفاده می کند تا به ترکیب درستی از یک رمزعبور دست پیدا کند. محتویات این پایگاه داده یا به اصطلاح dictionary ممکن است شامل هر رمزعبور رایج، فهرستی از کلمات خاص و ترکیب کلمات و همچنین مشتقات و جابجایی های کلمات با کاراکترهای الفبایی و غیرالفبایی باشد. همچنین این dictionary می تواند حاوی رمزعبورهای لو رفته یا عبارات کلیدی باشد که در نقص داده ها، افشا شده اند.

حملات ترکیبی

در یک حمله رمزعبور ترکیبی، مهاجم تکنیک Brute Force را با password dictionary ترکیب کرده تا به سرعت و نتایج بهتری برسد. برای مثال یک هکر ممکن است از password dictionary استفاده کرده و ترکیب های عددی و غیرالفبایی کاراکترها را ادغام کند.

حملات ماسک

در برخی موارد، مهاجمان ممکن است الگوهای خاص پسورد، نیازمندیها یا پارامترها را بدانند. این اطلاعات به آنها این اجازه را میدهد که از حملات ماسک برای کاهش تعداد تلاش ها در فرآیند کرک استفاده کنند. در حملات ماسک از Brute Force برای چک کردن تعداد پسوردهایی که با یک الگوی خاص یکسان هستند، استفاده می کند.

چگونه الگوریتم های هش در برابر تکنیک های کرک، محافظت می کنند؟

الگوریتم‌ های ایجاد هش در بسیاری از برنامه‌های امنیتی، از نظارت بر یکپارچگی فایل گرفته تا امضای دیجیتال و ذخیره‌سازی رمز عبور، پایه اصلی هستند و نه تنها یک روش امنیتی اشتباه نیست بلکه هش کردن بسیار بهتر از ذخیره رمزهای عبور به صورت متن ساده است. با رمزهای عبور هش شده، می توانید اطمینان حاصل کنید که حتی اگر مهاجمان سایبری به پایگاه داده های رمز عبور دسترسی پیدا کنند، نمی توانند به راحتی آنها را بخوانند یا از آنها سوء استفاده کنند.
هش کردن به طور قابل‌توجهی توانایی مهاجمان در شکستن رمزهای عبور را مختل می‌کند، و به عنوان یک عامل بازدارنده حیاتی عمل می‌کند و باعث می‌شود که شکستن رمز عبور آنقدر به زمان و منابع زیادی نیاز داشته باشد که احتمالاً مهاجمان تمرکز خود را به اهداف آسان‌تر تغییر دهند.
هش کردن به طور قابل‌توجهی توانایی مهاجمان در شکستن رمزهای عبور را کاهش داده و به عنوان یک عامل بازدارنده حیاتی عمل می‌کند و باعث می‌شود که شکستن رمز عبور آنقدر زمان و منابع زیادی داشته باشد که احتمالاً مهاجمان تمرکز خود را به اهداف آسان‌تر تغییر دهند.
از آنجایی که الگوریتم های هش توابع یک طرفه هستند، تنها روش به خطر انداختن رمزهای عبور هش شده، تکنیک های brute force است. مهاجمان سایبری از سخت‌افزارهای ویژه‌ای مانند پردازنده‌های گرافیکی و نرم‌افزارهای کرک (مانند Hashcat، L0phtcrack، John The Ripper) برای اجرای حملات brute force در مقیاس (معمولاً میلیون‌ها یا میلیاردها یا ترکیبی در یک زمان) استفاده می‌کنند.

MD5

زمانی MD5 به عنوان یک الگوریتم هش قدرتمند صنعتی در نظر گرفته می‌شد، اما اکنون به دلیل آسیب‌پذیری‌های امنیتی مختلف، از نظر رمزنگاری، ناقص در نظر گرفته می‌شود. با این حال گفته می شود همچنان یکی از پرکاربردترین الگوریتم های هش باقی مانده است. به عنوان مثال، CMS محبوب WordPress همچنان از MD5 به طور پیش فرض استفاده می کند که تقریباً 43.7٪ از وب سایت های CMS را تشکیل می دهد.
با پردازنده‌های گرافیکی در دسترس و نرم‌افزارهای کرک، مهاجمان می‌توانند بلافاصله پسوردهای عددی 13 کاراکتری یا کمتر را که توسط هش 128 بیتی MD5 ایمن شده‌اند، بشکنند. از طرف دیگر، رمز عبور 11 کاراکتری متشکل از اعداد، حروف بزرگ/کوچک و نمادها 26.5 هزار سال طول می کشد.

SHA256

الگوریتم هش SHA256 متعلق به گروه (SHA-2) Secure Hash Algorithm 2 از توابع هش طراحی شده توسط آژانس امنیت ملی (NSA) است و توسط موسسه ملی استاندارد و فناوری (NIST) منتشر شده است. به عنوان یک به روز رسانی برای الگوریتم SHA-1 ، SHA256 یک الگوریتم قوی و بسیار امن مناسب برای برنامه های امنیتی امروزی در نظر گرفته می شود.
وقتی SHA256 با گذرواژه‌های طولانی و پیچیده استفاده می‌شود، با استفاده از روش‌های brute force تقریبا غیرقابل نفوذ است – یک رمز عبور 11 کاراکتری SHA256 با استفاده از اعداد، حروف بزرگ/کوچک و کاراکترها 2052 سال طول می‌کشد تا با استفاده از پردازنده‌های گرافیکی و نرم‌افزار کرک شکسته شود. با این حال، مهاجمان می‌توانند فوراً رمز عبور 9 کاراکتری هش شده SHA256 که فقط از کاراکترهای عددی یا کوچک تشکیل شده‌اند را بشکنند.

Bcrypt

کارشناسان امنیتی هر دو الگوریتم SHA256 و bcrypt را به عنوان الگوریتم های هش قوی برای برنامه های امنیتی مدرن در نظر می گیرند. با این حال، برخلاف SHA256، bcrypt مکانیسم هش خود را با استفاده از salting تقویت می‌کند – با افزودن یک قطعه تصادفی داده به هر هش رمز عبور برای اطمینان از منحصر به فرد بودن، bcrypt رمزهای عبور را در برابر تلاش‌های dictionary یا brute force بسیار انعطاف‌پذیر می‌کند. علاوه بر این، bcrypt از یک عامل جنبی استفاده می کند که تعداد تکرارها را برای اجرای الگوریتم تعیین می کند.
این ترکیب salting و عامل جنبی، bcrypt را در برابر حملات dictionary و brute force بسیار مقاوم می کند. یک مهاجم سایبری که از پردازنده‌های گرافیکی و نرم‌افزارهای کرک استفاده می‌کند، ۲۷۱۵۴ سال طول می‌کشد تا یک رمز عبور هشت کاراکتری متشکل از اعداد، حروف بزرگ/کوچک و نمادهایی که توسط bcrypt هش شده‌اند را بشکند. با این حال، رمزهای عبور bcrypt عددی یا فقط با حروف کوچک زیر هشت کاراکتر، شکستن آنها بی اهمیت است و بین چند ساعت تا چند ثانیه زمان می برد تا به خطر بیفتد.

چگونه هکرها الگوریتم های هش را دور می زنند؟

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

منبع:
thehackernews.com