مقدمه ای جذاب بر کرک پسوردهای مختلف

کرک پسورد امروزه در دنیای امنیت از اهمیت بسیار زیادی برخوردار است، ما در این مطلب اطلاعاتی کامل درباره کرک پسورد را به شما ارائه خواهیم داد.

 مقدمه ای جذاب بر کرک پسوردهای مختلف

آکادمی برنامه نویسان ، برگزار کننده دوره های آموزش برنامه نویسی با استفاده از اساتید مجرب و حرفه ای در سراسر ایران .

[ جهت مشاهده دوره های درحال ثبت نام کلیک کنید ]

ارائه مدارک معتبر آموزشی و ورود به بازار کار .

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

حمله brute force برای کرک پسورد چیست؟( بخش اول)

این نوع از حملات برای کرک پسورد به این شکل است که شما باید به عنوان یک کاربر وارد برنامه شوید و تمامی حروف، اعداد و کاراکترها را امتحان کنید تا بتوانید پسورد سیستم را پیدا کنید.( توجه داشته باشید که این کار با استفاده از ابزارهای خودکار انجام می شود).

این کار می تواند به صورت آنلاین انجام شود( به صورت real-time با امتحان کردن تمامی نام های کاربری و پسوردهای مختلف برای ورود به حساب های شبکه های اجتماعی و یا بانک ها) یا اینکه می تواند به صورت آفلاین صورت بگیرد( به عنوان مثال اگر شما مجموعه ای از پسوردها را بدست آورده باشید می توانید آنها را به صورت آنلاین کرک کنید).

کرک پسورد به صورت آنلاین همیشه امکان پذیر نیست( بدست آوردن مجموعه ای از پسوردهای hash شده کاری سخت است) اما این روش سر و صدای کمتری دارد. دلیل این موضوع آن است که احتمالا تیم های امنیتی متوجه تعداد زیاد ورودهایی که با شکست روبرو شده اند خواهند شد اما اگر شما بتوانید عملیات کرک پسورد را به صورت آنلاین انجام دهید دیگر نیازی نیست که تلاش برای ورود به حساب ها را نگهداری کنید.

 کرک پسورد

حمله brute force برای کرک پسورد چیست؟( بخش دوم)

کرک کردن پسورد به صورت آفلاین برای پسوردهای کوتاه کار تقریبا راحتی است اما با افزایش تعداد حروف به کار رفته در رمز عبور معمولا این کار به صورت نمایی سخت تر و طولانی تر می شود. به عنوان مثال اگر شما بدانید که شخصی دارای یک رمز عبور 5 کاراکتری است که تمامی آنها از حروف کوچک تشکیل شده است آنگاه تعداد کل پسوردهای ممکن 26^5 خواهد بود( 26 حرف ممکن که در هر کاراکتر می توانند قرار بگیرند) که برابر عددی معادل 11,881,376 خواهد شد.

حال اگر شخصی دیگر از 11 کاراکتر برای رمز عبور خود استفاده کند که تمامی آنها حروف کوچک باشند تعداد پسوردهای ممکن برابر 26^11 خواهد بود که برابر عددی معادل 3,670,344,486,987,776 خواهد بود. زمانی که شما حروف بزرگ، حروف خاص و اعداد را نیز به پسورد خود اضافه کنید تا پسورد شما کرک شود. در واقع شما با این کار باعث می شوید تا امکان موفقیت کسی که با روش حمله brute force پسورد شما را کرک میکند تقریبا صفر باشد.

 کرک پسورد

چگونه از پسورد خود مراقبت کنیم؟

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

علاوه بر این تیم امنیتی می تواند بعد از تعداد مشخصی از تلاش برای ورود به یک حساب خاص که با شکست روبرو شد آن حساب را قفل کند. همچنین تیم امنیتی می تواند از یک متد ثانویه مانند تایید هویت با استفاده از کد کپچا استفاده کند که به این کار ورود چند مرحله ای به حساب گفته می شود. علاوه بر این شما می توانید از کدهای ارسالی به صورت پیامک و یا ایمیل نیز برای بالا بردن امنیت استفاده کنید.

 کرک پسورد

چگونه می توانیم سریع تر پسوردها را کرک کنیم؟( بخش اول)

