Developer(s) | OpenWall |
---|---|
تاریخ انتشار اولیه | 1996[۱] |
Stable release | 1.9.0[۲] / ۱۴ مه ۲۰۱۹ (2019-05-14)
|
Repository | |
Operating system | Cross-platform |
Type | Password cracking |
License | GNU General Public LicenseProprietary (Pro version) |
Website | www.openwall.com/john/ |
جان دِ ریپر (به انگلیسی: John The Ripper) یک ابزار رایگان برای شکستن رمز عبور است. که در ابتدا برای سیستم عامل یونیکس توسعه یافته بود اما در حال حاضر میتواند بر روی پانزده پلتفرم مختلف اجرا شود (یازده مورد از آنها نسخههای معماری خاص یونیکس، داس، Win32، BeOS و OpenVMS هستند). این برنامه یکی از پرکاربردترین برنامههای تست مقاومت و شکستن رمز عبور است[۳] زیرا تعدادی از کرکرهای رمز عبور را در یک بسته ترکیب میکند، انواع هش رمز عبور را بهطور خودکار شناسایی میکند و شامل یک کرکر قابل تنظیم است. همچنین میتوان آن را با فرمتهای رمزگذاری رمزگذاریشده مختلف از جمله چندین نوع هش رمز عبور رمزنگاری شده که معمولاً در نسخههای مختلف یونیکس (بر اساس DES، MD5، یا Blowfish)، Kerberos AFS و Windows NT/2000/XP/2003 هش LM یافت میشود، اجرا کرد. ماژولهای اضافی توانایی آن را برای درهمسازی رمز عبور مبتنی بر MD4 و رمزهای عبور ذخیرهشده در LDAP، MySQL و موارد دیگر گسترش دادهاند.[۴]
در اینجا یک نمونه خروجی در محیط دبیان آمدهاست.
$ cat pass.txt
user:AZl.zWwxIh15Q
$ john -w:password.lst pass.txt
Loaded 1 password hash (Traditional DES [24/32 4K])
example (user)
guesses: 1 time: 0:00:00:00 100% c/s: 752 trying: 12345 - pookie
خط اول فرمانی برای گسترش دادههای ذخیره شده در فایل " pass.txt
" است. خط بعدی محتویات فایل است، یعنی کاربر (AZl
) و هش مرتبط با آن کاربر (zWwxIh15Q
). خط سوم دستور اجرای John با استفاده از فرمان " -w
" است. " password.lst
" نام یک فایل متنی پر از کلمات است که برنامه در برابر هش استفاده میکند، فایلpass.txt
عنوان فایلی که میخواهیم جان روی آن کار کند، دوباره استفاده میشود.
سپس خروجی جان را میبینیم که با پیشرفت برنامه این خروجی بروز میشود. Loaded 1 password hash — رمزی که با دستور " cat " دیدیم — و نوع هش که جان حدس میزند رمز عبور از آن استفاده میکند این است (Traditional DES).
یکی از حالتهایی که جان میتواند از آن استفاده کند، حمله دیکشنری است. در این روش برنامه نمونههای رشته متنی را میگیرد (معمولاً از یک فایل به نام فهرست کلمات، حاوی کلمات یافت شده در فرهنگ لغت یا رمزهای عبور واقعی که قبلاً شکسته شدهاند)، آن را با همان قالب رمز عبور مورد نظر بررسی (شامل الگوریتم رمزگذاری و کلید) رمزگذاری میکند. و در نهایت خروجی را با رشته رمزگذاری شده مقایسه میکند. جان همچنین میتواند تغییرات مختلفی را در لغات فرهنگ لغت انجام دهد و آنها را امتحان کند. بسیاری از این تغییرات در حالت حمله تکی جان نیز استفاده میشوند، که متن ساده مرتبط (مانند نام کاربری با رمز عبور رمزگذاری شده) را تغییر میدهد و تغییرات را در برابر هشها بررسی میکند.
جان همچنین حالت brute force را انجام دهد. در این نوع حمله، برنامه تمام متنهای آشکار ممکن را مرور میکند، هر کدام را هش میکند و سپس آن را با هش ورودی مقایسه میکند. جان از جداول فراوانی کاراکترها استفاده میکند تا ابتدا متنهای ساده حاوی نویسههای پرکاربرد را امتحان کند. این روش برای شکستن پسوردهایی که در فهرست واژههای دیکشنری ظاهر نمیشوند، مفید است، اما اجرای آن زمان زیادی میبرد.