تفاوت SSL و TLS چیست و کدام یک بهتر است؟
در این مقاله میخوانید
تفاوت SSL و TLS چیست؟ اگر شما هم به موضوع امنیت وب علاقه داشته باشید، احتمالاً با این سؤال مواجه شدهاید. در یک مفهوم ساده و مختصر، هر دو پروتکل SSL و TLS برای رمزگذاری دادهها در دنیای وب استفاده میشوند؛ اما نحوهی کار این دو و تفاوت بینشان موضوعی نیست که با یک جمله بتوان به آن رسید. این مقاله از آموزش SSL بلاگ پارس پک قرار است تفاوت پروتکلهای SSL و TLS را به شما بگوید؛ پس با ما همراه باشید.
مختصری در مورد تفاوت SSL و TLS
SSL (Secure Socket Layer) و TLS (Transport Layer Security) هر دو پروتکلهایی هستند که برای رمزگذاری دادهها در دنیای وب از آنها استفاده میشود و میتوان گفت که مهمترین تفاوت SSL و TLS در تکنولوژی استفاده شده برایِ رمزگذاری و سرعت فرایند Handshake است. حالا بیایید تمامی این موارد را از ابتدا و بهصورت ساده، یاد بگیریم.
تفاوت SSL و TLS مثلِ داشتن گاو صندوق در یک جواهر فروشی است؛ حالا شما باید تصمیم بگیرید که میخواهید این کلید را جایی بگذارید که همه آن را ببینند یا نه.
فرق بین پروتکل HTTP و HTTPS
قبل از اینکه بخواهیم ببینیم که تفاوت دو پروتکل SSL و TLS چیست، بهتر است کمی در مورد پروتکلهای HTTP و HTTPS اطلاعاتمان را بهروز کنیم.
ببینید! تمام کارهایی که ما در اینترنت انجام میدهیم، همگی بر اساس یکسری قوانین و مقررات انجام میشود که ما به آنها پروتکل میگوییم. مثلاً برای انتقال اطلاعات وبسایت از پروتکل HTTP یا همان پروتکل انتقال اَبَرمتن استفاده میشود. این پروتکل اطلاعات را در قالبِ یک متنِ خیلی واضح برای مخاطب ارسال میکند.
میدانید استفاده از این پروتکل مثلِ چیست؟ مثل این است که شما یک نامه را برای نامزدتان بنویسید، بدون اینکه درِ پاکت نامه را ببندید! بنابراین اگر پستچی وسط راه دلش بخواهد که ببیند شما به نامزدتان چه گفتهاید، فقط کافی است نامه را دربیاورد.
در دنیای وب هم اتفاقی شبیه به همین مثال ساده میافتد، اگر یک هکر بتواند در میانهی راه تبادل ارتباط کاربر وبسایتِ شما با سرور بنشیند، میتواند همهی اطلاعات تبادل شده را بخواند؛ حالا این اطلاعات میتواند ایمیل و پسوردش باشد یا حتی تمام اطلاعات کارت بانکی که از آن برای خرید اینترنتی در وبسایت شما استفاده شده است. به این نوع نفوذ، «حملهی مرد میانی» گفته میشود.
برای حل این موضوع هم از رمزگذاری استفاده میشود و همین جاست که تفاوت SSL و TLS شروع میشود. HTTPS هم همان راه و رسمی است که توسط توسعهدهندگان وب طراحی شده است تا این عملیات رمزگذاری با امنیت بالا انجام شود.
مثلاً یکی از مواردی که در این پروتکل به آن پرداخته شده شمارهی پورت استفاده شده است. پروتکل HTTP از پورت ۸۰ و پروتکل HTTPS از پورت ۲۲ استفاده میکند؛ این دو مورد را هم به یاد داشته باشید تا سروقتِ موضوعِ اصلی یعنی تفاوت SSL و TLS برویم.
تاریخچه پروتکل SSL و TLS
اگر بخواهیم خیلی ساده به تفاوت SSL و TLS اشاره کنیم، میتوانیم بگوییم که پروتکل TLS در واقع نسخهی بهروز شدهی پروتکل SSL است که هم بعضی از باگهای امنیتی را برطرف کرده و هم اصلاحاتی رویِ آن انجام شده که باعث رشد سرعت آن شده است.
از نظر تاریخی، پروتکل SSL اولین بار در فوریه سال ۱۹۹۵ با ورژن ۲.۰ معرفی شد. نسخهی ۱.۰ این پروتکل، بهدلیل نقص امنیت، هیچ وقت فرصت پیدا نکرد تا پایش را به دنیای وب برساند. البته خودِ SSL 2.0 هم باگ امنیتی کم نداشت. به همین دلیل بود که خیلی سریع، یعنی در سال ۱۹۹۶، با SSL 3.0 جایگزین شد.
اما هیچ هکری روی کرهی زمین وجود نداشت، شاید اصلاً نیازی به هیچ پروتکل امنیتی هم نبود؛ اما خُب هکرها دوباره، هم خودشان و روشهایشان را آپدیت کردند تا جایی که SSL 3.0 دیگر نمیتوانست جلودارشان باشد.
همین مسئله باعث شد تا در سال ۱۹۹۹، پروتکل TLS 1.0 منتشر شود؛ پروتکلی که در اصل، یک آپدیت برای SSL 3.0 بود. از سال ۱۹۹۹ تا همین الان که شما دارید این متن را میخوانید، نسخههای دیگری هم از TLS منتشر شده است. آخرین ورژن این پروتکل، TLS 1.3 بود که در آگوست ۲۰۱۸ از آن رونمایی شد.
الان دیگر تمامی نسخههای پروتکل SSL به دلیل باگهای امنیتی کشف شده، منسوخ شدهاند. بنابراین اگر جایی هم خواندید یا شنیدید که یک وبسایت از SSL استفاده میکند، مطمئناً منظور همان پروتکل TLS است.
در جدول زیر، مقایسه SSL و TLS از نظرِ ورژن درج شده است:
ورژن پروتکل | توضیحات |
SSL 1.0 | بهدلیل وجود نقصهای آشکار امنیتی، هرگز منتشر نشد. |
SSL 2.0 | در سال ۱۹۹۵، کمپانی Netscape برای اولین بار SSL 2.0 را منتشر کرد اما اشکالاتی در طراحی آن وجود داشت. |
SSL 3.0 | SSL 3.0 برای رفع مشکلات امنیتی قبلی طراحی شد، اما این ورژن هم در سال ۲۰۰۴ بهدلیلِ حملهی POODLE ناامن تشخیص داده شد. |
TLS 1.0 | TLS 1.0 که نسخه بهبود یافته SSL 3.0 بود، در ژانویه ۱۹۹۹ منتشر شد. این نسخه از پروتکل امنیتی TLS امکان پشتیبانی از نسخه قدیمی SSL 3.0 را نیز فراهم میکرد. |
TLS 1.1 | در نسخهی ۱.۱ پروتکل TLS، محافظت در برابر حملات CBC هم اضافه شد. اما در مارس ۲۰۲۰، گوگل، موزیلا، فایرفاکس و مایکروسافت اعلام کردند که نسخههای TLS 1.0 و TLS 1.1 منسوخ شده است. |
TLS 1.2 | به این نسخه از پروتکل TLS، امکان تعیین مشخصات هش و الگوریتم رمزنگاری مورد استفاده افزوده شد. این امر برای اولین بار امکان تعیین نحوه رمزگذاری دادهها را در این پروتکل فراهم کرد. همچنین، امکان تشخیص طول دادهها بر اساس مجموعه رمزنگاری (Cipher Suite) نیز به این پروتکل اضافه شد. |
TLS 1.3 | در آگوست ۲۰۱۸، TLS 1.3 معرفی شد. در این نسخه، پشتیبانی از MD5 و SHA-224 حذف شده است. همچنین در صورتیکه بخواهید از همان پروتکلهای قبلی استفاده کنید، نیاز به امضای دیجیتالی دارید. همچنین، از تبادل کلید مبتنی بر کلید عمومی در این پروتکل استفاده شده و خودِ فرایند Handshake هم رمزگذاری میشود. |
احتمالاً با اطلاعات این جدول هم میتوانید تا حد زیادی به تفاوت SSL و TLS پی ببرید، بااینحال در ادامه، اطلاعات بیشتری را در این مورد به شما توضیح میدهیم و به شما میگوییم که SSL/TLS چیست.
نحوه ایمنسازی انتقال دادهها در SSL/TLS
برای درکِ عمیقِ تفاوت SSL و TLS، باید ببینیم که این دو پروتکل اصلاً چهکار میکنند که نتیجهی آن میشود انتقالِ امن اطلاعات بین مرورگر کاربر و سرور وبسایت یا وباپلیکیشن. این هدف در یک فرایند ۳ مرحلهای انجام میشود:
مرحله اول: فرایند Handshake
خودِ فرایند Handshake، در ۶ مرحله انجام میشود:
۱. Client Hello
داستان با ارسال پیام Client Hello از کاربر به سرور شروع میشود. در این پیام، لیستی از آخرین نسخهی پروتکل TLS پشتیبانی شده، Cipher Suiteهای پشتیبانی شده (یعنی مجموعهای از الگوریتمهای رمزنگاری، رمزگشایی و هش کردن) و یک رشته بایت «تصادفی» که در محاسبات بعدی از آن استفاده میشود، به سمت سرور ارسال خواهد شد.
۲. Server Hello
در پاسخِ Client Hello، سرور هم پاسخی ارسال میکند که به نامِ Server Hello شناخته میشود. در این پیام، سرور نسخهی پروتکل و همچنین روش رمزنگاری انتخابی را از بین همانها که از سمت کلاینت دریافت کرده بود را انتخاب میکند. این نسخه معمولاً امنترین نسخهای است که هم توسط مرورگر کاربر و هم توسط سرور پشتیبانی میشود. همچنین، سرور رشتهی بایت تصادفی خود را هم در این پیام ارسال میکند.
راهنمای جامع نصب و راهاندازی گواهی SSL در وردپرس را در مقاله زیر بخوانید.
۳. گواهینامهی سرور و تبادل کلید
در گام بعدی، سرور گواهینامهی دیجیتال خود را برای کاربر ارسال میکند. این گواهینامه شامل کلید عمومی سرور است و توسط یک مرجع صدور گواهی (CA) امضاء شده است. درصورتیکه روش رمزنگاری، نیازمند انتقال اطلاعات اضافی برای ایجاد ارتباط امن باشد، سرور یک پیام ServerKeyExchange برای کاربر ارسال میکند. این پیام حاوی اطلاعات مورد نیاز برای ایجاد کلید مشترک بین کاربر و سرور است.
۴. تبادل کلید کاربر
حالا نوبتِ کلاینت است که همه چیز را چک کند. ممکن است کاربر در این مرحله، گواهی امضاء شده از سمت سرور را با لیست CAهای مورد اعتماد، اعتبارسنجی کند. اگر این اعتبارسنجی موفقیتآمیز باشد، با ایجاد یکسری رمز اولیه، آن را با استفاده از کلید عمومی سرور، رمزنگاری کرده و در پیامِ Client Key Exchange به سمت سرور ارسال میکند.
۵. تغییر گواهینامهی رمزنگاری (Change Cipher Spec)
یادتان هست که گفتیم سرور و کلاینت، یکسری بایتهای تصادفی را هم در پیامهای Hello برای هم ارسال میکنند؟ حالا وقتِ استفاده از آنهاست؛ حالا باید هر دو طرف، کلیدهای جلسه (Session Key) را تولید کنند و بعد هم پیامِ ChangeCipherSpec را ارسال کنند. این پیام یعنی اینکه هر دو طرف قصد دارند تا با استفاده از کلیدهای جدید، رمزنگاری را شروع کنند.
۶. ارسال پیامِ آخر Finished Message
در پایان فرایند تایید کلیدهای جلسه، هر دو طرف پیغام Finished Message را برای یکدیگر ارسال میکنند. این پیغام نشاندهندهی موافقت طرفین با استفاده از کلیدهای جلسه است. با ارسال این پیغام، جلسات رمزنگاری میتوانند آغاز شوند.
مرحله دوم: انتقال امنِ دادهها
تا این مرحله که بینِ پروتکل SSL و TLS مشترک است، کانالهای امن برای انتقال دادهها تعریف شده است. حالا نسبت به نوعِ سیستم انتقال، دادهها میتوانند به چند قسمت تقسیم شوند، بهصورت اختیاری فشرده شوند و با استفاده از کلید جلسه، رمزگذاری شوند. حالا همه چیز برای شروع انتقال فراهم است؛ تنها نکتهی اضافی که این وسط وجود دارد، کد تایید پیام (MAC) است که برای یکپارچگی ارسال میشود.
مرحله سوم: تداوم در ایمنسازی ارتباط
کلیدهای جلسه یا همان Session Keyها باید برای هر ارتباط، بهروز شوند. این بهروزرسانی کلیدها در هر دو پروتکل TLSو SSL، در فرایند Handshake اتفاق میافتد. با این روش، حتی اگر هکرها بتوانند کُدهای رمزنگاری شده را بشکنند، فقط به همان دسته اطلاعاتی که در همان Session جابهجا شده دست پیدا میکنند. این مرحله را Renegotiation هم میگویند.
گواهی SSL چیست و چگونه کار میکند؟ مزایا و معایب استفاده از SSL چیست؟ انواع SSL چه تفاوتی با هم دارند؟ در مقاله زیر بخوانید.
مهمترین تفاوت SSL و TLS
خیلی خُب! اطلاعات بنیادینی که تا الان بهدست آوردهایم، میتواند به ما کمک کنند تا تفاوت SSL و TLS را خیلی عمیقتر متوجه شویم. مهمترین تفاوت بین این دو پروتکل، در ادامه توضیح داده شده است:
۱. تفاوت SSL و TLS در Cipher Suiteها
اولین تفاوت بین SSL و TLS، در مجموعههای رمزنگاری (Cipher Suite)هایی است که هر یک از آنها پشتیبانی میکنند. پروتکل SSL از مجموعههای رمزنگاریای پشتیبانی میکرد که اگر چه در زمان خود مشکلات امنیتی را حل میکردند، اما اکنون دیگر منسوخ شدهاند. نمونه آن سیستم رمزگذاری Fortezza است که زمانی یکی از الگوریتمهای رمزگذاری دولتی بود، اما منسوخ شد.
اما تفاوت اصلی بین SSL و TLS در این است که پروتکل TLS از الگوریتمهای جدیدتر و بهروزتری در رمزگذاری دادهها استفاده میکند؛ مانند الگوریتم RC4 که البته این مورد هم منسوخ شده و الگوریتمهای جدیدتر AES ،Triple DES و IDEA به میان آمدهاند.
۲. تفاوت SSL و TLS در پیغامهای هشدار
یکی دیگر از تفاوت SSL و TLS، پیغامهای هشداری است که در مواقع بحرانی صادر میکنند. تفاوتی که از آن حرف میزنیم این است که مجموعه هشدارهای SSL شامل یک پیغام No Certificate است که اگر کاربر گواهی لازم را صادر نکند، این پیغام صادر میشود.
اما برعکس در پروتکل TLS، هشدار No Certificate حذف شده و در عوض مجموعهی بهروزتر و ایمنتری از پیغامهای هشدار را صادر میکند. این هشدارها حالت توصیفیتری دارند و مسائلی را که ممکن است در طول اتصال اتفاق بیفتد را توضیح میدهند.
۳. تفاوت SSL و TLS در پروتکل Record
پروتکل Record نحوه بستهبندی و انتقال دادهها را مشخص میکند. این پروتکل یکی دیگر از تفاوتهای SSL و TLS است. لایهی رکورد SSL از احراز هویت MAC استفاده میکند که حداقل الان دیگر سیستم قدرتمندی نیست. اما پروتکل TLS برای احراز هویت پیام، از الگوریتم HMAC استفاده میکند که یک سیستم مبتنی بر هش است و امنیت بیشتری هم دارد.
۴. تفاوت SSL و TLS در فرایند Handshake
یکی از باگهای امنیتی پروتکل SSL که قبلاً در مورد آن توضیح دادیم و باعثِ حملهی POODLE هم شد، بهدلیل نقص در فرایند Handshake رخ داد. این نقص امنیتی در پروتکل TLS رفع شد و با کاهش تعداد رفتوآمدهای موردنیاز برای این فرایند، هم سرعت کار را افزایش داد و هم امنیت بالاتری را ایجاد کرد.
۵. تفاوت در سازگاری با مرورگرها
تقریباً دیگر هیچ مرورگری را پیدا نمیکنید که همچنان از SSL پشتیبانی کند. اما پروتکل TLS در مرورگرهایِ بهروز و معروف پشتیبانی میشود و مطابقت بالایی هم با آنها دارد.
تاثیر استفاده از SSL و TLS بر سئو
اکنون که جنبهها، شباهتها و تفاوت SSL و TLS را بررسی کردیم، بیایید به تأثیر آنها بر SEO (بهینهسازی موتور جستجو) بپردازیم. گوگل، در آخرین رتبهبندیهایش امنیت وبسایت را به یک عامل رتبهبندی تبدیل کرده است. این یعنی وبسایتهایی که از HTTPS با رمزنگاری SSL/TLS استفاده میکنند، در مقایسه با سایتهای HTTP ناامن، در رتبهبندی موتورهای جستجو افزایش مییابند.
میخواهید بدانید استفاده از SSL چه تاثیری بر سئو وبسایتها دارد؟ ۷ تاثیر مهم SSL روی سئو سایت را در مقاله زیر بخوانید.
SSL یا TLS؛ کدام را انتخاب کنیم؟
اطلاعاتی که تا این قسمت در مورد تفاوت SSL و TLS بهدست آوردیم، یک نتیجهی مشخص دارد: اصولاً الان دیگر چیزی به اسمِ پروتکل SSL وجود ندارد که بخواهیم آن را انتخاب کنیم؛ هر چه است، در واقع همان پروتکل TLS است که برخی اوقات به اشتباه، به اسمِ SSL خوانده میشود. بنابراین الان ما فقط یک انتخاب داریم: استفاده از پروتکل TLS که امنیت بیشتری دارد و سرعت احراز هویت و رمزگذاری دادهها را بیشتر میکند.
سایتتان را ایمن و خاطرِ مشتریانتان را جمع کنید!
سایتهای زیادی گواهی SSL/TLS میفروشند. اما پارس پک، فقط فروشنده نیست. تیم پشتیبانی ما ۲۴ ساعته در ۷ روز هفته، حتی روزهای تعطیل، آماده پاسخگویی به سوالات کاربران است تا در فرایند ایمنسازی وبسایتشان به آنها کمک کند. ما این گواهی را از معتبرترین مراجع صدور گواهی (CA) در اختیارتان قرار میدهیم تا امنیت سایت شما را تضمین کند. همین حالا روی لینک زیر کلیک کنید و یک گواهی SSL/TLS سفارش دهید.
جمعبندی
تفاوت SSL و TLS از سؤالات پرتکراری است که ممکن است برای همهی ما پیش آمده باشد. پروتکل TLS در واقع ورژن بهروزتر SSL است که مشکلات امنیتی آن را برطرف کرده است. در این مطلب از آموزش امنیت بلاگ پارس پک این دو پروتکل را از نظر تکنیکال با هم مقایسه کردهایم. اگر راجع به تفاوت SSL و TLS سوال یا ابهامی دارید، در بخش دیدگاههای این مقاله نظراتتان را برای ما ارسال کنید تا بهسرعت به آنها پاسخ دهیم.
سؤالات متداول
۱. تفاوت SSL و TLS چیست؟
پروتکل TLS در واقع نسخهی بهروزشدهی SSL است که سرعت رمزگذاری و امنیت آن بیشتر شده است.
۲. آیا هنوز از پروتکل SSL هم استفاده میشود؟
خیر، با رویِ کار آمدن پروتکل TLS در سال ۱۹۹۹، تمامی نسخههای SSL منسوخ شد و دیگر از آنها استفاده نمیشود.
۳. آیا SSL و TLS در نوع رمزگذاری هم تفاوت دارند؟
بله. SSL از Cipher Suiteهایی استفاده میکرد که مشکلات امنیتی دارند و سرعت آنها نیز پایینتر از Cipher Suiteهایی است که در پروتکل TLS از آنها استفاده میشود.