همه چیز درباره امنیت CDN | پروتکل SSL/TLS در CDN

SSL/TLS در CDN

آن‌چه در این مقاله می‌خوانید:

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

SSL/TLS برای اولین بار در سال 1995 به عنوان یکی از معیارهای اعتماد به سرویس‌های آنلاین تجاری در نظر گرفته شد. در سال 2014 گوگل به طور رسمی TLS را به فهرست معیارهای رتبه‌بندی خود اضافه کرد و اهمیت این پروتکل را بیشتر کرد.

در سال 2015، آخرین نسخه SSL (3.0) به‌طور رسمی منسوخ شد و پروتکل TLS با رمزگذاری قوی‌تر جایگزین آن شد. با این حال، بسیاری از افراد هنوز هم از TLS به عنوان “SSL/TLS” یا همان “SSL” یاد می‌کنند.

چیزهای زیادی در مورد SSL/TLS از نظر امنیتی و تجاری وجود دارد، اما در این مقاله، تمرکز ما بیشتر بر روی جنبه‌های “عملکرد” و “امنیت” SSL در ارتباط با شبکه توزیع محتوا (CDN) است. با ما همراه باشید تا با گواهینامه SSL/TLS و میزان اعتباربخشی آن به وب‌سایت بیشتر آشنا شوید.

CDN با چه خطرات امنیتی مواجه است؟

امنیت CDN

CDN نیز مانند همه شبکه‌هایی که با اینترنت سروکار دارند، با خطرات امنیتی از جمله حملات on-path، نقض داده‌ها و حملات DDoS مواجه است. CDN برای مقابله با این تهدیدها و کاهش آسیب‌پذیری‌ها می‌تواند از چند استراتژی مانند رمزگذاری مناسب SSL/TLS و سخت‌افزارهای رمزگذاری تخصصی استفاده کند.

برای آشنایی بیشتر با CDN به مقاله “CDN چیست؟” مراجعه کنید.

رمزگذاری SSL/TLS چیست؟

پروتکل TLS (Transport Layer Security) داده‌هایی را که از طریق اینترنت ارسال می‌شوند، رمزگذاری می‌کند. TLS برای رفع نقص‌های امنیتی SSL توسعه داده شد، اما از آن‌جایی که عملا SSL و TLS یک کار را انجام می‌دهند، عموم افراد این دو نام را به جای هم استفاده می‌کنند. هر وب‌سایتی که به جای https:// با https:// شروع شود، درواقع دارد از SSL/TLS برای ارتباط بین مرورگر و سرور استفاده می‌کند.

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

پروتکل TLS برای ارائه 3 جزء طراحی شده است:

  • احراز هویت – توانایی تأیید اعتبار هویت‌های ارائه شده
  • رمزگذاری – توانایی مبهم کردن اطلاعات ارسال شده از یک میزبان به میزبان دیگر
  • صداقت – توانایی تشخیص جعل و دستکاری

گواهی SSL چیست؟

گواهینامه SSL/TLS

برای فعال کردن TLS، وب‌سایت به گواهینامه SSL و کلید مربوطه نیاز دارد. گواهینامه‌ها فایل‌هایی هستند که حاوی اطلاعاتی درباره مالک وب‌سایت و یک جفت کلید نامتقارن (برای رمزگذاری و رمزگشایی) هستند. مرجع گواهی (CA) این گواهینامه را به صورت دیجیتالی امضا می‌کند تا صحت اطلاعات موجود در گواهی را تأیید کند. شما با استناد به این گواهینامه می‌توانید مطمئن شوید که یک مرجع معتبر بررسی‌های لازم را انجام داده و وب‌سایت موردنظر برای انجام تراکنش قابل اعتماد است.

مرورگرها فهرستی از مراجع گواهی معتبر دارند تا اعتبار گواهینامه‌های SSL را تشخیص دهند. اگر گواهینامه SSL یک وب‌سایت توسط یک مرجع گواهی نامعتبر امضا شده باشد، مرورگر به کاربر هشدار می‌دهد که گواهینامه SSL این وب‌سایت نامعتبر است.

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

CDN می‌تواند با استفاده از گواهینامه SSL خود، امنیت بیشتری را برای بازدیدکنندگان وب‌سایت‌های میزبانی شده در شبکه خود فراهم کند. از آن‌جایی که کاربران برای بازدید از این وب‌سایت‌ها ابتدا باید به شبکه CDN متصل ‌شوند، گواهینامه SSL با رتبه پایین بر تجربه کاربری تأثیر نمی‌گذارند.

البته، داشتن گواهینامه SSL ضعیف از سمت سرور مبدأ همچنان می‌تواند مسائل و مشکلات امنیتی را به دنبال داشته باشد. بنابراین، مدیر و صاحب وب‌سایت باید هر چه سریع‌تر این مشکل را برطرف کند.

