آموزش رایگان دوره CEH همگام با سرفصل‌های بین‌المللی – 59
آموزش CEH (هکر کلاه سفید): آشنایی کلی با چند ابزار رمزگشای الگوریتم‌ها
الگوریتم رمزنگاری، به هر الگوریتم یا تابع ریاضی گفته می‌شود که به علت دارا بودن خواص مورد نیاز در رمزنگاری، در پروتکل‌های رمزنگاری مورد استفاده قرار گیرد. اصطلاح الگوریتم رمزنگاری یک مفهوم جامع است و لازم نیست هر الگوریتم از این دسته، به‌طور مستقیم برای رمزگذاری اطلاعات مورد استفاده قرار گیرد، بلکه صرفاً وجود کاربرد مربوط به رمزنگاری مد نظر است. گاهی اوقات، داده‌ها توسط الگوریتم ایمن و جدیدی محافظت نمی‌شوند. متاسفانه بسیاری از برنامه‌نویسان با واژه امنیت قرابت چندانی ندارند. آن‌ها به جای استفاده از رمزگذاری قوی برای محافظ از داده‌ها با این امید که اگر متنی به شکل ساده قابل رویت نباشد دیگر کشف نخواهد شد، داده‌ها را در معرض چالش جدی قرار می‌دهند.

برای مطالعه قسمت قبل آموزش رایگان  دوره CEH اینجا کلیک کنید.

نهان‌نگاری مبتنی بر Digital Watermark

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

رمزگذاری ضعیف

گاهی اوقات، داده‌ها توسط الگوریتم ایمن و جدیدی محافظت نمی‌شوند. متاسفانه بسیاری از برنامه‌نویسان با واژه امنیت قرابت چندانی ندارند. آن‌ها به جای استفاده از رمزگذاری قوی برای محافظ از داده‌ها با این امید که اگر متنی به شکل ساده قابل رویت نباشد دیگر کشف نخواهد شد، داده‌ها را در معرض چالش جدی قرار می‌دهند. این روش‌ها شامل XOR ، Base64 و Uuencode هستند.

■ XOR: به‌نام OR نیز شناخته می‌شود. XOR یک نوع عملیات باینری است که روی بیت‌ها انجام می‌شود. خروجی تابع فوق به این شرح است که اگر دو بیت مقدار یکسانی داشته باشند خروجی آن‌ها صفر خواهد بود. XOR ابتدا تمام حروف‌، نمادها و اعداد را به متن اسکی تبدیل کرده و در ادامه معادل دودویی آن‌ها را نشان می‌دهد. در مرحله بعد هر بیت با کلید رمز عبور برنامه که مبتنی بر XOR است مقایسه می‌شود. در آخر، مقدار XOR حاصل به شکل متن رمزگذاری شده ذخیره می‌شود. برای روشن شدن بهتر مطلب به مثال زیر دقت کنید:

در عبارات بالا سمبلی که شبیه به علامت مثبت است {\displaystyle \oplus }سمبلی کیdنشان‌دهنده عمل XOR بین دو عملوند است. به این عملیات گاهی اوقات جمع در پیمانه ۲ می‌گویند. با داشتن چنین منطقی، یک رشته متنی از حروف را می‌توان با اعمال کردن عملگر XOR بیتی بر روی تک تک حروف آن رشته و با استفاده از یک کلید دلخواه، رمزنگاری کرد. برای اینکه متن رمزنگاری شده را رمزگشایی کرده و به حالت اولیه برگردانیم، کافی است دومرتبه تابع XOR را با همان کلیدی که در هنگام رمزنگاری مورد استفاده قرار گرفته، روی متن رمزشده اعمال کنیم.

شکل زیر خروجی تابع فوق را نشان می‌دهد.

