محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

معرفی انواع حملات آنالیز رمزنگاری ( Cryptanalysis ) به زبان ساده

قبلا در توسینسو بصورت مفصل در خصوص الگوریتم های رمزنگاری اطلاعات صحبت کرده ایم. بد نیست بدانید که حملاتی نیز بصورت ویژه برای شکستن کلیدهای رمزنگاری اطلاعات طراحی شده اند که حملات یا مدل های حمله Cryptanalysis  معروف هستند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

البته به عنوان یک کارشناس امنیت اطلاعات یا امنیت سایبری ، الزامی نیست که شما دانش عمیقی در حوزه رمزنگاری و الگوریتم های آن داشته باشید و خودتان را درگیر ریاضیات و محاسبات آن کنید. بلکه همین که نوع حملاتی که به این الگوریتم ها ممکن است انجام شود را بشناسید و درک کنید کفایت می کند.

انواع حملات به الگوریتم های رمزنگاری

شناخت این نوع حملات برای آزمون های بین المللی Security Plus ، CCSP و CISSP الزامی است . در این مقاله هدف ما معرفی کردن انواع حملات آنالیز رمزنگاری یا Cryptanalysis است.

به زبان ساده تر شما قرار است متوجه شوید که یک کارشناس تجزیه و تحلیل گر الگوریتم های رمزنگاری ( ترجمه واژه Cryptanalyst به همین برکت !! ) چگونه الگوریتم های رمزنگاری را تحلیل و آسیب پذیری های آنها را کشف می کنند . در واقع حملات کرک پسورد و به دست آوردن اطلاعات محرمانه از چنین روش هایی انجام می شود.

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

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

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

واژه هایی که باید در حملات رمزنگاری بشناسید

  • Plaintext : متن یا رشته ای که رمزنگاری نشده است و خام است ( بعضی اوقات Cleartext هم گفته میشه )
  • Ciphertext : متن یا رشته ای که رمزنگاری شده است
  • Cryptanalyst: شخصی که دانش شکستن الگوریتم های رمزنگاری بدون داشتن کلید را دارد !
  • Cipher : روشی که به وسیله آن پیام های Plaintext مخفی می شوند ( رمز شدن )

خوب ما حالا روشهای حمله به الگوریتم های رمزنگاری را به چهار نوع و دو کلاس Active و Passive طبقه بندی می کنیم و در ابتدا به بررسی حملات Passive می پردازیم ( به زبان ساده وقتی در حملات هکری از واژه Passive استفاده می شود یعنی مهاجم ارتباط مستقیم با سیستم های هدف نمی گیرد و بیشتر درگیر شنود ترافیک می شود و اگر Active باشد یعنی به یکی از سیستم های مبدا یا مقصد رمزنگاری حمله می کند )

حمله Passive نوع 1 : حمله COA یا Ciphertext Only Attackers

در این نوع حمله ، مهاجم فقط Ciphertext را در اختیار دارد. به زبان ساده تر ، مهاجم تنها آن چیزی را می تواند ببیند که همگان می توانند مشاهده کنند و متن رمزنگاری شده ای که به نظر غیر قابل رمزگشایی می رسد را صرفا شنود کرده و در اختیار دارد.

انواع حملات به الگوریتم های رمزنگاری

مهاجم با تجریه و تحلیل کردن کدهای رمزنگاری شده سعی در پیدا کردن مفهوم Ciphertext و رمزگشایی آن می کند. همچنین مهاجم هیچ اطلاعاتی در خصوص Plaintext ای که تبدیل به این Ciphertext شده است نیز ندارد. درصد موفقیت این حمله بسیار بسیار کم است و در عین حال الگوریتم های به روز و جدید اصلا چنین آسیب پذیری هایی ندارند.

حمله Passive نوع 2 : حمله KPA یا Known Plaintext Attack

در این نوع حمله ، مهاجم Plaintext ای که از طریق آن Ciphertext تولید شده است را در اختیار دارد. مهاجمین در چنین حالتی امکان انتخاب Plaintext جدیدی برای رمزنگاری ندارند تا کلید را پیدا کنند اما به دلیل داشتن یک بخش از قضیه و امکان مقایسه کردن نتایج رمزگشایی ، احتمال موفقیت این حمله بسیار بیشتر از حملات COA است.