امنیت مناسب برای جستجوی ارگانیک (organic search) نیز مهم است. وب‌سایت‌هایی که از رمزگذاری‌های معتبر استفاده می‌کنند، جایگاه بالاتری در جستجوی گوگل به دست می‌آورند.

برای آشنایی با مزایای CDN در افزایش رتبه سئو کلیک کنید.

اتصال SSL/TLS متفاوت از اتصال TCP/IP عمل می‌کند؛ این اتصال بعد از اجرای مراحل اولیه اتصال TCP، تبادل جداگانه‌ای را برای راه‌اندازی اتصال امن ایجاد می‌کند.

مراحل اولیه اتصال TCP:

مراحل دست دادن TCP
  1. کلاینت (مرورگر کاربر) برای شروع اتصال یک بسته SYN را به سرور ارسال می‌کند.
  2. سپس سرور با یک بسته SYN/ACK به بسته اولیه پاسخ می‌دهد تا ارتباط را تأیید کند.
  3. در نهایت، کلاینت یک بسته ACK را برای تأیید دریافت بسته از سرور برمی‌گرداند. پس از تکمیل این ترتیب ارسال و دریافت بسته، اتصال TCP باز شده و قادر به ارسال و دریافت داده می‌شود.

هنگامی که مراحل اولیه TCP/IP (یا به اصطلاح دست دادن / Handshaking) انجام شد، مرحله رمزگذاری TLS آغاز می‌شود. فرآیندهای دقیق پشت اجرای TLS خارج از محدوده این مقاله است، اما به‌طور کلی مراحل دست دادن TLS شامل سه مرحله زیر است:

  1. کلاینت و سرور در مورد نسخه‌های TLS و نوع رمز استفاده شده در رمزنگاری ارتباطات مذاکره می‌کنند.
  2. کلاینت و سرور برای اطمینان از ارتباط امن متقابل اقداماتی را انجام می‌دهند.
  3. سپس، کلیدی مبادله می‌شود تا در ارتباطات رمزگذاری شده آینده مورد استفاده قرار گیرد.

در نمودار زیر، هر یک از مراحل مربوط به دست دادن TCP/IP و دست دادن TLS به تصویر کشیده شده است. هر فلش نشان‌دهنده یک ارتباط جداگانه است که باید به صورت فیزیکی بین کلاینت و سرور حرکت کند. از آن‌جایی که تعداد کل پیام‌ها هنگام استفاده از رمزگذاری TLS افزایش می‌یابد، زمان بارگذاری صفحه وب نیز افزایش پیدا می‌کند.

مراحل دست دادن SSL/TLS

برای مثال، اگر مراحل TCP حدود 50 میلی‌ثانیه و مراحل TLS حدود 110 میلی‌ثانیه طول بکشد، مدت زمان اولیه ارسال داده‌ها بین کلاینت و سرور در مجموع 160 میلی‌ثانیه می‌شود که معمولا بیش از حد زمان عادی است. زمان رفت و برگشت (RTT) معیاری برای اندازه‌گیری مدت زمان انتقال اطلاعات از یک دستگاه به دستگاه دیگر و بازگشت مجدد آن است. با افزایش RTT سرعت بارگذاری وب‌سایت کاهش می‌یابد، که این امر منجر به نارضایتی کاربران و افت بازدید از وب‌سایت می‌شود. بنابراین، بهینه‌سازی RTT یکی از مهم‌ترین اقدامات برای افزایش رتبه و جذب کاربران بیشتر توسط صاحبان وب‌سایت است. CDN می‌تواند با استفاده از ویژگی‌ها و قابلیت‌های خاص خود، RTT را تا حد امکان کاهش دهد.

برای آشنایی بیشتر با نحوه کاهش RTT توسط CDN کلیک کنید.

CDN چگونه می‌تواند عملکرد SSL/TLS را بهبود ببخشد؟

تعداد رفت و برگشت مورد نیاز برای مراحل دست دادن SSL/TLS به تنظیمات و پیکربندی سرور بستگی دارد. اگر سرور برای رسیدگی به بیش از یک تعداد مشخص از رکوردهای TLS بهینه نشده باشد، تعداد این رفت و برگشت‌ها زیاد شده و زمان RTT را افزایش می‌دهد. اما با انجام صحیح تنظیمات سرور و بهینه‌سازی SSL می‌توان مدت زمان کل  RTT را کاهش و سرعت بارگذاری وب‌سایت را افزایش داد. در این‌جا 3 روش برای بهینه‌سازی اتصال TLS را معرفی می‌کنیم:

TLS Session Resumption