■ Base64: بیس۶۴ یک کدبندی دودویی به متن است. در این کدبندی، آرایه‌ای از بایت‌ها به صورت نویسه‌های َسکی کدگذاری می‌شوند. کاربرد این الگوریتم در تبادل اطلاعات از طریق محیط‌هایی است که تنها از کدهای اسکی ۷-بیتی پشتیبانی می‌کنند (مانند ایمیل) است. توصیف کامل این کدبندی در RFC 1252 آمده است. بیس۶۴ را می‌توان یک دستگاه اعداد، مشابه دستگاه اعداد هشت‌هشتی و دستگاه اعداد شانزده‌شانزدهی، اما در مبنای ۶۴ دانست. در حالی که یک سامانه هشت‌هشتی از ۳ بیت، و یک سامانه شانزده‌شانزدهی از ۴ بیت برای ذخیره‌سازی هر رقم استفاده می‌کنند، در مبنای ۶۴ هر رقم در ۶ بیت ذخیره می‌شود. در عمل بیس۶۴ داده‌های دودویی ۸ بیتی را به قالب ۷ بیتی تبدیل می‌کند؛ به‌طور معمول ۳ بایتِ ۸ بیتی، تبدیل به ۴ بایت ۷ بیتی می‌شوند که ۳۳٪ از داده‌های اولیه حجیم‌تر است. برای نمایش اطلاعات، تنها از نویسه‌های A-Z، a-z، 0-9، / و = (برای پدگذاری) استفاده می‌شود. (هر یک از نتایج ۶ یا ۷ بیتی حاصل بر یکی از نویسه‌های اسکی منطبق خواهد شد.) اگر در پایان متن، کمتر ۲۴ بیت (۳ بایت) برای کدبندی باقی‌مانده باشد، برای ممکن‌شدن کدبندی، به سمت راست بایت‌ها، بیت‌های 0 می‌افزایند، این موضوع با استفاده از نویسه «=» مشخص می‌شود. به عبارت دیگر اگر آخرین گروه داده، تنها دارای ۲ بایت باشد، ۱۲ بیت نخست آن به طور معمول (از روی جدول) کدگذاری می‌شوند و ۴ بیت باقی‌مانده با استفاده از دو بیت 0 کامل می‌گردند تا تبدیل به داده ۶ بیتی شود، سپس نتیجه را به مبنای ۶۴ می‌برند. برای مشخص‌شدن این موضوع یک علامت «=» به پایان رشته حاصل افزوده خواهد شد. به طور مشابه اگر در پایان متن تنها ۱ بایت (۸ بیت) باقی‌مانده باشد، ۶ بیت نخست به طور معمول کدبندی می‌شوند، دو بیت پایانی با استفاده از چهار 0 تکمیل می‌گردند، و رشته حاصل با استفاده از دو علامت «=» نشانه‌گذاری خواهد شد. در زمان کدگشایی عکس کارهایی که در زمان کدگذاری انجام شده صورت می‌گیرد. اگر کدگشا به نویسه‌ای بر بخورد که در جدول نویسه‌های بیس۶۴ نباشد، از آن چشم‌پوشی می‌کند. این نویسه‌ها ممکن است نویسه‌های ناموجود در جدول مانند سرخط یا نشانگر خطا در زمان انتقال باشند. سیسکو از جمله شرکت‌هایی است که از این سیستم کدگذاری در برخی از محصولات خود استفاده می‌کند.

■ Uuencode: Uuencode یکی دیگر از روش‌های رمزگذاری نسبتاً ضعیف است که برای کمک به انتقال تصاویر باینری از طریق ایمیل ایجاد شده است. روش فوق یکی از رایج‌ترین راهکاری رمزگذاری باینری است که مورد استفاده قرار می‌گیرد. مشکل این است که برخی از شرکت‌ها برای رمزگذاری متن قابل چاپ از این روش کدگذاری استفاده می‌کنند. با توجه به این‌که مکانیزم چندان پیچیده‌ای برای کدگشایی وجود ندارد، الگوریتم رمزنگاری فوق به شکل ضعیفی از متون محافظت می‌کند.

ابزارهای زیادی برای رمزگشایی این الگوریتم‌های ساده در دسترس قرار دارند. برخی از آن‌ها را می‌توان در دستگاه‌های ویندوزی و لینوکس اجرا کرد و برخی دیگر از ابزارهای رمزنگاری/رمزگشایی به شکل آنلاین http://www.yellowpipe.com/yis/tools/encrypter/index.php در دسترس قرار دارند.

ابزارهای رمزگشای الگوریتم‌ها

اجازه دهید برخی از ابزارهای واقعی که توسط هکرها برای شکستن طرح‌های رمزگذاری استفاده می‌شوند را بررسی کنیم. ابزارهای زیادی در این زمینه وجود دارند که از آن جمله می‌توان به Cryptanalysis ، CryptoBench ، JCryptTool ، AlphaPeeler ، Ganzua ، Crank ، EverCrack و Passcracking. نمونه‌های دیگر به شرح زیر اشاره کرد:

■ THC-Hydra: یک ابزار کدشکن سریع برای ورود به شبکه‌ها است که از پروتکل‌های تأیید هویت مختلفی همچون Telnet ، FTP ، SMB ، RSH ، SNMP ، LDAP و Cisco پشتیبانی می‌کند.

■ John the Ripper: یکی از محبوب‌ترین برنامه‌های شکستن رمزعبورهای لینوکس است. رمزهای عبور لینوکس / یونیکس معمولاً در مسیر etc/passwd or etc/shadow  ذخیره‌سازی می‌شوند. اگر می‌خواهید شانس در شکستن برخی از الگوریتم‌ها را محک بزنید، مسیر فوق اولین مکانی است که باید به سراغ آن بروید. فقط به‌خاطر داشته باشید که این‌کار را روی کامپیوتر شخصی خود یا کامپیوتری که مجوز کتبی دسترسی به آن‌را دریافت کرده‌اید آزمایش کنید.