dictionary attack یکی دیگر از روش های کرک پسورد است. این روش برای کرک پسورد شامل تلاش های مکرر برای ورود به یک حساب با استفاده از ترکیب هایی که از قبل به صورت یک دیکشنری ذخیره شده اند و یا یک لیست از ترکیب هایی که از قبل ذخیره شده اند می باشد. این روش معمولا سریع تر از روش brute force می باشد چرا که ترکیب های مختلف اعداد و حروف از قبل محاسبه شده اند و همین موضوع باعث صرفه جویی در زمان و قدرت محاسبه شما می شود. با این وجود همچنان اگر پسوردی که انتخاب شده است پیچیده باشد( به عنوان مثال 1098324ukjbfnsdfsnej) و در دیکشنری( لیستی از ترکیب پسوردها که شما در دست دارید) ظاهر نشده باشد این حمله نیز موفقیت آمیز نخواهد بود.

 کرک پسورد

چگونه می توانیم سریع تر پسوردها را کرک کنیم؟( بخش دوم)

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

 کرک پسورد

اگر در حال حاضر لیستی از پسوردهای هش شده را در اختیار دارید با آن چه می کنیم؟

پسوردها در فایل /etc/shadow در لینوکس و فایل C:\Windows\System32\config برای ویندوز ذخیره می شوند که در بوت آپ سیستم عامل در دسترس شما هستند. اگر شما موفق شده اید که این فایل را بدست آورید و یا اگر با استفاده از روش های دیگر موفق شده اید که لیستی از پسوردهای هش شده را بدست آورید شما می توانید آنها را به صورت آفلاین کرک کنید.

با وجود اینکه روشی که گفتیم برای ورود به حساب کاربری نیاز دارد تا برای تعداد دفعات زیاد عملیات لاگین را انجام دهد شما می توانید تلاش کنید تا آنها را بر روی ماشین خود کرک کنید بدون آنکه نیازی داشته باشید درباره هشدارهایی که در اثر وارد کردن اشتباه پسوردها برای ورود به حساب تولید می شوند نگرانی خاصی داشته باشید. بنابراین بعد از پیدا کردن رمز عبور می توانید به راحتی تنها یک بار عملیات لاگین را انجام دهید. شما می توانید از حملات brute force و دیکشنری برای بدست آوردن فایل های هش شده استفاده کنید که میزان موفقیت شما کاملا وابسته به این است که هش شما چقدر قدرتمند است.

 کرک پسورد

Hashing برای کرک پسورد چیست؟( بخش اول)

35D4FFEF6EF231D998C6046764BB935D

آیا شما این پیغام را تشخیص می دهید؟ این پیغام در واقع معادل این جمله است: Hi my name is megan.

7DBDA24A2D10DAF98F23B95CFAF1D3AB

این پیغام در واقع پاراگراف اول از این مقاله می باشد. بله شاید شما حس کنید که کاملا بی معنی است اما در واقع این یک هش است.

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

 کرک پسورد

Hashing برای کرک پسورد چیست؟( بخش دوم)

هش ها تقریبا از هر نوع محتوای دیجیتالی قابل تولید هستند. اساسا هر نوع محتوای دیجیتال می تواند به صورت باینری ( نمایش دودویی و یا به صورت دنباله ای از صفر و یک ها) نیز نمایش داده شود. به همین علت است که تمامی محتواهای دیجیتال( شامل تصاویر، اسناد و ...) می توانند هش شوند. امروزه انواع مختلفی از توابع هش وجود دارند که برخی از آنها نسبت به سایرین امن تر هستند. هش هایی که در بخش قبلی برای شما بیان کردیم با استفاده از MD5 تولید شده بودند. توابع هش مختلف در اندازه هش ها و همینطور نوع هش هایی که تولید می شوند متفاوت می باشند. محتوای مشابه در تابع هش مشابه همواره یک هش ثابت را تولید می کند. البته توجه داشته باشید که یک تغییر کوچک در ورودی می تواند کل هش را تغییر دهد. به عنوان مثال:

2FF5E24F6735B7564CAE7020B41C80F1

یک هش برای جمله Hi my name is Megan است که تنها بزرگ کردن حرف M برای کلمه Megan کل هش را تغییر داده است. هش ها در واقع توابع یک طرفه ای هستند( به این معنا که نمیتوان آنها را معکوس کرد). این به آن معنا است که هش ها( منحصر به فرد و معکوس ناپذیر) می توانند به نوعی به عنوان نوعی اثر انگشت دیجیتال برای محتوا استفاده شوند.

 کرک پسورد

