اکثر اطرافیان ما همیشه درحال نالیدن از نبود یک رمز عبور قوی هستند و از ما طلب میکنند تا یک رمز خوب برایشان بسازیم! با این وجود، اندک تلاش و وقت لازم را برای ساخت یک رمز قوی صرف کرده و درنهایت به هر آنچه که بتوان ساخت، راضی میشوند. نتیجهی این امر، دزدیده شدن، لو رفتن و شکستن رموز مختلف در مقاطع گوناگون است. لذا، «اگزو» قصد دارد در مقالهی امروز نحوهی شکستن یک رمز عبور را از دید یک مهاجم دیجیتالی نشان داده تا بلکه به اهمیت ساخت یک رمز خوب پی ببرید! ما برایتان نحوهی شکستن رموز مختلف و روش انجامش را نشان میدهیم تا اضطراری بودن این امر برایتان ملموس شود. با «اگزوگیم» در بررسی راههای شکست و عبور از موانع امنیتی رموز دیجیتالی همراه شوید.
پیش از آنکه خیالات بسیار دور و عجیب در رابطه با شکستن کلیدهای مختلف متصور شده، بدانید که تنها سپر امنیتی شما مقابل این متجاوزان همان رمز ده حرفی بسیار قوی و عجیب است. همین و بس. هرچیزی که کوتاهتر و سادهتر باشد، به احتمال قوی در آینده شکسته میشود! شاید با دانستن این موضوع، به سراغ نرمافزارهای مدیریت رموز مختلف بروید که اتفاقا مقالهای را هم در این باره تالیف کردهایم. شما میتوانید از اینجا به مقالهی راهنمایی استفاده از نرمافزارهای مدیریت رموز عبور دسترسی پیدا کنید. توجه داشته باشید که روشها و متودهای استفاده شده در این مقاله بهمنظور شکست رموز، تنها صرفهی آزمایشی داشته و استفادهی آنها جهت عبور از موانع امنیتی وبسایتها، خدمات یا موارد دیگر غیر اخلاقی محسوب میشود. لذا، مسئولیت و عواقب استفادهی نا به جا از آنان بر عهدهی خودتان خواهد بود.
چگونه عمل «هَش کردن» رمز عبور شما را قویتر میکند؟
برای متجاوزین دیجیتالی، یک وبسایت بیمسئولیت وبسایتی است که رموز دیجیتالی کاربرانش را به شکل اصلیشان، یعنی «متن ساده» (Plaintext)، ذخیره کند. در عوض، یک دامنهی مسئولیتپذیر و با فکر، سعی میکند تا عبارات وارد شده را مطابق الگوریتمی که «هَشکردن» نام دارد، به یک «هَش» تبدیل کند. «هَش» رشتهای از اعداد و حروف مختلف است که بدون هرگونه نظم خاصی کنار یکدیگر قرار میگیرند. «هَش» مدلهای بسیاری دارد، اعم از «MD5»، «SHA2»، «SHA3» و غیره.
آن دامنه هیچوقت نوع الگوریتمی که برای «هَش کردن» استفاده کرده را فاش نمیکند، چرا که تنها کار متجاوزین را راحتتر میکند. برخی دامنهها سعی میکنند عبارات را یک بار به «هَش» تبدیل کرده و سپس آن «هَش» را خود به یک «هَش» دیگر تبدیل کنند! اینگونه، رشتهای غیرقابل پیشبینی و بیمعنی از حروف و اعداد را خواهند ساخت. ساخت یک «هَش» نمونه بسیار ساده است. برای ساخت یک «هَش» مدل «MD5» نیاز دارید به وبسایتی چون «MD5hashgenerator.com» مراجعه کرده و یک لغت نمونه را «هَش» کنید. ترجیحا از رمز عبور واقعی خود برای انجام این آزمایش استفاده نکنید. به هرحال فضای مجازی صاحب ندارد! مدل «MD5» یک الگوریتم قدیمی است که هماکنون، به دلایل مختلف، دیگر امن محسوب نمیشود.
با این حال، برای نشان دادن قابلیتهای عمل «هَش کردن»، طبیعت آن و نحوهی شکسته شدنش بسیار کارآمد هستند. ما خود نیز لغت «maverick» را به یک «هَش» تبدیل کرده و نتیجهی 55f9c405bd87ba23896f34011ffce8da را دریافت کردیم. الگوریتم «هَش کردن»، بخاطر حفظ امنیت رمز، پروسهای یک طرفه را طی کرده و این یعنی که شما نمیتوانید یک رمز «هَش» شده را به حالت سابقش بازگردانید. در همین راستا، جالب است بدانید که اگر یک وبسایت از الگوریتم مذکور استفاده کند، آن نیز از ماهیت واقعی رمز شما باخبر نخواهد بود! آن وبسایت، برای فهم اینکه آیا شما رمز را درست وارد کردهاید یا خیر، ابتدا آن را «هَش» کرده، سپس «هَش» حاصل را با دادهی خود مقایسه میکند. در صورت وجود شباهت میان دو مدل «هَش»، شما اجازهی ورود را دریافت خواهید کرد.
چگونه میتوان رموز «هَش» شده را شکست؟
همانطور که ذکر کردیم، عمل «هَش کردن» در حفظ امنیت رمز شما بسیار حیاتی و مهم است. اما این به معنای غیرقابل نفوذ بودنش نیست! یک متجاوز برای شکستن یک «هَش» بایستی یک نمونه ساخته و آن را با «هَش» رمز شما مقایسه کند. بدین صورت که ابتدا رمز شما را، از طرایق گوناگون، حدس زده، سپس آن را تبدیل به یک «هَش» میکند. اگر دو «هَش» یکسان باشند، طبیعتا رموز یا حالات اولیهشان هم یکسان بوده و اینگونه شخص میتواند به رمز عبور شما دسترسی پیدا کند. اگر هم اشتباه کند، این کار را بارها و بارها تکرار کرده تا درنهایت به رمز شما برسد. یک شخص نمیتواند به همین راحتیها هم وارد حساب شخصی کسی، برای مثال، در وبسایت «آمازون» (Amazon) بشود. اما میتواند خودش را به باهوشی «بیل گیتس» (Bill Gates) دیده، و آنقدر به حدس زدن مشغول شود تا درنهایت بخت با او یار شود و به رمز اصلی دست پیدا کند.
و اینگونه زندگی یک نفر بهم میریزد. نترسید. قرار نیست همه اینطور باشند و قرار هم نیست وبسایت دست روی دست گذاشته و آنها را به خیال خودشان رها کنند. یک وبسایت خوب سامانهی نظارت درونی را دارا خواهد بود. این سامانه شخصی را به دفعات مکرر رمزی را اشتباه وارد کرده از سایت اخراج خواهد کرد. در این بین ممکن است آدرس مجازی شما یا دیگر حسابهایتان هم مورد توجهشان قرار گرفته و اینگونه به آدرس واقعی شما دسترسی پیدا کنند.
مورد بالا یک سپر دفاعی بسیار قوی است. اما حملهی بزرگ سال 2019، که پیشتر در مقالهی نحوهی ساخت رموز عبور مختلف که به آن اشاره کرده بودیم، نشان داد که حتی چنین موانعی هم نمیتوانند از پس متجاوزین برآیند. طی این حمله، حدود 2 میلیارد و 19 میلیون رمز عبور، نام کاربری، و آدرس الکترونیکی در فضای مجازی فاش شدند. با انتشار رموز «هَش» شده، دیگر متجاوزین خیالشان راحت شده و کارشان را جهت دسترسی به دادههای دیگران شروع کردند. صرفا نیاز بود تا در خانه به حدس زدن مشغول شده و «هَش»های احتمالیشان را با آنهایی که لو رفته مقایسه کنند. اینگونه، بدون وجود هر گونه خطر یا ریسک، به اهداف خود خواهند رسید. در چنین موقعیتی، تنها چیزی که متجاوزین نیاز دارند بدانند، الگوریتمی است که برای «هَش کردن» رموز مختلف استفاده شده است. سپس، با استفاده از توان بیانتهای یک رایانهیِ شخصی، میلیاردها حدس را در آن واحد زده تا بلکه تغییرات اعمال شده را پس بزنند. دشمنان متجاوزین در چنین شرایطی، توان رایانه، زمان، و میزان هوشمندی رمز عبور شماست.
شکستن یک رمز عبور چقدر میتواند سخت باشد؟
شکستن یک رمز عبور میتواند بشدت پیچیده و سخت شود. رمزی متشکل از تنها یک حرف حدود 26 الی 52 احتمال را برای حدس زدن ایجاد میکند. با اضافه کردن حروف بزرگ و افزودن اعداد بین 0 تا 9، شما احتمال مربوطه به عدد 62 خواهید رساند. با افزودن حروف مخصوص به این رشته هم به 96 احتمال ممکن خواهید رسید. لازم به ذکر است که به خدمتگیری حروف خارجی و متمایز، مثل ژاپنی، میتواند این پروسه را تحت تاثیر خود قرار داده و سختتر کند. براساس 96 حالت ایجاد شده، حتی رمزی چهار حرفی مثل t7G( مستلزم اعمال 84 میلیون و 934 هزار و 656 حدس متمایز (96 به توان 4) خواهد بود! پس با این حال، یک رمز چهار حرفی باید خیلی قوی باشد، مگر نه؟ خیر!
جدول ذیل، که در سال 2018 توسط گروه رمزشکنان مختصص «Terahash» ایجاد شده نشان میدهد که شکستن یک رمز چقدر آسان و ساده، در همان حال سخت و طاقتفرسا میتواند باشد. این جدول اکثر الگوریتمهای مهم «هَش کردن» را نیز نشان میدهد. رنگ هر خانه، میزان سختی شکستن الگوریتم استفاده شده برای «هَش کردن» یک رمز را که توسط گروه «Terahash» شکسته شده، نشان میدهد. معروفترین الگوریتم «هَش»، موسوم به «NTLM»، به طرز عجیبی سریعتر و آسانتر از بقیه شکسته شده که نشان میدهد چگونه اکثر افراد در خطر هک شدن هستند. الگوریتمهای ناامن با رنگ قرمز تیره نشان داده شدهاند. در آن سمت جدول هم الگوریتمهای «بیتکوین» (Bitcoin) و «لایتکوین» (Litecoin) را داریم که سختترین و امنترین نوع «هَش» بوده و با رنگ سبز و زرد نشان داده میشود.
اما تعیین نوع الگوریتم استفاده تنها بخشی از چالش شکستن یک رمز عبور است بخش دیگر آن، تعیین خود رمز است. همانطور که اشاره کردیم، برای حدس یک رمز، باید «هَش»ها یکی باشند. در جدول فوق شما همچنین قادر به مشاهدهی طول خود رموز و درجهی سختی شکسته شدنشان، در کنار الگوریتم استفاده شده، خواهید بود. آبی فیروزهای سمبل رموز چهار الی هشت حرفی، یا رموز کوتاه بوده که به سادگی، بسته به نوع الگوریتم استفاده شده، طی یک ساعت شکسته میشوند. خانههای سبز تیره رموزی را نشان میدهند که شکسته شدنشان میتواند حدود 1 روز کامل طول بکشد. برای شکستن رموز خانههای سبز روشن حدود 1 هفته نیاز بوده و همینطور ادامه دارد. خانههای نارنجی و قرمز ممکن است یک سال کامل را جهت شکسته شدن به خود اختصاص دهند! از این جدول، میتوان دو برداشت مهم داشت. اول آنکه رموز کوتاه، یعنی حدود 4 الی 6 حرف، مطابق گفتههای «Terahash» به سادگی، فارغ از الگوریتمش، شکسته میشوند. دوم هم اینکه میزان مقاومت یک رمز مقابل شکسته شدن با تنها رساندن آن به ده حرف مختلف به مقادیر غیر قابل تصوری افزایش مییابد.
شکستن عبارات مختلف پروسهای مشابه استخراج ارزهای دیجیتالی را دنبال میکند. برای شکستن یک عبارت به ترتیب اول پردازندهها قرار میگیرند، که صرفا مفید هستند، سپس تراشههای گرافیکی، که خیلی عملکرد بهتری دارند، و در جایگاه آخر هم برخی برنامههای ملی جهت شکست رموز مختلف که از توان غیرقابل تصوری استفاده میکنند، قرار دارند. فناوری مورد استفادهی «Terahash» از چندین تراشهی گرافیکی استفاده میکند که در مقایسه با یک رایانهی شخصی عادی بسیار توانمندترند. با این حال، تنها چیزی که رایانهی شما جهت شکستن یک رمز نیاز دارد، یک تراشهی گرافیکی قوی است. در آزمایشهای مختلفی که از دستگاه «Microsoft Surface Book 3» یا تراشهی «GeForce GTX 1660Ti» استفاده شدند، سرعت حدس زدن 6959 «مگاهَش»، یعنی تقریبا 7 میلیارد «هَش» بر ثانیه کسب شد که بسیار زیاد است. رایانههای شخصی «دسکتاپ» احتمالا بیشتر از این مقدار بتوانند کار کنند.
نحوهی شکستن رموز با استفاده از برنامهی «Hashcat»
نرمافزارهای بسیاری برای شکستن رموز وجود دارند. ما در این مقاله روی یکی از آنها، با نام «Hashcat» تمرکز خواهیم کرد. برنامهی «Hashcat» به رموز «هَش» با استفاده از زور بازوی دیجیتالی، قوانین مختلف، حملات «ماسکی»، حملات «لغتنامهای» و امثالهم، حمله میکند. در ادامه به توضیح همهی عبارات مذکور خواهیم پرداخت.
برنامهی «Hashcat» در حقیقت برای کار کردن از زیرمجموعههای مخصوص «لینکوس» (Linux)، مثل «کالی لینوکس» (Kali Linux)، استفاده میکند. این زیرمجموعهها اختصاصا برای نفوذ به سیستمهای امنیتی طراحی شدهاند. شما میتوانید «کالی لینوکس» را از طریق فروشگاه برنامههای «مایکروسافت» (Microsoft) دانلود کرده و آن را در زیر سیستم مخصوص پوستهی «Linux» در «ویندوز» قرار دهید. صرفا دقت کنید که زیر سیستم «ویندوز» شما مخصوص سیستم عامل «Linux 2» باشد، چرا که بدون آن انجام پروسههای رایانشی توسط تراشهی گرافیکی ممکن نخواهد بود. البته راه حل سادهتری هم وجود دارد و آن به واسطهی وجود یک الگوی «دودویی» مخصوص «ویندوز» در «Hashcat» ممکن میشود. شما بایستی ابتدا این الگو را برای سیستم عامل «ویندوز» خود دانلود کنید. این الگو از رابط دستوردهی «ویندوز» استفاده کرده و به کمک واسط برنامهبنویسی کاربردی هستههای «CUDA» تراشههای گرافیکی «اِنویدیا»، یا برنامهای سادهتر چون درایورهای «OpenCL» کار خواهد کرد.
برنامهی «Hashcat» به وسیلهی سه جزء اساسی کار میکند: خود برنامه و دو فایل «Text» که توسط کاربر ساخته میشوند. یکی از آن فایلها حاوی «هَش»هایی است که باید شکسته شده و دیگری منبعی برای ذخیرهی «هَش»های شکسته و بیاستفاده است. لذا، میتوان یکی را «hash.txt» و دیگری را «cracked.txt» نامید. برای انجام یک آزمایش، تصمیم بر این شد که یک ساده و ضعیف را «هَش» کرده و سپس آن «هَش» را درون فایل اول قرار دهم. این کار را انجام داده و فایل را ذخیره نمودم. سپس برنامهی دستورات ویندوز در بخش دسترسیهای تمام و کمال «ادمین» را باز کرده و «Hashcat» را به کار انداختم. برنامهی «Hashcat» هم اینگونه توسط «ویندوز» شناخته شده و فعال میشود. وقت «هَک کردن» فرا رسیده!
کارمان را ابتدا با اعمال فشار زیاد روی رموز آغاز میکنیم. سعی بر این است که با استفاده از «Hashcat» سلسلهای نامتناهی از حدسها را زده تا بلکه به رمز مدنظرمان برسیم. شما میتوانید دستورات لازمه را از طریق بخش سوال و جواب برنامهی «Hashcat» مطالعه کنید. اگر هم حوصلهتان نمیکشد یا وقت ندارید، مشکلی نیست. کافی است دستور ذیل را در بخش دستورات وارد کرده تا برنامه شروع به کار کند:
Hashcat –m0 –a3 –o cracked.text hash.txt
یک رمز ساده و کوتاه مثل «fred» تنها لحظاتی میتواند مقابل «Hashcat» دوام بیاورد. طی این پروسه، شما میتوانید سرعت شکسته شدن رمز را از طریق خط «Speed #1» مشاهده کرده که در آزمایش ما، حدود تقریبی 1 میلیاد بر ثانیه بوده است. این پنجره به شما حرارت تراشهی گرافیکی (خط Hardware.Mon.#1) و حفاظهای مربوطه را هم نشان میدهد. برای بررسی مجدد رمز «هَش» شده، فایلی را که در آن رموز شکسته شده قرار دارد را باز کنید. حال، در این فایل «هَش» اولیه و رمز شکسته شدهاش را، که خروجی هستند، مشاهده خواهید کرد. در این آزمایش، عبارات کوتاه دیگری مثل «4289»، «yniu»، «tg5f» و «Trxc» را هم آزمایش کردیم. با آنکه این رموز کوتاه پیچیدگیهای خاص خود را داشتند، تنها چند ثانیه دوام آورده و شکسته شدند. سپس عبارت «jRtw» را امتحان کردیم و اتفاقی جالب رخ داد. «Hashcat» نتوانست بعد از گذشته ثانیهها، دقایق و حتی چند ساعت آن را بشکند. بنظرتان چه رخ داده؟ جواب ساده است: ما یک «ماسک» را شکستیم و این خبر خوبی است.
قوانین رموز، «ماسک»ها و حملات «لغتنامهای»
متجاوزین رموز دیجیتالی، مثل ما میدانند که شکستن رموز طولانیتر و پیچیدهتر به مراتب دشوارتر از سایر عبارات است. آنها همچنین میدانند که برخی از افراد، با استفاده از لغات و الگوهای خاص برای ساخت رموز، «تقلب» کرده و کلیدواژههایی را میسازند که شکستنشان صبر بسیار میطلبد. چنین رموزی رشتههای طولانی و الگوهای دست نیافتنی ایجاد کرده که تنها کار را برای یک متجاوز سختتر میکنند. اما باید بدانید که آنها هم میتوانند به اندازهی شما «تقلب» کنند، آن هم به کمک یک سری «قوانین»، «ماسک» و «لغتنامه»های خاصی که برای شکستن چنین عباراتی طراحی شدهاند. بعنوان مثال، جدول ذیل از دادههای «SplashData» ضعیفترین رموز سال 2018 و 2019 را نشان داده که در لغتنامهی شخصی هر متجاوزی یافت میشوند. این جدول همچنین خطر استفادهی دوباره از گذرواژههای عادی را نشان میدهد، چرا که با شکست یکبارهی آن رمز، خطر شکست دوبارهاش افزایش مییابد. همچنین، ممکن است شخص آن را روی دیگر حسابهای مجازی شما امتحان کند. به هرحال، برخی از افراد وجود دارند که مقداری تنبلی کرده و یک رمز را برای چندین حساب به کار میبرند.
یک حملهی «لغتنامهای» میتواند از تکواژگان یا رشتهای از واژگان، در کنار لیستی از اسامی عادی و رموز عامیانهی کاربران، استفاده کند. برای مثال، از پایگاه برنامهی فروشگاهی «RockYou» که در سال 2009 مورد حمله واقع شد، حدود سی میلیون رمز قوی به بیرون درز پیدا کرد. این واقعه «لغتنامهی» شخصی متجاوزین را مجهزتر کرده و موجبات افزایش حملاتشان را فراهم آورد. یک «ماسک» روشی مجزا از این حالت مذکور بوده و از الگوهای سادهسازی بهمنظور شکست یک گذرواژه استفاده میکند. تا به حال رمزی را طراحی کردهاید که با یک حرف بزرگ انگلیسی شروع شده و ختم به یک نقطه شود؟ رمزی که با دو عدد همراه بوده چطور؟ اگر جوابتان «بله» است، بدانید که تنها نیستید. خیلیها چنین میکنند. هر دو الگوی مذکور یک «ماسک» محسوب شده و با انجام یک مهندسی معکوس ساده میتوان آنها را به برنامههای قفلشکن تبدیل نمود.
«قانون» عبارت پیچیدهتری است که اغلب ترکیبی از حملات «ماسک» و »لغتنامهای است». اگر گذرواژه شما یک کلمه مشترک را با دو رقم ترکیب کند یا نام خاله شما را با یک عدد و یک علامت تعجب در انتها ترکیب کند، یک قانون میتواند خیلی سریعتر آن رمز را پیدا کند، تا اینکه حدسهای تصادفی بزند. این میتواند دلیلی برای استفاده از یک مدیر گذرواژه باشد. چرا که نه تنها یک رمز عبور طولانی ایجاد میکند، بلکه آن رمز عبور بسیار تصادفیتر از رمز عبوری است که خود شما معمولا ایجاد میکنید.
هر چند به یاد داشته باشید که ابزار رمزشکن، هیچ ایدهای از تعداد کاراکترهای گذرواژه شما ندارند. برای مثال، با گذرواژه چهار کاراکتری که ایجاد کردم، اتفاقی جالب برای ابزار رمزشکن رخ داد. رویداد بدین شرح بود: حملهی ماسک پیشفرض «Hashcat» آگاه شده که به راحتی میتوان از هر چیزی که از قبل در برنامههای ماسک خود برنامه ریزی نشده است، صرف نظر کرده و رمزهای چهار کاراکتری را کنار بگذارد. اینگونه، سریعتر و راحتتر به سمت رمزهای پنج کاراکتری میرود.آیا این به معنی است که «jRtw» یک رمز عبور غیرقابل شکست است؟ البته که نه! در این حالت، یک هکر دیگر میتواند به سادگی قانونی بنویسد که به «Hashcat» میگوید قبل از ادامه کار هر رمز عبور چهار کاراکتری را امتحان کند. این بدان معناست که یک رمز ورود به خوبی طراحی شده ممکن است از شناسایی جلوگیری کند.
از این مقاله چه فهمیدیم؟
مقالهی فوق احتمالا نکات تازهی بسیاری را در خود داشته، اما سه درس مهمی که باید از آن بگیرید عبارتند از:
1. عبارات طولانیتر، بهترند. براساس نمونههای ارائه شدهی فوق توسط «Terahash»، میتوان فهمید که یک عبارت ده حرفی یا طولانیتر میتواند از پس اکثر حملات برآید.
2. رمز شما هرچه پیچیدهتر باشد، بهتر است. رموزی که از حروف تصادفی استفاده کرده بهترین انتخاباند. با این حال، حتما از وجود حداقل یک حرف کوچک، یک حرف بزرگ، یک حرف مخصوص و یک شماره در رمز عبور خود اطمینان کسب کنید. هرچه بیشتر از اینها استفاده کنید، بهتر است.
3. استفاده از برنامههای مدیریت رموز دیجیتالی، که پیش از این دربارهش در «اِگزو» صحبت کرده بودیم، بهترین راه حل ممکن برای مدیریت تمامی حسابهای شما هستند. شما میتوانید از برنامههای رایگان ذخیرهی رمز، یا مدلهای پولی استفاده کنید. هر یک مزایای خاص خود را داشته و فارغ از مدل منتخب، برایتان سودآور خواهد بود. سپردن لیستی دور و دراز از عبارات بیمعنی به یک دستیار دیجیتالی بهتر از حفظ کردن تک تکشان است.
شکستن یک گذرواژه کار بسیار جالبی است. میتواند هم خیلی آسان باشد و هم تقریبا غیرممکن واقع شود. انتخابهای شما در طراحی یک رمز این فاصله را تعیین میکند. آیا شما هم دوست دارید رمزی را بشکنید؟ نظرات خود را با «اِگزو» به اشتراک بگذارید.
برای ارسال دیدگاه ابتدا باید وارد شوید.