اگر شما صاحب یک وبسایت هستید، حتی اگر هرگز از کلمه «رمزنگاری» استفاده نکرده باشید، با آن آشنا شدهاید. رمزنگاری همان قفل 🔒 در نوار مرورگر است، دلیلی که میزبان وب به شما توصیه کرده است استفاده از FTP ساده را متوقف کنید، و تیک کنار گزینه «رمزنگاری آرشیو» در تنظیمات پشتیبانگیری شماست.

رمزنگاری یکی از معدود کنترلهای امنیتی است که بیسروصدا کار میکند و تقریباً هرگز به توجه شما نیاز ندارد، و دقیقاً به همین دلیل است که درک آن آسان نیست. بسیاری از صاحبان سایت گواهی SSL را نصب میکنند، قفل را میبینند و تصور میکنند سایت اکنون «امن» است. این همان شکافی است که ما میخواهیم در اینجا پر کنیم.
در این راهنما، رمزنگاری را به زبانی ساده تعریف میکنیم، نحوه عملکرد آن را بررسی میکنیم، انواع اصلی آن را که با آنها روبرو خواهید شد پوشش میدهیم، هر یک را به مکان خاصی در وبسایت شما نگاشت میکنیم، و به همان اندازه مهم، به وضوح توضیح میدهیم که رمزنگاری چه حملاتی را متوقف نمیکند.
فهرست مطالب:
- رمزنگاری چیست؟
- رمزنگاری چگونه کار میکند؟
- چه اتفاقی برای دادههای شما هنگام رمزنگاری میافتد؟
- انواع رمزنگاری: متقارن در مقابل نامتقارن
- رمزنگاری در حال انتقال، در حالت سکون و سرتاسری
- رمزنگاری در کجای وبسایت شما ظاهر میشود؟
- رمزنگاری چه کارهایی را انجام نمیدهد؟
- آیا رمزنگاری خوب است یا بد؟
- از کجا شروع کنیم اگر سایت خود را بررسی میکنید؟
- سوالات متداول
رمزنگاری چیست؟
رمزنگاری فرآیند تبدیل دادههای قابل خواندن، با استفاده از یک الگوریتم ریاضی و یک مقدار مخفی به نام کلید، به خروجی است که بدون آن کلید قابل خواندن نیست. نسخه قابل خواندن «متن آشکار» نامیده میشود. نسخه درهمریخته «متن رمز» نامیده میشود. معکوس کردن این فرآیند «رمزگشایی» است.
بخش مهم الگوریتم نیست؛ بلکه کلید است. الگوریتمهای رمزنگاری مدرن عمومی و منتشر شده هستند؛ هر کسی میتواند دقیقاً نحوه کار آنها را بخواند. امنیت از این واقعیت ناشی میشود که شما کلید را در اختیار دارید و مهاجم آن را ندارد. این یک انتخاب طراحی عمدی است، زیرا الگوریتمی که سالها توسط هزاران رمزنگار بررسی شده است، بسیار قابل اعتمادتر از الگوریتمی است که مخفی نگه داشته میشود.
بنابراین وقتی کسی میگوید دادهها «رمزنگاری شدهاند»، سوال مفید بعدی همیشه این است: با چه کلیدی رمزنگاری شدهاند و چه کس دیگری میتواند به آن دسترسی پیدا کند؟
رمزنگاری چگونه کار میکند؟
با یک مثال ساده شروع کنیم. کلمه LOGIN را در نظر بگیرید و هر حرف را سه جایگاه در الفبا به جلو ببرید: به ORJLQ میرسید. الگوریتم «جابجایی هر حرف» است، کلید «سه» است و متن رمز ORJLQ است. هر کسی که هم الگوریتم و هم کلید را بداند میتواند به عقب جابجا شود و نسخه اصلی را بازیابی کند.
این مثال به راحتی قابل شکستن است زیرا تنها ۲۵ کلید ممکن وجود دارد و میتوانید همه آنها را به صورت دستی امتحان کنید. رمزنگاری واقعی همان شکل را حفظ میکند اما مقیاس را تغییر میدهد. به جای جابجایی حروف، الگوریتمهایی مانند AES روی بلوکهایی از بایتهای خام عمل میکنند و آنها را از طریق چندین مرحله ترکیب و جایگزین میکنند. به جای ۲۵ کلید ممکن، کلید یک مقدار تصادفی طولانی با تعداد نجومی از احتمالات است، بنابراین حدس زدن یک حمله عملی نیست.
توالی همیشه یکسان است، هر الگوریتمی که باشد:
- دادهها به صورت متن آشکار شروع میشوند: ارسال فرم ورود، یک ردیف پایگاه داده، یا یک آرشیو پشتیبان.
- سیستم ارسال یا ذخیرهسازی آن را با استفاده از یک کلید از طریق الگوریتم رمزنگاری اجرا میکند.
- نتیجه، متن رمز، چیزی است که از طریق شبکه منتقل میشود یا روی دیسک قرار میگیرد.
- سیستم دریافتکننده (یا سیستم خود شما بعداً) رمزگشایی را با کلید منطبق اجرا میکند و دادههای اصلی را بایت به بایت بازمیگرداند.
اکنون، یک نکته که این مثال نشان نمیدهد: در یک سیستم واقعی، بخش دشوار تقریباً هرگز ریاضیات نیست. چالش این است که کلید را به طرف صحیح برسانید بدون اینکه یک استراق سمعکننده آن را در طول مسیر به دست آورد و آن را در جایی نگه دارید که مهاجم نتواند به آن دسترسی پیدا کند. این مشکل همان چیزی است که دو بخش بعدی واقعاً درباره آن هستند.
چه اتفاقی برای دادههای شما هنگام رمزنگاری میافتد؟
چیزی از دست نمیرود و چیزی اضافه نمیشود؛ دادهها هنوز همگی آنجا هستند، فقط غیرقابل خواندن. اگر یک فایل رمزنگاری شده را در یک ویرایشگر متن باز کنید، چیزی شبیه به بایتهای تصادفی خواهید دید. خروجی رمزنگاری شده معمولاً موبایل دوستان نزدیک به اندازه اصلی است، به علاوه مقدار کمی سربار برای چیزهایی که الگوریتم باید در کنار آن ذخیره کند.
چندین پیامد عملی از این موضوع ناشی میشود و مردم را غافلگیر میکند:
- دادههای رمزنگاری شده نمیتوانند در حالی که رمزنگاری شدهاند استفاده شوند.برنامه شما باید آنها را رمزگشایی کند تا بتواند آنها را جستجو، نمایش یا مرتب کند. به همین دلیل است که «پایگاه داده رمزنگاری شده است» به ندرت به معنای چیزی است که مردم امیدوارند.
- کلید به داده تبدیل میشود.اگر کلید را از دست بدهید، متن رمز برای همیشه از بین میرود. هیچ درخواست پشتیبانی آن را بازیابی نمیکند. اگر کلید را فاش کنید، رمزنگاری بیاهمیت میشود.
- فراداده اغلب پوشش داده نمیشود.نام فایلها، اندازههای فایلها، اینکه کدام سرور با کدام سرور صحبت کرده است، و چه مقدار داده جابجا شده است، همگی میتوانند حتی زمانی که محتویات قابل مشاهده نیستند، قابل مشاهده باقی بمانند.
- به خودی خود چیزی را تأیید نمیکند.رمزنگاری محتوا را پنهان میکند. مکانیسمهای جداگانه (امضاها، گواهینامهها، تگهای احراز هویت) هستند که ثابت میکنند چه کسی دادهها را ارسال کرده و اینکه در طول انتقال دستکاری نشدهاند.
این نکته آخر بیش از آنچه به نظر میرسد اهمیت دارد. رازداری و قابل اعتماد بودن ویژگیهای متفاوتی هستند و پروتکلهای خوب عمداً هر دو را فراهم میکنند.
انواع رمزنگاری: متقارن در مقابل نامتقارن
دو خانواده بزرگ وجود دارد و واضحترین راه برای درک آنها این است که نحوه کار آنها را با هم مشاهده کنید.
رمزنگاری متقارن
رمزنگاری متقارن از یک کلید برای رمزنگاری و رمزگشایی استفاده میکند. هر دو طرف یک راز مشترک دارند. این روش سریع و کارآمد است، که آن را به ابزار مناسبی برای دادههای حجیم، مانند
