۱۳۹۳/۱۲/۰۶

بررسی پروتکل رمزنگاری SSL

پروتکل SSL (Secure Sockets Layer) نخستین گام مهم برای تامین امنیت ارتباطات در فضای اینترنت بود. این پروتکل که در دهه 1990 میلادی توسط شرکت Netscape توسعه یافت امکان رمزنگاری داده‌های ردوبدل‌شده بین مرورگر و سرور را فراهم می‌کرد. هرچند امروزه SSL منسوخ شده است اما شناخت عملکرد، تاریخچه و ضعف‌های آن برای درک بهتر پروتکل جایگزین آن یعنی TLS ضروری است.

تاریخچه نسخه‌های SSL

• SSL 1.0 (سال 1994): هیچ‌گاه منتشر نشد زیرا مشکلات امنیتی جدی داشت.

• SSL 2.0 (سال 1995): نخستین نسخه‌ی عمومی؛ شامل احراز هویت ضعیف و عدم محافظت در برابر حملات MITM.

• SSL 3.0 (سال 1996): بازنویسی گسترده توسط Netscape و Paul Kocher؛ پایه‌گذار ساختارهایی بود که بعدها در TLS نیز استفاده شد.

• TLS 1.0 (سال 1999): ادامه‌ی SSL با تغییر نام و رفع ضعف‌های امنیتی. برخی به اشتباه TLS 1.0 را "SSL 4.0" می‌نامند که از نظر فنی متفاوت است.

ساختار عملکرد SSL

1. مرحله Handshake (دست‌دهی اولیه): مذاکره برای تعیین الگوریتم‌های رمزنگاری، ارسال گواهی دیجیتال سرور و توافق روی کلید متقارن.

2. رمزنگاری و انتقال داده: پس از توافق بر کلید مشترک، داده‌ها با استفاده از الگوریتم‌های متقارن رمزنگاری شده و در قالب پیام‌های امن منتقل می‌شوند.

3. پایان ارتباط: طرفین پیام پایان تبادل را با امضای دیجیتال ارسال می‌کنند تا از صحت ارتباط اطمینان حاصل شود.

الگوریتم‌های رمزنگاری مورد استفاده در SSL

• رمزنگاری متقارن: DES، 3DES، RC2، RC4

• رمزنگاری نامتقارن: RSA

• توابع هش: MD5، SHA-1

• الگوریتم تبادل کلید: RSA، Diffie-Hellman

بسیاری از این الگوریتم‌ها (مانند RC4، MD5 و SHA-1) امروزه ناامن تلقی می‌شوند.

گواهی دیجیتال در SSL

SSL برای احراز هویت سرور و ایجاد اعتماد میان طرفین از گواهی دیجیتال مبتنی بر زیرساخت کلید عمومی (PKI) استفاده می‌کرد. این گواهی‌ها توسط نهادهایی به‌نام مرجع صدور گواهی (CA) صادر می‌شدند.

آسیب‌پذیری‌ها و حملات مهم علیه SSL

• POODLE: حمله‌ای که در سال 2014 باعث کنار گذاشتن SSL 3.0 شد.

• BEAST: حمله‌ای علیه SSL 3.0 و TLS 1.0

• MITM: به‌دلیل احراز هویت ضعیف در نسخه 2.0

• عدم پشتیبانی از Perfect Forward Secrecy: کلیدهای ثابت در SSL در صورت افشا شدن کل ارتباطات گذشته را نیز در معرض خطر قرار می‌دادند.

چرا SSL منسوخ شد؟

• طراحی ضعیف نسخه‌های اولیه

• استفاده از الگوریتم‌های قدیمی و آسیب‌پذیر

• نبود محافظت کافی در برابر حملات رمزنگاری مدرن

• عدم تطابق با الزامات امنیتی جدید مانند Perfect Forward Secrecy

• کشف آسیب‌پذیری‌های گسترده مانند POODLE

تفاوت SSL با TLS

• تاریخ آغاز توسعه: SSL در اوایل دهه 1990 توسط Netscape ایجاد شد در حالی که TLS از سال 1999 به‌عنوان ادامه‌ی SSL توسط IETF توسعه یافت.

• نسخه‌های موجود: SSL دارای نسخه‌های 2.0 و 3.0 بود در حالی که TLS نسخه‌های 1.0، 1.1، 1.2 و 1.3 را ارائه داده است.

• وضعیت امنیتی: SSL کاملا منسوخ و ناامن است اما TLS امن و به‌روز است.

