SSL چیست؟
SSL یک فناوری امنیتی استاندارد برای برقراری یک پیوند رمزگذاری شده بین یک سرور و یک مرورگر است. این پیوند امن، محرمانه باقی ماندن تمامی دادههایی که بین سرور و مرورگر رد و بدل میشوند را تضمین میکند. اولین نسخه SSL در سال ۱۹۹۵ توسط شرکت Netscape ارائه شد.
سپس TLS برای اولین بار در سال ۱۹۹۹ بر پایه SSL 3.0 ارائه شد و در نهایت جایگزین ssl شد. امروزه استفاده از ssl دیگر منسوخ شده است اما هنوز رایج است که از اصطلاح ssl برای این نوع از ارتباطات استفاده می شود که شما باید بدانید اشاره به tls دارد. تاریخچه نسخه های مختلف ssl و tls عبارتند از:
- SSL 1.0 (به دلیل مشکلات زیاد انتشار نیافت)
- SSL 2.0 (1995)
- SSL 3.0 (1996)
- TLS 1.0 (1999)
- TLS 1.1 (2006)
- TLS 1.2 (2008)
- TLS 1.3 (2018)
از بین نسخه های منتشر شده بالا، استفاده از تمامی نسخه های SSL تا پایان سال ۲۰۱۵ و نسخه های TLS1.0 و TLS1.1 تا سال ۲۰۲۰، منسوخ شده اند و دیگر استفاده نمی شوند. جدیدترین نسخه نیز TLS1.3 می باشد که می توانید برای مطالعه بیشتر در رابطه با آن این مقاله را مطالعه نمایید.
امروزه اينترنت به يکی از ارکان ارتباطی بين انسان ها تبديل شده است. روزانه اطلاعات بسیار زیادی در این بستر، ارسال و دریافت می شوند. این اطلاعات میتواند هر چیزی باشد، از اطلاعات تراکنشهای بانکی گرفته تا اطلاعات خصوصی مهمی که برای ثبت نام در سرویسهای مختلف وارد میکنید. هکرها به این سرقت اطلاعات، حمله مرد میانی میگویند.
اما زمانی که از سایتی دیدن میکنید که با SSL رمزگذاری شده، مرورگر شما گواهینامه SSL را بررسی میکند و یک ارتباط واقعاً امن را بین مرورگر و سرور برقرار میکند. در این حالت هیچکس بجز شما و سایتی که اطلاعاتتان را برای آن ارسال میکنید نمیتواند به آنچه که در مرورگر خود تایپ میکنید دسترسی داشته باشد یا آن اطلاعات را به هر نحوی مشاهده کند و اگر هم بتواند به یک طریقی آنها را برباید، قادر نیست که رمزگذاری آنها را باز و محتویات داخلش را مشاهده کند.
البته باید بدانید که از tls تنها برای امنیت پروتکل http استفاده نمی شود بلکه برای پروتکل هایی نظیر ftp، smtp، imap و pop3 نیز بکار می رود.
انواع رمزنگاری
از دو کلید مجزا و مختلف برای رمزنگاری و رمزگشایی استفاده میکند. کلید اول، کلید عمومی است که از طریق CSR تولید شده و هر کس میتواند با استفاده از آن هر پیغامی را رمزگذاری کند. کلید دوم، کلید رمزگشایی یا private keys است که همیشه محرمانه هستند. در چنین سیستمی، هر شخص میتواند با استفاده از کلید عمومی گیرنده، پیام را رمزگذاری کند اما آن پیام رمزگذاری شده فقط با کلید خصوصی گیرنده قابل رمزگشایی است.
الگوریتم های مختلفی برل رمزنگاری نامتقارن وجود دارند، برخی از آنها توزیع کلید و رازداری را ارائه می دهند مانند الگوریتم دیفی-هلمن، برخی از آنها امضاهای دیجیتال را فراهم می کنند مانند الگوریتم امضای دیجیتال، و در نهایت برخی دیگر هر دو را ارائه می دهند مانند الگوریتم RSA.
متداولترین الگوریتم رمزنگاری نامتقارن RSA است که در ادامه به آن خواهیم پرداخت.
کلیدهای نامتقارن معمولا به صورت ۱۰۲۴ و یا ۲۰۴۸ بیت ساخته میشوند اما کلیدهای کوچکتر از ۲۰۴۸ بیت، دیگر به اندازه کافی امن نیستند و استفاده نمیشوند. با اینکه امکان ساخت کلیدهای بزرگتر از ۲۰۴۸ بیت هم وجود دارد، اما به دلیل بار محاسباتی زیادی که دارند به ندرت استفاده میشوند.
از یک کلید واحد برای رمزنگاری و رمزگشایی استفاده میکند. فرستنده و گیرنده هر دو برای برقراری ارتباط به این کلید نیاز دارند. سایز کلیدهای متقارن معمولا به صورت ۱۲۸ یا ۲۵۶ بیتی میباشد. هر چه سایز کلید بزرگتر باشد، قفلگشایی آن سختتر خواهدبود.
بطور کل SSL، شما را مجبور به استفاده نوع خاصی از این دو کلید نمیکند. اما از آنجایی که سایز کلیدهای نامتقارن بزرگتر از کلیدهای متقارن است، دسترسی و قفلگشایی دادههایی که به صورت نامتقارن رمزنگاری شدهاند بسیار دشوارتر میباشد اما در مقابل کلیدهای متقارن بسیار کوچکتر از کلیدهای نامتقارن بوده و به همین دلیل بار محاسباتی بسیار پایینتری دارند.
در رمزنگاری متقارن از یک کلید واحد برای رمزنگاری و رمزگشایی استفاده میشود، و از آنجایی که نیاز است هم فرستنده و هم گیرنده این کلید را در اختیار داشته باشند باعث بوجود آمدن نقطه ضعف امنیتی میشود.
SSL چگونه از رمزنگاری متقارن و نامتقارن بهره میبرد؟
PKI مجموعهای از سختافزار، نرمافزار و روشهایی است که برای تولید، مدیریت، توزیع، کاربری و نگهداری از گواهینامههای دیجیتال مورد استفاده قرار میگیرد. PKI همچنین وسیلهای است که هویت واقعی افراد را با کمک شرکتهای صادرکننده گواهی(CA) به کلیدهای دیجیتال پیوند میزند.
PKI از سیستم رمزنگاری ترکیبی بهره میبرد و از هر دو نوع رمزنگاری که در قبل تشریح کردیم استفاده میکند. برای برقراری ارتباط از طریق گواهینامه SSL سه عنصر مورد نیاز است: یک کلید نامتقارن شامل public key و private key که روی سرور قرار دارد و Session key که توسط سرور و مرورگر برای برقراری ارتباط SSL ساخته میشود بهصورت متقارن میباشد.
مراحل طی شده بین یک کاربر و سرور در زیر نشان داده شده است:
- سرور کپیای از public key خود را برای مرورگر ارسال میکند.
- مرورگر با استفاده از public key که دریافت کرده است، Session key ساخته شده را کدگذاری کرده و برای سرور ارسال میکند.
- سرور با استفاده از private key بسته دریافتی را رمزگشایی کرده و به Session key دست پیدا میکند.
- حالا سرور و مرورگر هر دو با استفاده از Session key بستههایی که بین یکدیگر رد و بدل میکنند را رمزنگاری و رمزگشایی میکنند. این کار یک تونل امن بین مرورگر و سرور ایجاد میکند زیرا تنها این دو از Session key اطلاع داشته و این کلید فقط برای همین اتصال استفاده میشود. هر زمانی که این اتصال قطع شود این مراحل باید مجددا طی شود.
چگونه برای سایتمان گواهی SSL بگیریم؟
اولین قدم برای دریافت گواهی SSL، تعیین نوع گواهینامهای است که به آن نیاز دارید. بهعنوان مثال، اگر محتوای وبسایت خود را در دامنهها یا زیردامنههای مختلفی قرار داده اید به گواهینامههای SSL متفاوتی نیاز خواهید داشت.
معمولاً ارائهدهندگان خدمات SSL سرویسهای متنوعی را پیشنهاد میکنند که هر یک با نیازهای خاص وبسایتها و شرکتهای مختلفی تناسب دارد. عمده تفاوت این سرویسها به میزان تضمین SSL و تعداد دامنهها و زیردامنههایی مربوط میشود که توسط هر گواهی قابل پوشش است.
هزینه خرید گواهینامههای SSL متفاوت است، بهعلاوه، گواهینامههای رایگان SSL نیز وجود دارند. یکی از وبسایتهایی که گواهی معتبر SSL رایگان ارائه میکند، وبسایت Let’s Encrypt است. توجه داشته باشید که معمولاً گواهینامههای رایگان هر ۹۰ روز باید مجدداً تمدید شوند، اما دوره تمدید اغلب گواهینامههای پولی یک یا دوساله است.
چگونه مطمئن شویم که يک سايت از SSL استفاده می کند؟
برای اينکار ابتدا وارد آن سايت شويد. زمانی که صفحه بطور کامل بارگذاری شد، به ابتدای آدرس آن نگاه کنيد. می بايست بجای http حروف https نوشته شده باشد، منظور از حرف s در پايان http عبارت secure است. البته در اين حالت يک علامت قفل هم در مرورگر ديده می شود. جای اين قفل در مرورگرهای مختلف متفاوت است.
با دو بار کليک کردن بر روی این قفل، میتوانيد مشخصات کامل گواهی ssl سايت مورد نظر را مشاهده نمایید. مهمترين نکته در خصوص اين اطلاعات تاريخ خريد و انقضای اين گواهينامه است که بايد به آن توجه داشته باشيد.
حتي اگر اطلاعات چندان مهمی را رد و بدل نمی کنيد، پيشنهاد می کنيم که از اس اس ال استفاده کنيد. وقتی سرويسی با امنيت بالا و رايگان در اختيارتان قرار می گيرد، چرا از آن بهره نبريد؟
البته امروزه بدلیل اینکه در سئوی سایت ها مطرح می شود که گوگل به سایت های https اهمیت و اولویت بالاتری می دهد، اکثراً سایت های خود را به این بستر امن منتقل کرده اند.