حمله Brute Force (حمله جستجوی فراگیر) یک روش آزمون و خطا برای رمزگشایی (decode) دادههای مهم و حساس است. متداولترین برنامههای حملات Brute Force، شامل کرک کردن رمزهای عبور و کلیدهای رمزگذاری میباشد.
اهداف دیگر حملات جستجوی فراگیر کلیدهای API و ورود به سیستم SSH است. حملات Brute Force password غالبا توسط scriptها و رباتهایی انجام میشود که صفحه ورود یک وبسایت را هدف قرار میدهند.
آنچه که حملات Brute Force را از سایر روشهای کرکینگ (cracking) متمایز میکند این است که از هیچ استراتژی فکری استفاده نمیکند، بلکه سعی دارد کاراکترهای مختلف را با هم ترکیب نموده تا به ترکیب صحیح دست پیدا کند. درست شبیه به دزدی که سعی میکند ترکیبات مختلفی از اعداد را برای باز کردن گاو صندوق امتحان کند.
نقاط قوت و نقاط ضعف حملات Brute Force
بزرگترین مزیت حملات Brute Force (حملات جستجوی فراگیر) این است که نسبتا ساده است و به راحتی میتوان آن را انجام داد. در ضمن با توجه به فرصت کافی و عدم استراتژیهایی جهت کاهش این حملات، میتوان گفت این حمله همیشه کارساز است.
با استفاده از حملات بروت فورس میتوان به هر سیستم مبتنی بر پسورد و کلید رمزگذاری دست یافت. در حقیقت، مدت زمانی که لازم است برای کرک کردن یک سیستم در نظر گرفت، معیاری مناسب برای اندازه گیری سطح امنیت آن میباشد.
از طرفی دیگر، سرعت حملات Brute Force بسیار پایین است زیرا مهاجمان میبایست تمامی ترکیبات کاراکترهای مختلف را امتحان کنند تا به هدف خود برسند. با افزایش تعداد کاراکترها در پسورد هدف، میزان کندی نیز بیشتر میشود.
به عنوان مثال، دستیابی به یک پسورد چهار کاراکتری به طور قابل توجهی بیشتر از پسورد سه کارکتری طول میکشد و به همین ترتیب رمز عبور 5 کاراکتری خیلی بیشتر از رمز عبور 4 کاراکتری به زمان نیاز دارد.
در صورتی که تعداد کاراکترهای یک پسورد به اندازه کافی طولانی باشد، رمزگشایی آن توسط مهاجم Brute Force ممکن است روزها، ماهها و یا حتی سالها طول بکشد. در نتیجه با پسوردهای طولانی کار مهاجم بسیار دشوار میشود.
زمانی که از یک پسورد و رمزگذاری مناسب استفاده شود، معمولا مهاجمان از سایر روشهای رمزگشایی (decode) مانند حملات مهندسی اجتماعی و حملات On path استفاده میکنند.
نحوه محافظت در برابر حملات جستجوی فراگیر (Brute Force)
توسعه دهندگانی که سیستمهای تایید مجوز را مدیریت میکنند، میتوانند اقداماتی نظیر قفل کردن آدرسهای IP که تعداد زیادی لاگین ناموفق ایجاد کردهاند و استفاده از delay در نرم افزار password-checking را انجام دهند. تاخیر زمانی حتی اگر در حد چند ثانیه باشد، میتواند تاثیر حمله جستجوی فراگیر را تا حد قابل ملاحظهای کاهش دهد.
کاربران وب میتوانند آسیبپذیری خود در برابر حملات Brute Force را با انتخاب پسوردهای پیچیدهتر و طولانیتر کاهش دهند. در ضمن احراز هویت دو عاملی و همچنین استفاده از پسورد اختصاصی برای هر دستگاه نیز به این امر کمک شایانی مینماید.
چنانچه یک مهاجم بتواند از طریق حمله Brute Force به یک رمز عبور دست پیدا کند، ممکن است آن پسورد را برای دستگاههای دیگر نیز امتحان کند. این فرایند تحت عنوان Credential Stuffing معروف است.
یکی دیگر از اقداماتی که کاربران باید رعایت کنند این است که پسوردهای اطلاعات شخصی خود مانند شماره کارت اعتباری یا اطلاعات بانکی خود را در وبهایی که از کلیدهای رمزگذاری قوی استفاده نمیکنند و سطح محافظت آنها پایین است، وارد نکنند.
کلید رمزگذاری چیست؟
کلید رمزگذاری، رشتهای از بیتهای تصادفی است که به منظور به هم ریخته کردن دادهها و سپس منظم کردن آنها ایجاد شده است. هنگامی که دادهها به هم ریخته میشوند، به صورت رشتهای تصادفی از کاراکترها ظاهر میگردند تا این که با استفاده از کلید صحیح و مناسب رمزگذاری به صورت درست کنار هم قرار گیرند.
درست مانند رمزهای عبور، میتوان با کمک حملات Brute Force به کلیدهای رمزگذاری دست پیدا نمود، اما امروزه کلیدهای رمزگذاری وجود دارند که دستیابی به آنها توسط رایانههای مدرن به قدری طول میکشد که میتوان گفت غیر قابل نفوذ هستند.
تفاوت رمزگذاری 128بیتی و 256 بیتی
بدیهی است یک کلید رمزگذاری طولانیتر، امنیت بالاتری در مقایسه با کلید رمزگذاری کوتاهتر دارد. به عنوان مثال، در یک کلید رمزگذاری 128 بیتی معادل 2128 ترکیب احتمالی وجود دارد که یک مهاجم Brute Force میبایست همه آنها را امتحان کند.
برای رمزگشایی یک کلید 128 بیتی معادل 340,282,366,920,938,463,463,374,607,431,768,211,456 ترکیب احتمالی وجود دارد. برای رمزگذاریهای 256 بیتی نیز، مهاجم میبایست 2256 ترکیب مختلف را امتحان کند.
برای درک بهتر این اعداد باید گفت یک کامپیوتر قدرتمند که میتواند یک تریلیون ترکیب را در هر ثانیه محاسبه نماید، برای رمزگشایی یک کلید 256 بیتی، به بیش از یک دسیلیون سال (یک دسیلیون معادل یک با 96 صفر است) نیاز دارد.
از آنجا که کلیدهای رمزگذاری با تعداد بیتهای بالا در مقابل حملات جستجوی فراگیر (حملات Brute Force) ایمن هستند، توصیه میشود خدمات دهندگان وب که اطلاعات کاربران را جمعآوری و نگهداری میکنند، از کلیدهای رمزگذاری 256 بیتی استفاده نمایند.