• پشتیبانی در مرورگرها و سیستم‌ها: مرورگرهای مدرن پشتیبانی از SSL را حذف کرده‌اند و تنها از TLS پشتیبانی می‌کنند.

• الگوریتم‌های مورد استفاده: SSL از الگوریتم‌های قدیمی مانند RC4 و MD5 استفاده می‌کرد در حالی که TLS از الگوریتم‌های پیشرفته‌تر و امن‌تری مانند AES-GCM و SHA-256 بهره می‌برد.

• امنیت کلیدها: TLS از ویژگی‌های امنیتی جدیدی مانند Perfect Forward Secrecy پشتیبانی می‌کند که SSL فاقد آن بود.

جایگزینی SSL با TLS

امروزه هیچ‌یک از سرویس‌ها یا مرورگرهای معتبر از SSL پشتیبانی نمی‌کنند. پروتکل TLS با نسخه‌های به‌روز، الگوریتم‌های امن و کارایی بیشتر جایگزین کامل SSL شده است. هنگام راه‌اندازی هرگونه سرویس رمزنگاری‌شده استفاده از TLS الزامی است.

کاربردهای گذشته SSL

• وب‌سایت‌ها: آغاز کار HTTPS با SSL

• ایمیل: پروتکل‌هایی مانند SMTPS و POP3S

• وی‌پی‌ان‌های قدیمی: برخی نسخه‌های اولیه OpenVPN

• سرورهای قدیمی FTP یا LDAP

اکنون همه این کاربردها به TLS مهاجرت کرده‌اند.

واژگان کلیدی

3DES (Triple Data Encryption Standard): الگوریتم رمزنگاری متقارن قدیمی که در SSL برای رمزنگاری داده‌ها استفاده می‌شد.

BEAST (Browser Exploit Against SSL/TLS): حمله‌ای معروف که آسیب‌پذیری SSL 3.0 و TLS 1.0 را هدف قرار می‌داد.

CA (Certificate Authority): نهاد معتبر صادرکننده گواهی‌های دیجیتال مورد استفاده در SSL و TLS.

DES (Data Encryption Standard): الگوریتم رمزنگاری متقارن اولیه که در SSL استفاده می‌شد اما امروزه ناامن محسوب می‌شود.

Diffie-Hellman: الگوریتم تبادل کلید که در برخی نسخه‌های SSL برای ایجاد کلید مشترک بین طرفین استفاده می‌شد.

Handshake: مرحله آغازین در SSL برای مذاکره درباره الگوریتم‌ها، تبادل گواهی‌ها و توافق بر کلید رمزنگاری.

HTTPS: پروتکلی برای برقراری ارتباط امن در وب که ابتدا بر پایه SSL و سپس TLS توسعه یافت.

MD5 (Message Digest Algorithm 5): تابع هش قدیمی با آسیب‌پذیری‌های شناخته‌شده که در نسخه‌های اولیه SSL استفاده می‌شد.

MITM (Man-in-the-Middle): نوعی حمله که در SSL 2.0 به‌دلیل احراز هویت ضعیف قابل انجام بود.

Perfect Forward Secrecy (PFS): ویژگی امنیتی که از افشای ارتباطات گذشته حتی در صورت لو رفتن کلید خصوصی جلوگیری می‌کند؛ در SSL پشتیبانی نمی‌شد.

PKI (Public Key Infrastructure): ساختار رمزنگاری مبتنی بر کلید عمومی که گواهی‌های SSL و TLS بر اساس آن صادر می‌شوند.

POODLE (Padding Oracle On Downgraded Legacy Encryption): حمله‌ای که ضعف SSL 3.0 را هدف قرار داد و باعث پایان رسمی آن شد.

RC2 / RC4: الگوریتم‌های رمزنگاری متقارن قدیمی و ناامن که در نسخه‌های SSL به‌کار می‌رفتند.

RSA: الگوریتم رمزنگاری نامتقارن برای تبادل کلید و امضای دیجیتال در SSL و TLS.

SHA-1 (Secure Hash Algorithm 1): تابع هش رمزنگاری که در SSL استفاده می‌شد اما اکنون به‌دلیل ضعف امنیتی منسوخ شده است.

TLS (Transport Layer Security): پروتکل امن جایگزین SSL با الگوریتم‌ها و طراحی امن‌تر، مورد استفاده در تمامی ارتباطات امن امروزی.


هیچ نظری موجود نیست:

ارسال یک نظر