رمزنگاری مقدماتی به زبان ساده : بررسی مفاهیم اولیه رمزنگاری


سری مقالات رمزنگاری مقدماتی - بخش اول ، بررسی رمزنگاری و مفاهیم اولیه
سری مقالات رمزنگاری مقدماتی - بخش اول ، بررسی رمزنگاری و مفاهیم اولیه


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

این مقالات به دو سری مقدماتی و پیشرفته تقسیم میشه ، در مباحث مقدماتی تمامی موارد مهمی که نیازه شما بلد باشید پوشش داده شده و در بحث پیشرفته ما توی هر حوزه به صورت عمیق وارد میشیم و تمامی موارد رو بررسی میکنیم

در نهایت اگر هرجاش سوالی براتون پیش آمد حتما بپرسید ، منتظر انتقادات و پیشنهادات شما هم هستیم ?

1. رمزنگاری چیست ؟

فرض کنید مطابق شکل زیر الکس میخواد یک نامه به رز ارسال کنه ، چه کسی ممکنه بین راه باشه و این پیام رو بشنوه ؟ چه خطراتی پیامو تهدید میکنه ؟


شکل 1-1
شکل 1-1

ما در رمزنگاری سه اصل و هدف داریم :

  • Confidentiality یا محرمانگی : این پیام بین من ارسال کننده و مخاطب خودم که دریافت میکنه فقط قابل خوندن باشه و بقیه نتونن بخوننش یا برای اون ها قابل فهم نباشه ، به بیان دیگر پیام محرمانه است برای همه بجز من و مخاطب مقصد .
  • Integrity یا صحت : بیانگر این است که پیام قابل دستکاری و تغییر نباشد و اگر تغییری ایجاد شد معلوم شود
  • Authentication یا احراز هویت : میگوید مخاطبان من همان کسانی هستند که میگویند و شخص دیگری نیستند و مطمئنید به شخصی که مدنظرتون هست پیام رو ارسال میکنید

یکی دیگر از اهدافی که مدنظر هست ولی به صورت غیر مستقیم به دست می آید و ما اون رو در رمزنگاری غیرمتقارن بدست می آوریم بحث Non-repudiation یا عدم انکار هست که میگوید شخص دریافت کننده میتواند به بقیه اثبات کند که پیامی که دریافت کرده از فرستنده مذکور بوده ، مثلا در همین مثال رز میتواند ثابت کند که پیامی که دریافت کرده از شخصی به اسم الکس بوده نه شخص دیگر (این مورد به صورت غیر مستقیم توسط هدف سوم بدست می آید)

برای خلاصه ، وقتی پیامی را الکس میخواهد به رز بفرستد ، میخواهد شخص دیگری این پیام را نخواند و نتواند تغییرش دهد ، و در عین حال مطمئن شود که رز خود رز است و نه شخص دیگر ، این کل هدف رمزنگاری است

برای دستیابی به هدف اول که محرمانگی هست از Encryption استفاده میکنیم ، برای دست یابی به هدف دوم از Hashing و برای دستیابی به هدف سوم از دو مورد قبل به صورت ترکیبی.

2. دیتا ذخیره شده و دیتا درحال عبور

داده در علوم کامپیوتر به دو صورت وجود دارند ، یا دیتاهایی که ثابتن (روی جایی ریخته و ذخیره شدن) و یا دیتا هایی که در حال انتقال هستند (توسط کابل یا امواج رادیویی)

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

3. موارد کاربرد رمزنگاری

رمزنگاری برای امنیت تهاجمی هم کاربرد دارد یا فقط امنیت تدافعی ؟

تدافاعی :

  • اطلاعات شما امن ذخیره و جابجا میشود و سارقان و هکرها امکان خوندن یا تغییر آن را ندارند

تهاجمی :

  • مهاجمین میتوانند اطلاعات شمارا رمز کنند و از شما باج بگیرند تا شما بتوانید به اطلاعات خود دسترسی داشته باشید
  • یا مهاجمین برای شناسایی نشدن میتوانند اطلاعات خود را رمز کنند تا مکانیزم های امنیتی نتوانند متوجه وجود و کار آن ها شوند
  • بازم مهاجمین میتوانند اطلاعات خود را رمزکنند و کارشناسان جرم شناسایی دیجیتال (Forensics ) نتوانند به سوابق آن ها دسترسی داشته باشند و...

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

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

در مطلب بعدی به بررسی تفاوت Encoding و Encryption میپردازیم ، هر سوال یا انتقادی بود در خدمتم ، یاعلی :)