CDN می‌تواند با از سرگیری TLS Session برای درخواست‌های بعدی، اتصال بین سرور مبدأ و شبکه CDN را برای مدت طولانی‌تری زنده نگه دارد. زنده نگه داشتن اتصال باعث صرفه‌جویی در زمان مذاکره (مرحله 1 دست دادن TLS) می‌شود؛ در نتیجه بازدیدکنندگان وب‌سایت تأخیر کم‌تری را تجربه خواهند کرد.
هزینه کلی از سرگیری جلسه کم‌تر از 50 درصد Handshaking کامل TLS است، زیرا از سرگیری جلسه فقط یک سفر رفت و برگشت هزینه دارد، در حالی که Handshaking کامل TLS دو بار باید این مسیر را طی کند. علاوه بر این، از سرگیری جلسه نیازی به انجام محاسبات بزرگ ندارد (جلسات جدید باید این کار را انجام دهند)، بنابراین هزینه CPU برای کلاینت (کامپیوتر یا موبایل کاربر) در مقایسه با Handshaking کامل TLS تقریبا ناچیز است.

TLS Session Resumption

این روش برای کاربرانی که به دفعات از یک وب‌سایت بازدید می‌کنند می‌تواند مناسب باشد. اما، اگر کاربری بخواهد برای اولین بار از یک وب‌سایت دیدن کند، این روش پاسخگو نیست! برای کاهش تأخیر SSL/TLS از روش دوم، یعنی فعال کردن TLS False Start استفاده می‌کنیم.

فعال کردن TLS False Start

فعال‌سازی TLS False Start به فرستنده (سرور مبدأ) اجازه می‌دهد تا داده‌های وب‌سایت را بدون مراحل کامل Handshaking TLS به کاربر ارسال کند. False Start بدون تغییر پروتکل TLS، زمان انتقال داده‌ها را تغییر می‌دهد؛ انتقال داده‌ها درست از زمانی که کلاینت تبادل کلید را آغاز می‌کند، شروع می‌شود. این تغییر زمان باعث کاهش تعداد کل زمان رفت و برگشت‌ها می‌شود و به طور کلی سرعت بارگذاری وب‌سایت و انتقال داده را افزایش می‌دهد.

TLS False Start

از سرگیری زمان رفت و برگشت صفر (0-RTT)

0-RTT

0-RTT باعث بهبود سرعت اتصال و روان‌تر شدن وب‌سایت‌هایی می‌شود که کاربران به‌طور منظم از آن‌ها بازدید می‌کنند. این افزایش سرعت به ویژه در شبکه‌های تلفن همراه قابل توجه است.

درست است که 0-RTT تأثیر زیادی در افزایش سرعت دارد، اما بدون در نظر گرفتن یکسری معیارهای امنیتی می‌تواند مشکل‌آفرین باشد. سرویس CDN برای مقابله با خطرات و تهدیدات امنیتی ممکن است محدودیت‌هایی را بر روی نوع درخواست‌های HTTP و پارامترهای مجاز اعمال کند.

CDN چگونه می‌تواند امنیت SSL/TLS را افزایش دهد؟

همان‌طور که اشاره شد، ارتباطات SSL/TLS به وجود گواهینامه‌های SSL متکی هستند، که این گواهینامه‌ها علاوه بر کلید عمومی که برای شروع ارتباطات رمزگذاری شده استفاده می‌شود، حاوی اطلاعاتی درباره دامنه و سازمان شما هستند. گواهینامه‌های SSL از نظر کیفیت و قابل اعتماد بودن رتبه‌بندی می‌شوند و با یکدیگر متفاوت هستند.

امنیت SSL/TLS

مشکلات: گواهینامه‌های SSL با رتبه پایین و پیاده‌سازی نامناسب

بین گواهینامه SSL خریداری شده از مرجع گواهی رسمی (CA) و گواهینامه رایگان SSL (خود امضا شده – Self-Signed Certificate) که می‌توانند با استفاده از جعبه ابزار OpenSSL تولید شوند، تفاوت زیادی وجود دارد.

از بین این دو گروه، گواهینامه‌های CA گزینه بسیار بهتر و قابل اعتمادتری هستند و تمامی مرورگرها اعتبار این نوع گواهی‌نامه‌ها را تأیید می‌کنند. اما گواهینامه‌های خودامضا این تأییدیه را از مرورگر کاربر دریافت نمی‌کند و باعث می‌شود که بازدیدکنندگان در هر بار ورود به وب‌سایت، پیام هشدار “ناامن بودن” را دریافت کنند.

علاوه بر این، گواهینامه‌های SSL/TLS بر اساس کیفیت پیاده‌سازی و معیارهای زیر رتبه‌بندی می‌شوند:

  • پشتیبانی از پروتکل – اولویت با گواهینامه‌هایی است که جدیدترین و ایمن‌ترین پروتکل‌ها را اجرا می‌کنند.
  • پشتیبانی از تبادل کلید – اولویت به گواهینامه‌هایی داده می‌شود که از رمزنگاری قوی‌تری در هنگام رمزگذاری کلیدهای جلسه استفاده می‌کنند.
  • پشتیبانی از رمز – اولویت با گواهینامه‌هایی است که رمزهای قوی‌تر (مانند 256 بیت) را اعمال می‌کنند.