■ Brutus: یک ابزار کدشکن گذرواژه‌های ورود به ویندوز است که از طیف گسترده‌ای از طرح‌های تأیید اعتبار همچون Telnet ، FTP ، SMB ، RSH ، SNMP ، LDAP و Cisco پشتیبانی می‌کند.

■ Hashcat: به عنوان سریع‌ترین ابزار بازیابی رمزعبور مبتنی بر پردازنده مرکزی شهرت پیدا کرده است. Hashcat را می‌توان در کامپیوترهای لینوکسی و ویندوزی نصب کرد.

■ CryptoTool: CryptoTool نمونه‌هایی از فعالیت‌های رمزنگاری و رمزگشایی ارائه می‌دهد. ابزار فوق طراحی شده تا به افراد علاقه‌مند در رمزنگاری اطلاعات بیشتری ارائه دهد.

چند مثال کاربردی

قبل از آن‌که بحث در مورد رمزنگاری را به پایان برسانیم اجازه دهید به چند مثال کاربردی در این زمینه اشاره‌ای داشته باشیم.

آزمایش گواهینامه SSL

برای آن‌که درک بهتری نسبت به طرز کار پروتکل SSL به‌دست آورید در این‌جا قصد داریم نحوه آزمایش گواهی‌نامه SSL را بررسی کنیم. برای انجام این‌کار مراحل زیر را دنبال کنید:

مرحله 1: مرورگر خود را باز کرده و به آدرس Http://mail2web.com بروید. در سایت فوق روی گزینهSecure Login  کلیک کنید.

2. اکنون روی آیکونی که به شکل قفل در نوارآدرس قرار دارد و بیان‌گر وجود پروتکل SSL است کلیک کنید.

3. همان‌گونه که مشاهده می‌کنید پنجره‌ای باز می‌شود که سه گزینه در ارتباط با تعداد کوکی‌های استفاده شده توسط این سایت، تنظیمات سایت و گواهی‌نامه را نشان می‌دهد. روی گزینه Certificate کلیک کنید.

4. پنجره‌ای ظاهر می‌شود که تاریخ شروع و خاتمه اعتبار گواهی‌نامه را نشان می‌دهد. اکنون روی گزینه Details کلیک کنید. اطلاعاتی در ارتباط با گواهی‌نامه استفاده شده توسط این سایت را مشاهده می‌کنید. اگر روی هر یک از فیلدهای درون این پنجره کلیک کنید جزییات مربوطه در پنجره پایین نشان داده می‌شوند. اطلاعاتی که در ارتباط با گواهی‌نامه‌های SSL نشان داده می‌شوند به شرح زیر هستند:

■ Version: نسخه X.509 که برای ایجاد گواهی استفاده شده را نشان می‌دهد.

■ Serial number: شماره سریال منحصر به‌فرد گواهی‌نامه است.

■ Signature algorithm: الگوریتم رمزگذاری مورد استفاده برای ساخت امضا گواهی‌نامه.

■ Issuer: مشخصات صادر کننده گواهینامه.

■ Valid from: تاریخی که گواهی تا آن تاریخ معتبر است.

■ Valid to: تاریخی که گواهی منقضی می‌شود.

■ Subject: به‌طور معمول شامل اطلاعات شناسایی و جغرافیایی است.

■ Public key: کلید عمومی رمزگذاری کننده گواهینامه.

■ Thumbprint algorithm: الگوریتم رمزگذاری مورد استفاده برای ساخت اثر انگشت منحصر به فرد برای گواهی‌نامه

5. روی زبانه Certification Path کلیک کنید.

6. روی گزینه View Certificate کلیک کنید تا اطلاعات مربوط به مرجع صدور گواهی‌نامه را مشاهده کنید.

7. به صفحه Details باز گردید. اعتبار گواهی‌نامه چه زمانی به پایان می‌رسد؟ آیا هنوز اعتبار دارد؟ آیا پیغام خطایی مشاهده می‌کنید؟

8. از چه الگوریتمی برای ساخت گواهی‌نامه استفاده شده است؟ آیا MD5 یا SHA 256 استفاده شده‌اند؟

9. از چه الگوریتمی برای امضا گواهی‌نامه استفاده شده است؟

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

مثال دوم، به‌کارگیری PGP

در مثال فوق ابتدا باید PGP را نصب کنیم.

مرحله 1: ابتدا نسخه آزمایشی نرم‌افزار PGP را از آدرس https://pgp.en.softonic.com/ دانلود کرده و نصب کنید.

مرحله 2:  دقت کنید پس از نصب PGP و ساخت یک عبارت عبور برنامه دو فایل به نام‌های pubring.pkr و  secring.skr ایجاد می‌کند. این فایل‌ها کلیدهای عمومی و خصوصی هستند.

