اگر حتی یک بار آدرس سایتی را با https دیده باشید، در واقع با TLS یا همان چیزی که قدیمتر به آن SSL میگفتند سروکار داشتهاید. این دو پروتکل وظیفه دارند ارتباط بین مرورگر کاربر و سرور را رمزنگاری و امن کنند تا اطلاعاتی مثل رمز عبور، دادههای بانکی و اطلاعات شخصی در مسیر اینترنت قابل شنود نباشد.
با اینکه هنوز خیلیها از واژه «SSL» استفاده میکنند، اما در واقع امروزه تقریباً همه ارتباطهای امن از TLS استفاده میکنند و SSL منسوخ شده است.
SSL و TLS دقیقاً چه هستند؟
| مخفف | نام کامل | کاربرد |
|---|---|---|
| SSL | Secure Sockets Layer | پروتکل قدیمی رمزنگاری ارتباط |
| TLS | Transport Layer Security | نسخه پیشرفتهتر و امنتر SSL |
هر دو پروتکل برای ایجاد یک کانال ارتباطی رمزنگاریشده بین کلاینت (مرورگر) و سرور استفاده میشوند.
SSL چیست؟
SSL در دهه ۹۰ میلادی توسط Netscape معرفی شد و اولین استاندارد جدی برای امنسازی ارتباطات وب بود. این پروتکل:
-
هویت سرور را تأیید میکرد
-
دادهها را رمزنگاری میکرد
-
از اطلاعات حساس مثل شماره کارت بانکی محافظت میکرد
اما نسخههای SSL دارای ضعفهای امنیتی جدی بودند و در برابر حملات مدرن مقاوم نیستند.
TLS چیست؟
TLS نسل بعدی SSL است و توسط IETF توسعه داده شد. این پروتکل:
-
از الگوریتمهای رمزنگاری قویتر استفاده میکند
-
روشهای امنتری برای تبادل کلید دارد
-
عملکرد سریعتری دارد
-
امنیت بسیار بالاتری در برابر حملات دارد
به زبان ساده، TLS همان SSL بهروزرسانیشده و تقویتشده است.
چرا SSL کنار گذاشته شد؟
SSL به دلایل زیر منسوخ شد:
-
استفاده از الگوریتمهای ضعیف مثل MD5 و RC4
-
آسیبپذیری در برابر حملات Man-in-the-Middle
-
امکان حملات Downgrade
-
ضعف در ساختار رمزنگاری نسخههای قدیمی
به همین دلیل مرورگرهای مدرن مثل Chrome و Firefox دیگر از SSL پشتیبانی نمیکنند.
نسخههای TLS
| نسخه | سال انتشار | وضعیت |
|---|---|---|
| TLS 1.0 | 1999 | ناامن (منسوخ) |
| TLS 1.1 | 2006 | ناامن |
| TLS 1.2 | 2008 | امن و رایج |
| TLS 1.3 | 2018 | امنترین و سریعترین |
توصیه فعلی: استفاده از TLS 1.2 یا ترجیحاً TLS 1.3
تفاوت TLS Handshake با SSL Handshake
Handshake مرحلهای است که قبل از شروع تبادل داده، کلاینت و سرور روی تنظیمات امنیتی توافق میکنند.
| ویژگی | SSL | TLS |
|---|---|---|
| تعداد رفت و برگشت | بیشتر | کمتر (در TLS 1.3 فقط 1 دور) |
| الگوریتمها | قدیمی | مدرن |
| امنیت کلیدها | ضعیفتر | قویتر |
| Perfect Forward Secrecy | محدود | اجباری در TLS 1.3 |
| سرعت | کندتر | سریعتر |
عملکرد (Performance)
TLS نسبت به SSL:
-
سریعتر اتصال برقرار میکند
-
بار پردازشی کمتری دارد
-
از HTTP/2 بهتر پشتیبانی میکند
-
برای سایتهای پرترافیک بهینهتر است
HTTPS چه ربطی دارد؟
HTTPS در واقع HTTP + TLS است.
یعنی وقتی سایتی HTTPS دارد، دادهها با TLS رمزنگاری میشوند. اصطلاح «SSL Certificate» هنوز استفاده میشود، اما در واقع این گواهیها برای TLS هستند.
مهاجرت از SSL به TLS
مدیران سرور باید نسخههای قدیمی را غیرفعال کنند.
نمونه تنظیم در Apache
نمونه تنظیم در Nginx
اشتباهات رایج
-
استفاده از TLS 1.0 یا 1.1
-
فعال بودن cipher های ضعیف
-
تمدید نکردن گواهی SSL
-
یکی دانستن SSL و TLS
-
نداشتن HSTS
سوالات متداول
آیا TLS امنتر از SSL است؟
بله، TLS برای رفع ضعفهای SSL طراحی شده و استاندارد فعلی امنیت وب است.
چرا هنوز به آن SSL میگویند؟
بیشتر به دلایل بازاریابی و عادت قدیمی. در عمل، همه چیز TLS است.
کدام نسخه TLS را استفاده کنیم؟
TLS 1.3 بهترین گزینه است. اگر ناسازگاری وجود داشت، TLS 1.2.
جمعبندی
SSL تاریخچه مهمی در امنیت وب دارد، اما امروز دیگر امن محسوب نمیشود.
TLS جایگزین آن شده و ترکیبی از امنیت بالاتر، سرعت بیشتر و سازگاری بهتر را ارائه میدهد.
اگر سرورت هنوز با تنظیمات قدیمی SSL کار میکند، عملاً در اینترنت با در باز زندگی میکند. قفل هست، ولی شکسته.