رتبه گواهینامه SSL به راحتی با استفاده از SSLLabs یا ابزارهای مشابه مشخص می‌شود؛ بنابراین، اگر دانستن این مسئله برای کاربران وب‌سایت شما مهم باشد، رتبه SSL شما می‌تواند تأثیر مستقیمی بر روی تصمیم کاربران برای انجام معاملات و تراکنش‌ها بگذارد.

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

راه حل: استفاده از گواهینامه CDN

استفاده از CDN به این معنی است که اولین مرحله اتصال SSL/TLS شما همیشه با استفاده از گواهینامه میزبانی شده بر روی پروکسی معکوس (Reverse Proxy) برقرار می‌شود. این بهینه‌سازی خودکار جنبه‌های امنیتی ارتباطات SSL شما را افزایش می‌دهد. اگر گواهینامه SSL وب‌سایت شما کم‌تر از حد مطلوب باشد، از لحظه‌ای که شروع به استفاده از پروکسی CDN می‌کنید، همه بازدیدکنندگان وب‌سایت شما بلافاصله توسط گواهینامه SSL درجه A+ که حداقل توسط یکی از معتبرترین CAهای جهان امضا شده است، محافظت می‌شوند.

SSL رایگان با Lets Encrypt بهتر می‌شود

Let’s Encrypt یکی از مراجع گواهی است که امکان ایجاد گواهینامه‌های SSL رایگان را فراهم می‌کند. یکی از مزایای این نوع گواهی‌نامه‌های رایگان این است که آلارم‌های هشدار مرورگر را فعال نمی‌کنند.

Let’s Encrypt توسط گروه تحقیقاتی امنیت اینترنت (ISRG)، بنیاد موزیلا و چندین سازمان بزرگ دیگر حمایت می‌شود.

دو گواهینامه بهتر از یکی است!

حتی با وجود CDN که اولین مرحله اتصال SSL شما را به‌طور خودکار بهینه می‌کند، همچنان توصیه می‌شود که پیاده‌سازی مراحل بعدی اتصال SSL در سرور اصلی نیز بهبود پیدا کند.

درست است که سناریوهای حمله در مرحله دوم اتصال SSL بسیار بعید است، اما به قول معروف “پیشگیری بهتر از درمان است” – به خصوص اگر وب‌سایت شما یک وب‌سایت معروف باشد، بیشتر در معرض خطر حملات سایبری قرار می‌گیرد.

یکی از متداول‌ترین حملات سایبری، حمله DDoS است. در ادامه به نحوه مقابله با این نوع حمله با استفاده از CDN می‌پردازیم.

مقابله با حملات DDoS توسط CDN

مقابله با حملات DDoS توسط CDN

حملات DDoS یکی از مهم‌ترین آسیب‌پذیری‌های امنیتی وب‌سایت‌ها در اینترنت مدرن است. با گذشت زمان، اندازه و پیچیدگی حملات DDoS افزایش یافته است، به طوریکه امروزه مهاجمان از بات‌نت‌ها برای هدف قرار دادن ترافیک وب‌سایت‌ها استفاده می‌کنند. استفاده از یک CDN خوب که به درستی تنظیم شده باشد، مزایای زیادی را برای مقابله با DDoS به وب‌سایت شما ارائه می‌دهد. CDN با وجود مراکز داده کافی و قابلیت‌های پهنای باند می‌تواند ترافیک حمله ورودی را بین سرورهای خود پخش کرده و از down شدن سرور مبدأ جلوگیری کند.

برای آشنایی بیشتر با حملات DDoS و جلوگیری از آن کلیک کنید.

استفاده از گواهینامه SSL به وب‌سایت شما اعتبار می‌بخشد و امنیت وب‌سایت و کاربران را افزایش می‌دهد. اما با فعال‌سازی این گواهینامه در وب‌سایت، به دلیل رمزگذاری و رمزگشایی محتوای وب، سرعت بارگذاری وب‌سایت تحت تأثیر قرار می‌گیرد. انتخاب یک سرویس CDN مناسب که بتواند علاوه بر افزایش و بهبود سرعت گواهینامه SSL، از وب‌سایت شما در برابر حملات گوناگون سایبری نیز محافظت کند، یکی از مهم‌ترین تصمیمات هر مدیر یا صاحب وب‌سایت محسوب می‌شود.

برای آشنایی بیشتر با سرویس CDN اَبر دِراک کلیک کنید.

منابع:

مقالات مرتبط