مرحله 3: از ابزار PGP برای رمزنگاری فایلی روی هارددیسک خود استفاده کنید. به‌طور مثال می‌توانید فایلی شبیه به test.txt را ایجاد کنید و متنی را درون آن قرار دهید.

مرحله 4: اکنون یک فایل رمزنگاری شده در اختیار دارید. اکنون باید یک فایل رمزنگاری شده مبتنی بر عبارت عبوری در اختیار داشتهب اشید.

مرحله 5: بخش آسیب‌پذیر PGP چیست؟ ساده‌ترین راهکاری که یک هکر می‌تواند به فایل رمزنگاری شده دست پیدا کند چیست؟ اگر هکری بتواند فایل secring.skr را سرقت کند، او عبارت عبوری را در اختیار خواهد داشت، در این حالت برای رمزگشایی فایل نیاز به هیچ ابزاری ندارد، زیر کلید مربوطه را در اختیار دارد.

به‌کارگیری ابزار Steganographic برای پنهان‌سازی یک پیام

در این تمرین شما به ابزاری برای پنهان‌سازی اطلاعات با یک ایمیل هرزنامه‌ای نیاز دارید. این ابزار Spam Mimic نام دارد.

مرحله 1: Spam Mimic ابزاری است که برای پنهان‌سازی یک پیام درون یک ایمیل اسپم استفاده می‌شود. ابزار فوق از آدرس http://www.spammimic.com قابل دریافت است.

مرحله 2: زمانی که به سایت مذکور مراجعه کردید، یک پیام کوتاه درون برنامه Spam Mimic وارد کنید.

مرحله 3: در عرض چند ثانیه، ابزار فوق پیام شما را به یک پایم اسپم غیرقابل تشخیص تبدیل می‌کند. اکنون می‌توانید پیام فوق را برای یک دریافت‌کننده ارسال کنید.

مرحله 4: برای رمزگشایی پیام، باید دومرتبه به دیکدر Spam Mimic باز گردید تا بتوانید محتوای اصلی را مشاهده کنید.

خلاصه مبحث

الگوریتم رمزنگاری، به هر الگوریتم یا تابع ریاضی گفته می‌شود که به علت دارا بودن خواص مورد نیاز در رمزنگاری، در پروتکل‌های رمزنگاری مورد استفاده قرار گیرد. اصطلاح الگوریتم رمزنگاری یک مفهوم جامع است و لازم نیست هر الگوریتم از این دسته، به‌طور مستقیم برای رمزگذاری اطلاعات مورد استفاده قرار گیرد، بلکه صرفاً وجود کاربرد مربوط به رمزنگاری مد نظر است. در گذشته سازمان‌ها و شرکت‌هایی که نیاز به رمزگذاری یا سرویس‌های دیگر رمزنگاری داشتند، الگوریتم رمزنگاری منحصربه‌فردی را طراحی می‌نمودند. به مرور زمان مشخص شد که گاهی ضعف‌های امنیتی بزرگی در این الگوریتم‌ها وجود دارد که موجب سهولت شکسته شدن رمز می‌شود. به همین دلیل امروزه رمزنگاری مبتنی بر پنهان نگاه داشتن الگوریتم رمزنگاری منسوخ شده‌است و در روش‌های تازه رمزنگاری، فرض بر این است که اطلاعات کامل الگوریتم رمزنگاری منتشر شده‌است و آنچه پنهان است فقط کلید رمز است. بنا بر این تمام امنیت حاصل شده از الگوریتم‌ها و پروتکل‌های رمزنگاری استاندارد، متکی به امنیت و پنهان ماندن کلید رمز است و جزئیات کامل این الگوریتم‌ها و پروتکل‌ها برای عموم منتشر می‌شود. بر مبنای تعریف فوق، توابع و الگوریتم‌های مورد استفاده در رمزنگاری به دسته‌های کلی زیر تقسیم می‌شوند:

توابع بدون کلید

توابع درهم‌ساز

تبدیل‌های یک‌طرفه

توابع مبتنی بر کلید

الگوریتم‌های کلید متقارن

الگوریتم‌های رمز قالبی

الگوریتم‌های رمز دنباله‌ای

توابع تصدیق پیام

الگوریتم‌های کلید نامتقارن

الگوریتم‌های مبتنی بر تجزیه اعداد صحیح

الگوریتم‌های مبتنی بر لگاریتم گسسته

الگوریتم‌های مبتنی بر منحنی‌های بیضوی

الگوریتم‌های امضای رقومی

در شماره آینده مبحث فوق را ادامه می‌دهیم.

برای مطالعه رایگان تمام بخش‌های دوره CEH  روی لینک زیر کلیک کنید:

آموزش رایگان دوره CEH

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