موضوع مقاله: کشف گذرواژه | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # کشف گذرواژه | مقدمه: در رمزنگاری و امنیت رایانه ای، کشف رمز عبور همان فرایند بازیابی رمز عبور از داده‌های رایانه ای که توسط سیستم‌های رایانه ای ذخیره یا منتقل شده‌اند می‌باشد. | ## بخش 1: کشف گذرواژه | یکی از رویکردهای رایج در رمزنگاری حدس رمز عبور برای دفعات متعددوچک کردن آن با کلید واژه ساخته شده توسط تابع در همسازی می‌باشد. هدف از شکستن رمز عبور ممکن است برای کمک به کاربری باشد که رمز عبور خود را فراموش کرده و خواهان بازیابی آن می‌باشد. زمان مورد نیاز برای جستجوی رمز عبور زمان شکستن رمز عبور به قدرت رمز عبور که همان آنتروپی رمز عبور می‌باشد ونحوه ذخیره رمز عبور بستگی دارد. اکثر روش‌های شکستن رمز عبور نیاز به برنامه‌های کامپیوتری برای تولید بسیاری از کلمات عبوری نامزد برای چک کردن با کلیدواژه ساخته شده توسط هش مورد نظر دارد و تا زمانی که برنامه موفق به یافتن رمز عبور شود هر کلیدواژه کاندید برای رمز عبور راامتحان می‌کند. هرچه قدر قدرت رمز عبور (تعداد بیت‌های پسورد) بیشتر باشد تعداد کلید واژه‌های کاندید افزایش می‌یابد و امکان استخراج پسورد توسط هکرها کاهش می‌یابد. توانایی شکستن رمز عبوربا استفاده ازالگوریتم‌های کرک پسورد وابسته به تعداد بیت‌های احتمالی رمز عبور دارد. اگر کلیدواژه ساخته شده توسط تابع در همسازی در دسترس هکر باشد می‌تواند میلیاردها یا ترلیون بار در ثانیه حتی به صورت افلاین حمله خود را صورت دهد. تعداد و مدت زمان این حملات تا یافتن پسورد مورد نظر بستگی به محدودیت‌های اعمال شده بر روی الگوریتم هش نرم‌افزار کرک پسورد دارد. با توجه به نوع الگوریتم نرم‌افزار عدم پذیرش پسوردهای کاندید و قفل کردن رمز عبور توسط برنامه اغلب بستگی به تأخیر در زمان وارد کردن رمز عبور CAPTCHAS و تعداد پسوردهای وارد شده نادرست به سیستم دارد. در چنین مواردی یک هکر به سرعت می‌تواند در صورت درست بودن رمز عبورحدس زده شده داده‌های رمزگشایی شده کاربر را با پسورد جدیدمجداد قفل کند. قدرت یک رمز عبور بستگی زیادی به عملکرد الگوریتم تابع هش استفاده شده برای تولید رمز عبور دارد. براساس قواعد NIST پسوردهای انتخابی یک کاربر می‌تواند هشت کاراکتری به صورت ترکیبی از اعداد، نمادها یا گذر واژه‌های معمول انتخاب شده ویا موارد موجود در فرهنگ لغت‌های فیلتر شده در الگوریتم کد باشد وتاحدود ۳۰ بیت برسد. اگر چندین تابع هش برای بازگردانی هش تولیدشده به رمز اولیه وجود داشته باشد پسورد مورد نظر در عرض چند ثانیه رمزگشایی می‌شود. اگر چندین رایانه شخصی به‌طور هم‌زمان شروع به حمله برای شکستن یک رمز عبورکنند توانایی کرک پسورد به میزان قابل توجهی بیشتر از انجام این عمل توسط botnet می‌شود. پردازنده‌های گرافیکی می‌توانند در مقایسه با رایانه‌های معمولی ۵۰ تا ۱۰۰ برابر سرعت کرک پسورد را افزایش دهند. با وجودتوانایی‌های بالای پردازش گرهای کامپیوترهای دسکتاپ در تسریع رمزنگاری امادر مقایسه با دستگاه‌هایی که با اهداف رمزنگاری ساخته شده‌اند بسیار آهسته‌تر عمل می‌کنند. | ## بخش 2: کشف گذرواژه | راحتی در یادآوری و سختی در حدس زدن رمز عبورهایی که یاداوری آن‌ها دشوار به نظر می‌آید ممکن است امنیت یک سیستم را کاهش دهد؛ زیرا ممکن است کاربر نیاز به نوشتن رمز عبور پیدا کند ویااز طریق روش‌های نامناسب ان راذخیره سازی کند. استفاده از حروف کوچک وبزرگ ویا عباراتی که به صورت ترکیب ارقام وحروف وجود دارد یا تغییر رمز عبور به صورت ماهانه باعث می‌شود خطر لو رفتن واستخراج رمز عبور توسط هکرها کاهش و در مقابل امکان فراموش شدن آن توسط کاربر وکاهش سیستم امنیتی پسورد افزایش یابد. در روش به کار گرفته شده برای افزایش امنیت گذرواژه توسط Jeef yan او وهمکارانش متوجه شدندکه براساس یک تفکر عبارات گذر واژه و پسورد به همان اندازه قابل یادآوری هستند که اولین حروف آن‌ها قابل یاداوری باشد وهمان اندازه سخت هستند که در صورتی که کلمات وحروف رمز عبور به صورت تصادفی ایجاد شوند. ازجمله روش‌های کارامد پیشنهاد شده توسط آن‌ها عبارتند از:به‌کارگیری ترکیبی از دو واژه غیر مرتبط، داشتن الگوریتم شخصی طراحی شده برای تولیدیک عبارت مبهم می‌باشد. قابل به ذکر است که کرک شدن یک رمز عبور ۷ کلمه ای تقریباً ۱۲۸ بار سخت تراز زمانی است که یکی از حروف آن حذف شده باشد. تحقیقات صورت گرفته در یک مقاله در سال۲۰۱۵ توسط یکی از اساتید دانشگاه carnegie mellon نشان می‌دهد که مردم معمولاً برای انتخاب یک رمز عبور از الگوهایی با ساختار ویژه شناخته شده‌استفاده می‌کنند که در نتیجه رمز عبور مورد نظر براساس احتمالات به مراتب راحت‌تر شکسته خواهد شد. اگر این پایگاه‌های داده‌ای بدون دقت وملاحظه ذخیره شوند تبدیل به دیتابیس‌های بسیار آسیب‌پذیر شده داده‌های موجود در آن‌ها به سادگی قابل استخراج می‌گردد. این روش‌ها تضمین می‌کند که حتی اگر یک هکر بتواند یک پایگاه داده‌ای را به دست بگیرد به سادگی قادر نخواهد بود کدهای قرار داده شده بر روی داده‌ها را در هم شکسته و به دیتاها دسترسی پیدا کند. راه‌های پیشگیری بهترین روش برای جلوگیری از کرک شدن پسورد این است که راهکاری برای جلوگیری از به دست آوردن هش یک پسورد توسط هکرها پیدا کنیم. به عنوان مثال در سیستم عامل یونیکس رمزهای عبور در فایل‌های پنهان /etc/passwd ذخیره شده‌اند که فقط برای برنامه‌های در حال اجرایی که در سیستم عامل از امتیاز بیشتری در حوزه امنیتی برخوردارند قابل دسترسی می‌باشد. این روش امنیتی باعث می‌شودتا به دست آوردن هش یک پسورد از طریق یک کاربر مخرب (هکر) برای دفعات اولیه حمله به مراتب سخت‌تر باشد. با این وجود بسیاری از مجموعه‌های هش رمز عبور با وجود چنین محافظت امنیتی توسط هکرها سرقت شده‌اند. رویکرد سوم این است که از توابع مشتق کلید استفاده کنیدکه سرعت حدس رمز عبور را کاهش می‌دهند. متأسفانه بسیاری از پروتکل‌های شبکه‌های معمولی کلمات رمز عبور را به صورت واضح ارسال ویا از طرح‌های چالشی ضعیف استفاده می‌کنند. بسیاری از هش‌های ذخیره شده برای رمز عبور مانند MD5 وخانواده SHA برای محاسبات سریع و اجرای کارآمد در سخت‌افزارها طراحی شده‌اند. بااستفاده از الگوریتم‌های کشش کلیدی مانند PBKDF2 برای ایجاد هش‌های رمزنگاری می‌توان به میزان قابل توجهی توانایی تست کردن رمزهای عبور را توسط یک کاربر مخرب کاهش داد. | ## بخش 3: کشف گذرواژه | یک پسورد آپدیت شده میخوام شکستن پسورد به صورت دستی نیازمند تلاش برای لاگین با پسوردهای مختلف است. به این منظور هکر مراحل زیر را پیگیری می‌کند: پیداکردن یک یوزر اکانت مناسب (مثلاً اکانت Riazi.pdt یا اکانت Guest) ایجاد یک لیست از پسوردهای ممکن رتبه‌بندی پسوردها بر اساس اولویت تست کردن هر پسورد ادامه این پروسه تا پیدا کردن یک پسورد موفق یک هکر همچنین می‌تواند یک فایل اسکریپت را ایجاد کند تا هر پسورد موجود در لیست را تست کند. با این حال این شیوه هنوز یک متد دستی محسوب می‌شود و زمان بر است و معمولاً مؤثر نیست. بیشتر سیستم‌ها یک پسورد را در سیستم به صورت هش شده (رمزنگاری یک طرفه) ذخیره می‌کنند. در طی پروسه لاگین پسوردی که توسط کاربر وارد می‌شود، توسط همان الگوریتم هش می‌شود و سپس با پسوردهای هش شده در داخل فایل SAM ذخیره شده بر روی سیستم مقایسه می‌شود. هکر می‌تواند به جای حدس پسورد یا تلاش برای شناسایی پسورد سعی کند که به الگوریتم هش شده بر روی سرور دسترسی پیدا کند. اگر این پروسه با موفقیت همراه شود سپس هکر می‌تواند پسوردهای ذخیره شده را رمزگشایی کند. کرک کردن رمز عبور به روش GPU GPU یک واحد پردازش گرافیکی است که گاهی از آن با نام واحد پردازش بصری، یاد می‌شود. قبل از این‌که در مورد نحوهٔ کرک کردن پسورد به روش GPU صحبت کنیم، باید اطلاعاتی در مورد هش داشته باشیم. هنگامی که کاربر رمز عبور را وارد می‌کند، اطلاعات مربوط به آن با استفاده از یک الگوریتم هش یک طرفه، به صورت یک رشتهٔ هش ذخیره می‌شود. در این تکنیک برای کرک کردن پسورد با استفاده از نرم‌افزار GPU، یک پسورد تصادفی دریافت می‌شود و با توجه به الگوریتم هش و مقایسه یا تطبق آن با رشته‌های هش موجود، کلمهٔ عبور بدست می‌آید. GPU می‌تواند به صورت موازی توابع ریاضی را اجرا کند، زیرا GPU دارای صد هسته است که امکانات فراوانی را برای کرک کردن رمز عبور در اختیار کاربر قرار می‌دهد. اساساً نرم‌افزار از تکنیک آزمون و خطا به منظور بدست آوردن اطلاعات رمزعبور سیستم استفاده می‌کند. این نرم‌افزار ترکیب‌های مختلفی از پسوردهای کرک شده را در قالب یک بسته جمع‌آوری کرده و به همین دلیل این نرم‌افزار، یک نرم‌افزار مولتی پلتفرم است. این نرم‌افزار برای کرک رمزهای عبور ضعیف در سیستم عامل یونیکس، مورد استفاده قرار می‌گیرد اما می‌توان از آن برای کرک پسورد سیستم‌عامل‌های لینوکس، مک و ویندوز نیز استفاده کرد. | ## جمع‌بندی | می‌توانیم از این نرم‌افزار برای کرک رمزهای عبور مختلف مانند رمز عبور رشته‌های هش که معمولاً در نسخه‌های مختلف یونیکس استفاده می‌شود، استفاده کرد.