مثال هایی از استفاده از هش ها( بخش اول)

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

علاوه بر این، پسوردها نیز در زمان ذخیره شدن هش می شوند. زمانی که یک کاربر پسورد خود را وارد می کند کامپیوتر مقدار هش را محاسبه می کند و آن را با مقدار هشی که در خود ذخیره کرده است مقایسه می کند. به این ترتیب کامپیوتر پسورد را به صورت یک متن ذخیره نمی کند.( به همین علت نیز بسیاری از هکرها نمی توانند به این رمز عبور دسترسی داشته باشند).

 کرک پسورد

مثال هایی از استفاده از هش ها( بخش دوم)

اگر شخصی قادر به سرقت فایل مربوط به پسوردها باشد داده هایی که سرقت می کند کاملا بی فایده هستند و نمی تواند اقدام به کرک پسورد شما کند چرا که تابع آن نمی تواند معکوس شود.( اگر چه روش هایی مانند جدول رنگین کمان وجود دارد که با استفاده از آن فرد می تواند چه متنی این هش را تولید کرده است).

 کرک پسورد

هش ها چه مشکلی دارند؟

اگر یک هش بتواند داده هایی در هر اندازه و هر نوع محتوایی را دریافت کند برای داده هایی که هش شده اند هزاران امکان مختلف وجود دارد. از آن جایی که یک هش این متن را به یک محتوا با اندازه ثابت تبدیل می کند( به عنوان مثال 32 کاراکتر) تعداد محدودی از ترکیب ها برای یک هش وجود دارد. تعداد این ترکیب ها بسیار زیاد است ولی بی نهایت نیست. در نهایت ممکن است دو مجموعه مختلف از داده ها به یک مقدار هش منتهی شوند که به این اتفاق collision یا برخورد گفته می شود که این موضوع در کرک پسورد بسیار مهم است. اگر شما یک هش را در اختیار داشته باشید و قصد داشته باشید که از هر مقدار متن ساده برای پیدا کردن متنی که با هش شما تطابق داشته باشد این کار پروسه ای بسیار سخت و زمان بر خواهد بود.

 کرک پسورد

حال اگر در زمان کرک پسورد دو هش با هم برخورد کنند چه می کنید؟

این موضوع در ریاضیات با عنوان مسئله روز تولد شناخته می شود و در کرک پسورد نیز بسیار مهم است. در کلاسی که 23 دانش آموز وجود دارد احتمال این که شخصی در یک روز خاص متولد شده باشد هفت درصد می باشد اما احتمال این که هر دو نفر در یک روز خاص متولد شده باشند تقریبا 50 درصد می باشد. دقیقا همین نوع آنالیز کردن می تواند در توابع هش در زمان کرک پسورد مورد استفاده قرار گیرد تا به این شکل دو هش که با یکدیگر تطابق دارند پیدا شوند.( به جای این که یک هش پیدا شود که با یک هش خاص مطابقت داشته باشد). برای جلوگیری از این موضوع شما می توانید از توابع هش طولانی تر استفاده کنید که از جمله این توابع هش می توان به SHA3 اشاره کرد که احتمال برخورد را به میزان بسیار زیادی کاهش می دهد.

 کرک پسورد

کرک پسورد بسیار ساده به نظر میرسد. آیا باید نگران این موضوع باشیم؟

مهمترین چیزی که شما در زمان کرک پسورد باید به خاطر داشته باشید این است که هیچکس دوست ندارد کاری بیشتر از آن چه که واقعا باید انجام دهد را انجام دهد. به عنوان مثال افرادی که برای کرک پسورد از brute forcing استفاده می کنند به میزان زیادی زمان خود را از دست می دهند و کاری سخت را در پیش دارند. اگر راهی آسان تر برای بدست آوردن پسورد شما وجود داشته باشد احتمالا این است که برای شما نقش بازی کنند و پسورد شما را از خود شما بگیرند. این به آن معنا است که شما می توانید با برخی از اقدامات امنیتی ساده به راحتی هرچه تمام در مقابل هکرها مقاومت کنید.