هش یا هشینگ چیست ؟
کلمه Hash (هش) در زبان خودمان به معنای درهم سازی می باشد زمانیکه مباحث امنیتی مطرح می شوند یکی از موضوعات مهم Hashing می باشد. Hashing (هشینگ) روشی است که برای بررسی یکپارچگی دیتا از آن استفاده می شود.
در حال حاضر دو الگوریتم زیر برای انجام عمل Hash وجود دارد:
هشینگ روشی برای كد كردن داده با طول رشته ثابت هست كه به صورت يكطرفه عمليات رمز نگاری را انجام می دهد و عملا روش متعارفي براي رمز گشایی آن وجود ندارد. البته روش های غیرمتعارف برای این کار وجود دارد. به عنوان مثال در برخی سایت ها دیتابیس بزرگی از رایج ترین کلمات و عبارات و مقدار هش شده ی آنها وجود دارد. و در صورتی که مقدار هش شده ی عبارت رایجی را به آن بدهید، اگر در دیتابیس بیاید مقدار ورودی را به شما خواهد گفت.
الگوریتم MD5 یکی از پرکاربردترین الگوریتم های هش کردن داده ها می باشد که می توان از آن برای اطمینان از صحت فایل ها و ذخیره سازی امن داده ها استفاده نمود.
برنامه های بسیاری برای بدست آوردن کد MD5 یک فایل و یا یک متن وجود دارد. شما می توانید به صورت آنلاین در برخی سایت ها، کد MD5 داده ورودی خود را بدست آورید و یا از برنامه های معروفی مانند Md5sum، Md5Checker، WinMd5، WinMd5sum استفاده نمایید.
۱. MD5 Hashes
۲. Salted MD5 Hashes
۳. MD5Crypt Digests
۴. a) HMAC-SHA1 key
۴. b) SHA-1 Digests
۵. SHA-2 Digests
۶. SHA-3 Digests
۷. NTLM Hashes
۸. CRC32 Hashes
کرک هش (Hash Crack) یا کرک کردن هش (Hash Cracking) فرآیندی است که در آن تلاش میشود برای باز کردن یک هش (Hash)، یا هش کردن (Hashing) برگشتناپذیر را بازگرداند. هش یک تابع رمزنگاری است که یک رشته متنی را به یک رشته دیگر به طور ثابت و با اندازه ثابت تبدیل میکند. عموماً هدف از استفاده از هش، مخفی کردن رشته متنی اصلی است.
با توجه به این که هشها توسط انواع نرمافزارهای رمزنگاری و سیستمهای امنیتی مورد استفاده قرار میگیرند، کرک کردن هش برای تست کردن قابلیت امنیتی سیستمها، بازیابی رمزعبورهای فراموش شده، یا حتی برای اهداف نفوذ و هک به سیستمهای دیگر، استفاده میشود.
برای کرک کردن هش، ابتدا باید هدف را مشخص کرد. در این مرحله، انواع هشهای مختلفی که میتوان مورد حمله قرار داد را باید شناسایی کرد. برخی از معروفترین هشها شامل MD5، SHA1، SHA256، SHA512 و bcrypt هستند.
در مرحله بعد، برای کرک کردن هش، از روشهای مختلفی استفاده میشود که میتوان به شرح زیر اشاره کرد:
۱. در Dictionary Attack: در این روش، یک لیست از کلمات و عبارات رایج برای رمز عبور به عنوان ورودی استفاده میشود. نرمافزار کرکر، تلاش میکند تا با استفاده از این لیست، رمز عبور مورد نظر را پیدا کند.
۲. در Brute Force Attack: در این روش، تمام حالات ممکن رمز عبور (با فرض استفاده از حروف بزرگ و کوچک، اعداد و نمادها) به صورت پیاپی بررسی میشوند تا رمز عبور درست پیدا شود. این روش، بسیار زمانبر و پرمصرف است.
۳. در Rainbow Table Attack: در این روش، یک جدول از هشهای پیشبینی شده، که به عنوان “رینبو تیبل” شناخته میشود، استفاده میشود. هش مورد نظر با هشهای موجود در جدول مقایسه میشود و در صورت تطابق، رمز عبور مورد نظر پیدا میشود.
۴. در Hybrid Attack: این روش، ترکیبی از روشهای Brute Force و Dictionary Attack است. در این روش، ابتدا با استفاده از لیست کلمات و عبارات رایج، تلاش میشود تا رمز عبور پیدا شود. در صورتی که نتیجهای به دست نیامد، روش Brute Force برای تست تمام حالات ممکن رمز عبور به کار گرفته میشود.
در نهایت، باید توجه داشت که کرک کردن هش، فقط برای تست کردن قابلیت امنیتی سیستمها و یا در صورتی که مجوز قانونی برای این کار وجود داشته باشد، مجاز است. در غیر این صورت، این کار به عنوان یک فعالیت غیرقانونی شناخته میشود و ممکن است به مجازاتی شدید مانند جریمه پولی و یا حتی زندان منجر شود.
۱. Straight *
۲. Combination
۳. Brute-force
۴. Hybrid dict + mask
۵. Hybrid mask + dict
در زیر لیستی از بهترین وب سایت های کرک هش رو مشاهده می کنید: