تفاوت SSL و TLS
SSL و TLS از پروتکلهای معروف و شناخته شده در دنیای امنیت و به ویژه شبکههای کامپیوتری هستند که اجازه میدهند اطلاعات میان کلاینتها و وبسرورها به شکل ایمن ارسال و دریافت شوند. البته، این دو پروتکل به لحاظ عملکردی و قدمت تفاوتهایی دارند که در ادامه به بررسی آنها خواهیم پرداخت.
SSL چیست؟
لایه امن ارتباطات SSL مخفف Secure Sockets Layer از پروتکلهای رمزنگاری قدرتمندی است که ارتباط بین یک مرورگر وب و یک سرور را به شکل ایمن برقرار میکند. به زبان ساده، SSL مانند یک قفل برای اطلاعاتی است که بین شما و وبسایتی که از آن بازدید میکنید رد و بدل میشود. زمانی که شما به یک وبسایت امن متصل میشوید (آدرس آن با https شروع میشود)، SSL اطمینان حاصل میکند که اطلاعات حساس شما مانند رمز عبور، شماره کارت اعتباری و سایر اطلاعات شخصی به صورت رمزنگاری شده ارسال و دریافت شوند.
چگونه SSL کار میکند؟
SSL مانند یک تونل رمزنگاری شده عمل میکند که تمام اطلاعات رد و بدل شده بین کلاینت و وبسایت را محافظت میکند. به طور کلی، روند کاری پروتکل فوق به این صورت است که ابتدا فرآیند درخواست اتصال امن آغاز میشود. هنگامی که شما آدرس یک وبسایت امن (https://) را در مرورگر خود وارد میکنید، مرورگر شما به سرور وبسایت درخواست یک اتصال امن میدهد. سرور وبسایت گواهینامه SSL خود را برای مرورگر ارسال میکند. این گواهینامه توسط یک مرجع صدور گواهینامه معتبر صادر شده و شامل اطلاعاتی درباره مالک وبسایت است. مرورگر این گواهینامه را با لیست گواهینامههای معتبر خود مقایسه میکند تا از صحت آن اطمینان حاصل کند. پس از تایید هویت سرور، مرورگر و سرور یک جفت کلید رمزنگاری ایجاد میکنند. یک کلید عمومی و یک کلید خصوصی. کلید عمومی برای رمزنگاری دادهها استفاده میشود و در دسترس عموم قرار دارد. کلید خصوصی برای رمزگشایی دادهها استفاده میشود و فقط در اختیار سرور است.
تمام دادههایی که بین مرورگر و سرور رد و بدل میشوند، قبل از ارسال با استفاده از کلید عمومی رمزنگاری میشوند. این دادههای رمزنگاری شده تنها با استفاده از کلید خصوصی قابل رمزگشایی هستند. با توجه به اینکه دادههای رمزنگاری شده از طریق اینترنت به سرور ارسال میشوند، حتی اگر کسی به این دادهها در طول مسیر دسترسی پیدا کند، بدون داشتن کلید خصوصی نمیتواند آنها را بخواند. سرور با استفاده از کلید خصوصی خود، دادههای رمزنگاری شده را رمزگشایی میکند و به درخواست شما پاسخ میدهد. با توجه به توضیحاتی که ارائه کردیم باید بگوییم که SSL با ایجاد یک کانال ارتباطی امن، رمزنگاری دادهها و تایید هویت سرور، از اطلاعات حساس در برابر هکرها محافظت میکند.
TLS چیست؟
پروتکل امنیتی لایه انتقال TLS سرنام Transport Layer Security عملکردی یکسان با پروتکل SSL دارد. به این صورت که اجازه میدهد یک کانال ارتباطی ایمن میان دو دستگاه در شبکه ایجاد شود. این پروتکل نیز با ایجاد یک تونل امن است، اجازه میدهد اطلاعات حساس را به شکل ایمن میان دو دستگاه مبادله کنید. برای این منظور از کارآمدترین الگوریتمهای رمزنگاری استفاده میکند.
Forward Secrecy در پروتکل TLS چیست؟
محرمانگی پیشرو (Forward Secrecy)، ویژگی امنیت و کلیدی پروتکل TLS است که تضمین میدهد، اگر کلیدهای خصوصی سرور در آینده با خطر جدی روبرو شوند، بازهم اصل محرمانگی ارتباطات حفظ خواهد شد. به عبارت سادهتر، اگر یک هکر بتواند کلید خصوصی سرور را بدزدد، نمیتواند ترافیک رمزنگاری شدهای که قبلاً بین مرورگر شما و سرور رد و بدل شده است را رمزگشایی کند. در پروتکل TLS، برای هر اتصال امن، یک جفت کلید رمزنگاری منحصر به فرد تولید میشود. این کلیدها تنها برای آن اتصال خاص استفاده میشوند و پس از اتمام اتصال حذف میشوند. این فرایند را Ephemeral Key Exchange یا مبادله کلیدهای موقت مینامند. به این ترتیب، حتی اگر کلید خصوصی بلندمدت سرور به خطر بیفتد، کلیدهای جلسه که برای رمزنگاری ترافیک استفاده شدهاند، دیگر وجود ندارند و هکر نمیتواند از آنها برای رمزگشایی ترافیک قبلی استفاده کند. به بیان دقیقتر، Forward Secrecy را باید یکی از ویژگیهای قدرتمند پروتکل مذکور توصیف کنیم که اهمیت بسیار زیادی در دنیای امروز دارد و با هدف مقابله با حملات سایبری نوین و پیچیده طراحی شده است. با فعال بودن این ویژگی، حتی اگر یک هکر بتواند به سیستمهای داخلی یک شرکت نفوذ کند و به کلید خصوصی سرور دسترسی پیدا کند، باز هم نمیتواند به دادههای حساس کاربران که در گذشته مبادله شده است دسترسی پیدا کند. این ویژگی به ویژه برای محافظت از اطلاعات حساس مانند رمزهای عبور، اطلاعات کارتهای اعتباری و سایر دادههای شخصی بسیار مهم است. نکته مهمی که باید به آن اشاره داشته باشیم، انواع Forward Secrecy است از مهمترین الگوهای محرمانگی پیشرو به دو مورد زیر اشاره کرد:
- Perfect Forward Secrecy: قویترین نوع Forward Secrecy است که در آن کلیدهای جلسه به هیچ وجه به کلید خصوصی بلندمدت سرور وابسته نیستند.
- Bounded Forward Secrecy: در این نوع، کلیدهای جلسه به کلید خصوصی بلندمدت سرور وابسته هستند، اما این وابستگی به گونهای است که حتی با داشتن کلید خصوصی سرور، رمزگشایی ترافیک قبلی بسیار دشوار است.
به طور خلاصه، Forward Secrecy یک ویژگی حیاتی در پروتکل TLS است که امنیت ارتباطات آنلاین را به سطح بالاتری میبرد. با فعال بودن این ویژگی، کلاینتها میتوانند اطمینان حاصل کنند که حتی اگر امنیت سرور به خطر بیفتد، محرمانگی دادهها همچنان حفظ میشود.
چگونه TLS کار میکند؟
TLS شبیه به SSL با ایجاد یک تونل امن کار هکرها برای دسترسی به اطلاعات حساس را سخت میکند. به عبارت سادهتر، TLS اطمینان حاصل میکند اطلاعاتی که شما در اینترنت ارسال یا دریافت میکنید، فقط برای افرادی که مجاز به دیدن آن هستند قابل مشاهده باشد. به لحاظ عملکردی، TLS شبیه به SSL کار میکند. هنگامی که به یک وبسایت امن متصل میشوید (آدرس آن با https شروع میشود)، مرورگر شما با سرور وبسایت ارتباط برقرار میکند. سرور وبسایت گواهینامه دیجیتال خود را برای مرورگر ارسال میکند. این گواهینامه توسط یک مرجع صدور گواهینامه معتبر صادر شده و شامل اطلاعاتی درباره مالک وبسایت است. مرورگر این گواهینامه را با لیست گواهینامههای معتبر خود مقایسه میکند تا از صحت آن اطمینان حاصل کند. پس از تایید هویت، مرورگر و سرور یک جفت کلید رمزنگاری ایجاد میکنند. کلیدهای مذکور در زمینه رمزنگاری و رمزگشایی اطلاعات مورد استفاده قرار میگیرند. تمام دادههایی که بین مرورگر و سرور رد و بدل میشوند، قبل از ارسال با استفاده از کلیدهای رمزنگاری شده رمزنگاری میشوند. این دادههای رمزنگاری شده تنها با استفاده از کلیدهای مربوطه قابل رمزگشایی هستند. سرور با استفاده از کلید خصوصی خود، دادههای رمزنگاری شده را رمزگشایی میکند و به درخواست شما پاسخ میدهد.
تاریخچه SSL و TLS
SSL اولین بار در سال 1994 توسط شرکت Netscape معرفی شد و به سرعت به استاندارد صنعت برای برقراری ارتباطات امن در اینترنت تبدیل شد. با این حال، به دلیل برخی از نقاط ضعف امنیتی، SSL به تدریج با TLS جایگزین شد. TLS در واقع نسخه بهبود یافته و ایمنتر SSL است که بسیاری از مشکلات امنیتی نسخه قبلی را برطرف کرده است. TLS در سال 1999 به عنوان یک استاندارد مستقل معرفی شد و به طور مداوم در حال توسعه و بهبود است. نسخههای مختلفی از TLS منتشر شده است که هر نسخه نسبت به نسخه قبلی خود امنتر و کارآمدتر است. یکی از دلایل اصلی جایگزینی TLS به جای SSL، افزایش پیچیدگی حملات سایبری و نیاز به پروتکلهای امنیتی قویتر بود. TLS با ارائه الگوریتمهای رمزنگاری قویتر، مکانیزمهای احراز هویت پیشرفتهتر و پشتیبانی از ویژگیهای امنیتی جدید، توانسته است به عنوان استاندارد طلایی برای ارتباطات امن در اینترنت شناخته شود. پروتکل TLS از زمان معرفی در سال 1999، نسخههای متعددی را تجربه کرده است. هر نسخه جدید با هدف بهبود امنیت و رفع آسیبپذیریهای شناسایی شده در نسخههای قبلی منتشر شده است. TLS 1.0 اولین نسخه رسمی TLS بود که در سال 1999 منتشر شد. این نسخه جایگزین SSL شد و بسیاری از مشکلات امنیتی آن را برطرف کرد. هرچند با گذشت زمان آسیبپذیریهای آن نمایان شدند. TLS 1.1 در سال 2006 با هدف برطرف کردن آسیبپذیریهای نسخه 1.0 ارائه شد و توانست به لطف ویژگیهای امنیتی جدید، مشکلات TLS 1.0 را برطرف کند، اما آسیبپذیریهای مخصوص به خود را داشت. همین مسئله باعث شد تا TLS 1.2 در سال 2008 ارائه شود که علاوه بر طرف کردن آسیبپذیریها، پیشرفتهایی در زمینه بهبود امنیت کانالهای ارتباطی داشت.
نسخه جدید از الگوریتمهای رمزنگاری قدرتمند، مکانیزمهای احراز هویت پیشرفتهتر و پشتیبانی از ویژگیهای امنیتی جدید مانند Perfect Forward Secrecy بهرهمند بود تا اینکه سرانجام در سال 2018 میلادی، نگارش TLS 1.3 معرفی شد که در مقایسه با نسخههای قبلی سادهتر، سریعتر و ایمنتر بود. این نسخه بسیاری از الگوریتمهای قدیمی و آسیبپذیر را حذف کرده و از الگوریتمهای رمزنگاری مدرن و قوی پشتیبانی میکند. یکی از پیشرفتهای مهم TLS 1.3 بهبود مکانیزم برقراری ارتباط و کاهش زمان لازم برای ساخت یک کانال ارتباطی امن بود. چرا نسخههای جدید TLS مهم هستند؟ هر نسخه جدید TLS با هدف رفع آسیبپذیریهای نسخههای قبلی و ارائه الگوریتمهای رمزنگاری قویتر منتشر میشود. نسخههای جدید TLS معمولا سریعتر و کارآمدتر از نسخههای قبلی هستند و از ویژگیهای امنیتی جدیدی پشتیبانی میکنند که در نسخههای قبلی وجود نداشته است. برای درک بهتر تفاوتهای بین پروتکلهای TLS و SSL، بهتر است آنها را در قالب یک جدول مقایسه کنیم.
ویژگی |
SSL |
TLS |
پروتکل |
Secure Sockets Layer |
Transport Layer Security |
تاریخچه |
اولین بار توسط Netscape معرفی شد |
به عنوان جایگزینی امنتر برای SSL توسعه یافت |
امنیت |
دارای برخی آسیبپذیریهای امنیتی |
از الگوریتمهای رمزنگاری قویتر و مکانیزمهای احراز هویت پیشرفتهتری استفاده میکند |
انعطافپذیری |
انعطافپذیری کمتری نسبت به TLS دارد |
انعطافپذیری بیشتری دارد و از ویژگیهای امنیتی جدیدتری پشتیبانی میکند |
کارایی |
نسبت به TLS کارایی کمتری دارد |
کارایی بالاتری دارد و ارتباطات امنتری را با سرعت بیشتری برقرار میکند |
استانداردسازی |
به عنوان یک استاندارد صنعتی شناخته میشد |
به عنوان یک استاندارد توسط سازمانها پذیرفته شده است |
وضعیت فعلی |
منسوخ شده و استفاده از آن توصیه نمیشود |
به عنوان استاندارد طلایی برای ارتباطات امن در اینترنت شناخته میشود |
ویژگیهای کلیدی |
پایه و اساس برای توسعه TLS بود |
شامل بهبودهای امنیتی، کارایی بهتر و انعطافپذیری بیشتر نسبت به SSL است |
همانطور که در جدول مشاهده میکنید، TLS به عنوان نسخه بهبود یافته و امنتر SSL شناخته میشود. TLS از الگوریتمهای رمزنگاری قویتر، مکانیزمهای احراز هویت پیشرفتهتر و ویژگیهای امنیتی جدیدتری استفاده میکند. به همین دلیل، TLS به عنوان استاندارد طلایی برای ارتباطات امن در اینترنت شناخته شده و استفاده از آن به شدت توصیه میشود. SSL به دلیل وجود برخی آسیبپذیریهای امنیتی، منسوخ شده و استفاده از آن توصیه نمیشود.
تبادل کلید در SSL و TLS
SSL و TLS از فرآیند تبادل کلید به منظور ساخت کانال ارتباطی امن استفاده میکنند، اما به شیوههای متفاوتی اینکار را انجام میدهند. در SSL، روشهای تبادل کلید عمدتا بر پایه الگوریتمهای RSA و دیفی-هلمن استوار بود. در شرایطی که TLS نیز از این الگوریتمها پشتیبانی میکند، اما به دلیل پیشرفتهای امنیتی، روشهای تبادل کلید متنوعتری را ارائه میدهد. TLS از الگوریتمهای پساکوانتومی نیز پشتیبانی میکند که در برابر حملات کوانتومی مقاومتر هستند. همچنین، TLS از روشهای تبادل کلید مبتنی بر منحنیهای بیضوی (Elliptic Curve Cryptography) نیز بهره میبرد که امنیت بالاتری را با محاسبات کمتر فراهم میکنند.
SSL و TLS در آسیبپذیریهای امنیتی چه تفاوتی دارند؟
SSL به عنوان نسل قدیمیتر، دارای آسیبپذیریهای امنیتی متعددی بود که در طول زمان شناسایی و مورد بهرهبرداری قرار گرفتند، به طوری که سرانجام باعث بروز حملاتی مثل POODLE و BEAST شد. TLS به عنوان جانشین SSL، با هدف برطرف کردن این آسیبپذیریها طراحی شد. TLS از مکانیزمهای امنیتی قویتر و الگوریتمهای رمزنگاری پیشرفتهتری استفاده میکند که آن را در برابر حملات شناخته شده و ناشناخته مقاومتر میسازد. همچنین، TLS به طور مداوم بهروزرسانی میشود تا آسیبپذیریهای جدید شناسایی و برطرف شوند. به همین دلیل، استفاده از TLS به جای SSL به شدت توصیه میشود تا از امنیت ارتباطات اطمینان حاصل شود.
فرآیند دستدهی در SSL و TLS
فرآیند دستدادن در SSL و TLS مکانیزمی است که دو طرف ارتباط (مثلا مرورگر و سرور) برای ایجاد یک کانال ارتباطی امن از آن استفاده میکنند. هر دو پروتکل از این فرآیند استفاده میکنند، اما تفاوتهایی در جزئیات و پیچیدگی آن وجود دارد. TLS به عنوان نسخه جدیدتر، فرآیند دستدادن را بهبود بخشیده و آن را ایمنتر و کارآمدتر کرده است. در TLS، مکانیزمهای احراز هویت قویتر، الگوریتمهای رمزنگاری متنوعتر و پشتیبانی از ویژگیهای امنیتی جدیدتر مانند Perfect Forward Secrecy به کار گرفته شده است. این بهبودها باعث شدهاند که فرآیند دستدادن در TLS پیچیدهتر اما امنتر از SSL باشد. همچنین، TLS از روشهای مختلفی برای مذاکره و توافق بر روی پارامترهای امنیتی استفاده میکند که به آن انعطافپذیری بیشتری میدهد. در مجموع، اگرچه هدف اصلی فرآیند دستدهی در هر دو پروتکل یکسان است، اما TLS با ارائه ویژگیهای امنیتی پیشرفتهتر و انعطافپذیری بیشتر، فرآیند دستدادن را به سطح بالاتری ارتقا داده است.
نویسنده: حمیدرضا تائبی