انواع حملات به الگوریتم های رمزنگاری

اگر بخواهیم نمونه ای از این حمله را عنوان کنیم باید بگوییم الگوریتم PKZIP و Ciphertext هایی که با آن ساخته می شد با استفاده از یک XOR  امکان رمزگشایی و شکسته شدن کلید داشت.

این همان روشی است که در جنگ جهانی دوم شخصی به نام Alan Turing برای رمزگشایی پیام های آلمان نازی که با دستگاه Enigma ارسال می شد استفاده کرد. از نظر ریاضیات و علوم کامپیوتر و منطق ، آلن تورینگ ( Alan Turing *) یکی از نخبگان قرن بیستم به حساب می آمد.

حمله Active نوع 1 : حمله CPA یا Chosen Plaintext Attack

در این نوع حمله مهاجم می تواند Plaintext  ورودی الگوریتم مورد استفاده در رمزنگاری را تغیین کند و خروجی Ciphertext را تولید کند. با توجه به اینکه برای انجام چنین حمله ای مهاجم باید Plaintext را به عنوان ورودی الگوریتم رمزنگاری وارد کند بنابراین یک حمله Active یا فعال در نظر گرفته می شود.

انواع حملات به الگوریتم های رمزنگاری

با توجه به اینکه مهاجم می تواند Plaintext های مختلف را برای تبدیل به Ciphertext و مقایسه کردن آنها آزمایش کند ، احتمال موفقیت این حمله به نسبت سایر حملات به نسبت بالاتر است . در نهایت با آزمون و خطاهای بسیار امکان به دست آوردن روش کار الگوریتم و البته خارج کردن و به دست آوردن کلید رمزگشایی هم بسیار است .

در این نوع حمله برای اینکه درصد موفقیت بالاتر برود ، مهاجم یک بانک اطلاعاتی از انواع Plaintext های معروف را تبدیل به Ciphertext می کند و جفت های Plaintext و Ciphertext وردی و خروجی را با هم مقایسه می کند تا در نهایت به راز کار پی ببرد.

حمله Active نوع 2 : حمله CCA یا Chosen Ciphertext Attack

در این نوع حمله مهاجم هم می تواند رمزنگاری کند و هم رمزگشایی !! این یعنی اینکه مهاجم می تواند Plaintext را رمزنگاری کند و متعاقبا Ciphertext مرتبط با آن را ببینید و فرآیند معکوس را نیز انجام دهد.

انواع حملات به الگوریتم های رمزنگاری

به این موضوع دقت کنید که یک مهاجم قرار نیست الزما Plaintext را پیدا کند ، بلکه هدفش از رمزنگاری و رمزگشایی بصورت مرتب و منظم این است که بتواند از درون این فرآیند کلید رمزگشایی را پیدا کند و به کلی به الگوریتم نفوذ کند. این مدل نیز درجه محبوبیت و موفقیت به نسبت بالایی دارد.

خلاصه

بدون تعارف اکثر الگوریتم هایی که امروزه طراحی شده و مورد استفاده قرار می گیرند ، آسیب پذیری هایی که اعلام کردیم را دیگر ندارند و به ندرت با چنین روشهایی می توان کلیدهای الگوریتم ها را پیدا کرد. اما به عنوان یک کارشناس امنیت باید با تاریخچه و روش کارکرد حملات آشنایی داشته باشید ، هر چند که این حملات قدیمی شده باشند.

بد نیست بدانید که برخی از حملاتی که امروزه به نظر خیلی ها مسخره و منسوخ شده به نظر می رسد با توجه به محدوده استفاده گسترده ای که از دیرباز داشته اند ، هنوز هم قابل استفاده و هک شدن هستند.

برای مثال سالهاست که پروتکل WEP در شبکه های وایرلس منسوخ شده و آسیب پذیر است و عملا در نسخه های جدید تجهیزات بیسیم استفاده نمی شود . اما شما شاهد استفاده گسترده از این الگوریتم در تجهیزات قدیمی هستید که هنوز به روز رسانی نشده اند.


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات