حتما شنیدهاید که سایتهای فاقد HTTPS برای امنیت اطلاعات شما خطرناک هستند و یا شاید دیده باشید که یکی از افتخاراتی که پیام رسانها بر روی آن تاکید دارند استفاده از HTTPS است! اما چه ارتباطی بین HTTPS و SSL وجود دارد؟ چرا نباید به سایتهای فاقد SSL اعتماد کرد و اگر صاحب سایت هستیم، چرا وبسایتمان باید حتما از SSL استفاده کند؟
SSL مخفف عبارت Secure Sockets Layer است. همانطور که در این عبارت هم مشخص است میتوان حدس زد که SSL یک لایه امنیتی برای برقراری ارتباط در شبکه اینترنت است، اما این لایه امنیتی دقیقا به چه معناست و چه کاری انجام میدهد؟
SSL چیست؟ چگونه از شنود و سرقت اطلاعات جلوگیری میکند؟
برای درک کامل SSL و اتفاقاتی که در آن میافتد، تصور کنید که دو دوست در حال تماس تلفنی با یکدیگر هستند و در این تماس تلفنی، بعد از 20 سال رفاقت، یکدفعه تصمیم میگیرند که اسرار زندگیشان را روی دایره بریزند و برای یکدیگر فاش کنند! خیلی دور از ذهن نیست که هرکسی جای این دو دوست بود، دوست نداشت که این اسرار توسط فرد سوم یا چهارم یا هزارمی شنیده شود!
قبل از خواندن ادامه مقاله، به نظرتان این دو نفر چه کاری میتوانند انجام دهند تا این اسرار بجز خودشان توسط فرد دیگری شنیده نشود؟ راه حل پیشنهادی شما برای این مشکل چیست؟ (میتونید همین الان قبل از خوندن ادامه مقاله راه حل پیشنهادی خودتون رو بنویسید…)
راه حلی که در حال حاضر در روش SSL استفاده میشود به این صورت است که در ابتدای مکالمه دو دوست با یکدیگر توافق میکنند که بجای زبان فارسی به زبان سنتیلز (زبان سنتیلز به این جهت جالب است که هیچکس در جهان به جز ساکنان یک جزیره در هندوستان از آن چیزی نمیدانند!) با یکدیگر صحبت کنند و به این ترتیب، جز خودشان هیچکس دیگر حتی اگر بتواند حرفهای آنها را هم بشنود، نمیتواند چیزی از گفتگو آنها بفهمد!
نحوه کار SSL زیر زره بین
خب حالا که تا اینجا از ایده کلی SSL باخبر شدید، بد نیست که یکمی دقیقتر و علمیتر این پروتکل امنیتی فضای اینترنت را بشناسیم. در این پروتکل دو کامپیوتر که قرار است با یکدیگر ارتباط برقرار کنند، در ابتدای ارتباط یک رمز امنیتی را با یکدیگر توافق میکنند و بعد از آن به کمک آن رمز شروع به انتقال اطلاعات میکنند. اما شاید این طور تصور کنید که هرکسی که از این رمز باخبر شود هم میتواند این اطلاعات را رمزگشایی کند و بفهمد، اما نکته اینجاست که این رمز امنیتی توسط یک کامپیوتر سوم ایجاد شده که همان سرویس دهنده SSL است. به همین خاطر، کامپیوتر اول قبل از شروع نقل و انتقال اطلاعات، رمز دریافتی از کامیپوتر دوم را با سرویس دهنده SSL بررسی میکند تا از صحت آن مطمئن شود و بعد از آن ارتباط بین کامپیوتر اول و دوم ایجاد میشود.
HTTP چیست؟
حتما تا اینجا متوجه شدهاید که SSL یک ایده و مدل برای امن کردن ارتباط بین دو کامپیوتر، در شبکه اینترنت است. همانطور که میدانید وقتی که شما از کامپیوتر یا تلفن همراهتان یک وبسایت اینترنتی را باز میکنید، یک ارتباط اینترنتی بین کامپیوتر شما و کامپیوتری که سایت موردنظرتان بر روی آن قرار دارد(که همان هاست یا سرور سایت مورد نظر است) برقرار میشود. این ارتباط به کمک پروتکلی به نام HTTP در شبکه اینترنت اتفاق میافتد. بد نیست بدانید که تمام مرورگرها مانند مرورگر کروم، فایرفاکس، اینترنت اکسپلورر و … از این پروتکل برای باز کردن سایتها و نمایش آنها به شما استفاده میکنند.
HTTPS همان HTTP است که به کمک SSL امن شده است
اما این ارتباط بین کامپیوتر ما و وبسایتها به کمک HTTP، یک ارتباط حفاظت نشده است. اگر برگردیم به مثال تماس تلفنی دو دوست، در حقیقت HTTP مانند این است که دو دوست به زبان فارسی که برای همه قابل فهم است شروع به صحبت کردن کنند و اطلاعات مهم خودشان را در تماس تلفنی به زبان فارسی که برای همه قابل فهم است به یکدیگر بگویند و اگر برگردیم به دنیای اینترنت، حالا به این فکر کنید که چه میشود اگر اطلاعات حساب بانکی شما یا پسوردهای شما توسط یک شخص سوم به جز شما و سایت مورد نظرتان شنیده و دزدیده شود!
بنابراین لازم است که ارتباط HTTP هم به کمک SSL امن شود تا اطلاعاتی که شما در سایتهای مختلف وارد میکنید توسط هکرها و نفوذگرها قابل فهم نباشد. HTTPS در حقیقت همان HTTP + SSL است. یعنی تمام اطلاعاتی که در پروتکل HTTP رد و بدل میشوند توسط پروتکل SSL رمزنگاری میشوند و اگر این وسط، به هر دلیلی یک فرد سوم به این اطلاعات دسترسی پیدا کند هم نمیتواند چیزی از آن سر در بیاورد.
TLS چیست و چه تفاوتی با SSL دارد؟
بعید نیست که وقتی با کسی درباره SSL صحبت میکنید صحبت از TLS هم به میان بیاید و به گوشتان مخفف TLS هم خورده باشد. TLS یا Transport Layer Security در حقیقت یک نسل جوانتر از SSL است که از همان ایده SSL استفاده میکند ولی به روشهای جدیدتر.
از SSL 3.0 به بعد، توسعه SSL متوقف شد و این روش امن نگاری اطلاعات تحت عنوان TLS به کار خود ادامه داد. TLS 1.3 که در آگوست 2018 معرفی شده است آخرین نسخه TLS محسوب میشود.
در حقیقت وقتی از SSL صحبت میکنیم منظورمان همان نسخه جدیدتر آن یعنی TLS است. چرا که تقریبا چندسالی است که از منسوخ شدن آخرین نسخه SSL میگذرد اما چون این پروتکل سالیان طولانی مورد کاربرد بوده است هنوز که هنوزه عبارت مخفف شده SSL را بیشتر از TLS خواهید شنید.
چگونه بفهمیم یک سایت از گواهی SSL استفاده میکند؟
امروزه تمام مرورگرها مانند کروم، فایرفاکس، اپرا و … وجود گواهی SSL را به کمک نمایش یک قفل در کنار آدرس سایتها در آدرس بار خودشان نمایش میدهند. حتما برایتان پیش آمده که وقتی به یک سایتی که SSL ندارد مراجعه میکنید مرورگرتان هرطور که شده تلاش میکند شما را از خطری که ممکن است در انتظارتان باشد آگاه کند!
اگر تابحال به این موضوع دقت نکردهاید، از امروز به قفل کنار آدرس سایتها بیشتر از گذشته دقت کنید، چرا که نبود این قفل میتواند امنیت اطلاعات شما در دنیای اینترنت را به خطر بیاندازد.
مزایا استفاده از SSL برای سایتمان چیست؟
اگر صاحب یک سایت هستید، حتما بارها لزوم استفاده از SSL برای سایتها به گوشتان خورده. در ادامه چندتا از مهمترین دلایلی که بخاطر آنها باید از SSL استفاده کنید را برایتان آوردهایم.
استفاده از SSL باعث بهبود رتبه و سئو سایتتان میشود
در آگوست 2014 بود که گوگل رسما اعلام کرد که به سایتهایی که دارای SSL هستند و از HTTPS استفاده میکنند بهایی بیشتری میدهد. در این میان برخیها به فکر استفاده از SSL افتادند و برخیها توجهی به آن نکردند.
در سال 2017 گوگل کم کم شروع کرد به حذف سایتهایی که هنوز در صفحات خود از HTTPS استفاده نمیکردند و در پایان سال 2017، حدود 75 درصد از نتایج صفحه اول گوگل را سایتهای دارای HTTPS تشکیل میدادند.
در نهایت در 24 جولای 2018، گوگل در نسخه 68 مرورگر گوگل کروم (Google Chrome) سایتهایی که از HTTPS استفاده نمیکردند را به صورت نا امن نمایش میداد و به کاربران هشدار میداد که ممکن است امنیت آنها بخاطر بازدید از این سایت به خطر بیفتد!
در حال حاضر نیز اهمیت استفاده از HTTPS به قدری برای تمام دنیا واضح شده است، که دیدن سایتی که هنوز از HTTP استفاده میکند کمی عجیب است! با یک جستجوی ساده در گوگل نیز میبینید که در صفحه اول نتایج گوگل تنها سایتهایی حضور دارند که از گواهینامه SSL و پروتکل HTTPS استفاده میکنند.
اعتماد بیشتر کاربران به سایتهای دارای HTTPS
خودتان را جای کاربران سایتتان بگذارید، به سایتی که ممکن است امنیت اطلاعات شما را به خطر بیندازد اعتماد بیشتری خواهید کرد یا سایتی که برای امنیت کاربران خود اهمیت قائل است و حداقل موارد امنیتی را رعایت میکند؟
حتی دیدن خطای نا امن بودن سایت این حس را به کاربرانتان میدهد که سالیان زیادی است که کسی پشت صحنه سایت شما در حال فعالیت نیست و این سایت به صورت متروکه رها شده است!
امنیت بالاتر سایتهای دارای SSL
همانطور که از ابتدای این مقاله متوجه شدید SSL یک پروتکل برای تامین امنیت ارتباطات در اینترنت است. کم نیستند سایتهایی که بخاطر استفاده نکردن از HTTPS دچار مشکلات امنیتی و هک شدهاند و سربار هزینه بسیار بیشتر از راه اندازی SSL را متحمل شدهاند.
بنابراین حتی اگر برای تامین امنیت کاربران خود هم اهمیتی قائل نیستید، نداشتن SSL امنیت سایت خودتان را هم به خطر خواهد انداخت!
معایب استفاده از SSL برای سایتمان چیست؟
تا اینجای کار فقط از مزایا و ضرورت استفاده از SSL گفتیم، اما آیا این پروتکل فقط و فقط محاسن دارد و هیچ عیبی ندارد؟
تاثیر SSL بر روی سرعت سایت
همانطور که متوجه شدید استفاده از SSL یک مرحله اضافی به برقراری ارتباط بین کاربران و سایت شما تحمیل میکند و آن هم بررسی رمز ارتباط با سرویس دهنده SSL است. اما لازم نیست نگران زمان این مرحله اضافی باشید چرا که اگر از یک سرویس دهنده SSL مناسب برای سایت خود استفاده کنید مدت زمان این مرحله به قدری کوتاه است که به سختی قادر به اندازهگیری آن خواهید بود و در کسری از ثانیه اتفاق خواهد افتاد.
گواهی SSL چیست؟
همانطور که تا به اینجا متوجه شدهاید، برای ایمن سازی ارتباط دو کامپیوتر در دنیای اینترنت به کمک پروتکل SSL لازم است که یک کامپیوتر سوم در این ارتباط ایفا نقش کند و به کمک رمز تولید شده توسط کامپیوتر سوم ارتباط بین دو کامپیوتر رمزنگاری شود. این کامپیوتر سوم، همان سرورهای سرویس دهندگان سرویس SSL هستند. در حقیقت سرویسدهندگان SSL برای انجام این کار، یک رمز طولانی و محافظت شده در اختیار سرورها میگذارند تا به کمک آن، عمل رمزنگاری ارتباطات صورت بگیرد. این رمز طولانی و محافظت شده در حقیقت همان گواهی SSL است. بعد از دریافت گواهی SSL تمامی ارتباطات بین کاربران و سایت رمزنگاری میشوند و ازین پس محتوای سایت در قالب HTTPS به کاربران نمایش داده میشود.
تفاوت گواهیهای پولی SSL و SSL های رایگان مانند Let’s encrypt چیست؟
با تمام این تفاسیر و توضیحات، خیلی دور از ذهن نیست که این سرویس دهندگان SSL به ازای خدماتی که در اختیار شما قرار میدهند هزینهای را دریافت کنند. اما ممکن است تابحال از برخی افراد شنیده باشید که “SSL که رایگانه…”
در دنیا سرویسهای مختلف ارائه SSL وجود دارند که اینکار را به صورت رایگان و پولی برای شما انجام میدهند. به عنوان مثال در بین وبسایتهای فارسی SSL رایگان Let’s encript بخاطر پشتیبانی این سرویسدهنده از دامنههای ir در بین کاربران فارسی استفاده گستردهای دارد.
اما بین SSL های رایگان و پولی تفاوتهای وجود دارد که بد نیست به آنها اشاره کنیم
SSL های پولی ارتباطات شما را بیمه میکنند!
یکی از مهمترین و شاید اصلیترین دلایل استفاده از SSLهای پولی بحث بیمه است. بله بیمه! سرویسهای پولی SSL بابت تضمین صحت کار خود شما را در مقابل هر اتفاقی که ثابت شود بخاطر مشکل SSL رخ داده است بیمه میکنند و در صورت بروز مشکلات با توجه به پلن پولی خریداری شده به صورت نقدی به شما خسارت پرداخت خواهند کرد!
SSL های رایگان دوره تمدید کوتاه مدتتری دارند
SSLهای رایگان معمولا دوره تمدید کوتاه مدتتری دارند، به عنوان مثال گواهی SSL تولید شده توسط Let’s encript هر سه ماه یکبار نیاز به تمدید دارد(البته اینکار معمولا به صورت خودکار اتفاق میافتد و نیاز نیست شما اقدامی را انجام دهید). برعکس SSLهای پولی دوره تمدید یکساله یا بیشتر دارند.
برای دریافت نماد اعتماد دو ستاره نیاز به SSL های غیر رایگان دارید
برای دریافت برخی از گواهیها از جمله نماد اعتماد دو ستاره لازم است که دوره تمدید SSL شما حداقل یکساله باشد، بنابراین برای دریافت آن تنها مجبورید که از یک SSL پولی برای اینکار استفاده کنید.
چگونه برای سایتمان گواهینامه SSL بگیریم؟
برای دریافت گواهی SSL تنها کافیه که از سرویس دهنده SSL مورد نظرتان پلن مورد نظرتان را خریداری کنید و بقیه کار را به مسئول سرور سایت خود بسپارید. در صورتی هم که بخواهید از سرویسهای SSL رایگان مانند Let’s encript هم استفاده کنید، کار از حالت قبل هم سادهتر است. تنها کافیه به پشتیبانی هاست و یا سرور خود اطلاع دهید که این گواهی را برای سایت شما فعال کنند.
کاربردهای دیگر SSL در دنیای اینترنت
قبل از به پایان رساندن این مقاله بد نیست که بدانید SSL تنها محدود به سایتها و رمزنگاری HTTP و تبدیل آن به HTTPS نیست و کاربرد بسیار گستردهتری دارد. اگر کمی از دنیای شبکه و لایههای معماری TCP/IP بدانید، SSL در حقیقت یک پروتکل امنیتی در لایه اپلیکیشن(Application Layer) در معماری TCP/IP است، به همین خاطر تمام پروتکلهایی که در این لایه فعالیت میکنند هم میتوانند از SSL برای تامین امنیت انتقال اطلاعاتشان استفاده کنند، مانند XMPP, FTP و …
با این توضیحات، HTTP فقط یکی از پروتکلهایی است که میتواند از SSL برای رمزنگاری انتقال اطلاعات کمک بگیرد. شاید براتون جالب باشه که بدونید امروزه ماشینهای لباسشویی، یخچالها، خودروها و خیلی از لوازمی که حتی فکرش را هم نمیکنید به شبکه اینترنت متصل هستند. و SSL نه تنها در سایتها، بلکه در بسیاری از زمینههای مختلف مانند IoT یا همان اینترنت اشیا نیز قابل استفاده است و میتواند در تامین امنیت ماشین لباسشویی منزل شما نیز ایفای نقش کند و از نفوذ هکرها و خرابکاری آنها جلوگیری کند!
در پایان مثل همیشه خوشحال میشویم با پرسش سوالات خود به تکمیل این بحث کمک کنید. بچههای تیم دگردیسی در کمتر از 24 ساعت به پرسشهای شما پاسخ خواهند داد.