۱۳۹۳/۱۲/۰۹

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

پروتکل TLS (Transport Layer Security) به‌معنای «امنیت لایه انتقال» ستون فقرات امنیت دیجیتال در دنیای امروز است. این پروتکل با فراهم‌کردن رمزنگاری، احراز هویت و تضمین تمامیت داده‌ها نقشی کلیدی در محافظت از اطلاعات کاربر ایفا می‌کند. چه هنگام بازدید از یک سایت با پیشوند HTTPS باشید چه هنگام استفاده از ایمیل یا مسنجرها احتمال بسیار زیادی وجود دارد که در پشت‌صحنه TLS در حال تامین امنیت شما باشد.

تعریف و تفاوت با SSL

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

اهداف سه‌گانه TLS

  • رمزنگاری داده‌ها (Encryption): جلوگیری از شنود اطلاعات در طول مسیر
  • تضمین تمامیت داده‌ها (Integrity): جلوگیری از تغییر یا دست‌کاری محتوای ارسال‌شده
  • احراز هویت طرفین (Authentication): تایید هویت سرور (و در برخی موارد کلاینت) از طریق گواهی دیجیتال

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

مرحله Handshake (دست‌دهی): فرآیند آغازین که در آن سرور گواهی دیجیتال خود را ارائه می‌دهد، الگوریتم‌های رمزنگاری مورد توافق قرار می‌گیرند و کلید مشترک به‌صورت امن تولید می‌شود (از طریق الگوریتم‌هایی مانند ECDHE یا RSA).

مرحله Record (ضبط داده): داده‌ها پس از رمزنگاری با استفاده از کلید توافق‌شده در بسته‌هایی به نام Record ارسال می‌شوند.

مرحله Alert (هشدار): در صورت بروز خطا یا نیاز به پایان ارتباط پیام‌هایی از نوع Alert ارسال می‌گردند.

الگوریتم‌های رمزنگاری در TLS

1. رمزنگاری متقارن (Symmetric Encryption): برای رمزنگاری داده‌ها با کلید یکسان در هر دو سمت ارتباط. الگوریتم‌های رایج:

• AES (Advanced Encryption Standard)

• ChaCha20 (مناسب برای دستگاه‌های کم‌مصرف)

2. رمزنگاری نامتقارن (Asymmetric Encryption): برای تبادل کلید به‌صورت امن با استفاده از کلید عمومی/خصوصی. الگوریتم‌های رایج:

• RSA (Rivest-Shamir-Adleman)

• ECDSA (Elliptic Curve Digital Signature Algorithm)

3. تابع هش (Hash Function): برای تضمین تمامیت داده‌ها با هش‌کردن محتوای منتقل‌شده. الگوریتم‌های رایج:

• SHA-256

• SHA-384

4. الگوریتم تبادل کلید (Key Exchange): برای تولید کلید متقارن به‌صورت امن. الگوریتم‌های رایج:

• DHE (Diffie-Hellman Ephemeral)

• ECDHE (Elliptic Curve Diffie-Hellman Ephemeral)

گواهی دیجیتال و نقش آن در TLS

سرورها برای ایجاد اعتماد در ارتباطات باید گواهی دیجیتالی دریافت‌شده از مرجع صدور گواهی (Certificate Authority) ارائه دهند. این گواهی حاوی اطلاعاتی مانند دامنه، کلید عمومی، امضا و تاریخ انقضا است.

گواهی‌ها در سه سطح اعتبار صادر می‌شوند:
  •  DV (Domain Validation): بررسی مالکیت دامنه
  •  OV (Organization Validation): بررسی مالکیت دامنه و ثبت رسمی سازمان
  •  EV (Extended Validation): بررسی‌های دقیق‌تر برای اعتبار بالا (قفل سبز رنگ)

کاربردهای TLS در دنیای واقعی

• HTTPS: رمزنگاری ارتباط مرورگر با سایت

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

• VPN: به‌کارگیری در پروتکل‌هایی مانند OpenVPN

• VoIP: تماس‌های صوتی از طریق اینترنت

• اپلیکیشن‌های موبایل و APIها

تهدیدات و حملات رایج علیه TLS

• MITM (Man-in-the-Middle): قرار گرفتن مهاجم در مسیر ارتباط

• TLS Downgrade Attack: وادار کردن سیستم به استفاده از نسخه‌های قدیمی و آسیب‌پذیر

• BEAST, POODLE, CRIME: حملاتی علیه نسخه‌های قدیمی TLS

• TLS Stripping: تبدیل لینک‌های HTTPS به HTTP توسط مهاجم

بهترین روش‌ها برای استفاده امن از TLS

  • استفاده از نسخه TLS 1.3 یا دست‌کم 1.2
  • غیرفعال‌سازی نسخه‌های منسوخ در سرورها
  • بهره‌گیری از گواهی معتبر و به‌روز (مثلا از Let's Encrypt)
  • پیاده‌سازی HSTS برای اجبار مرورگر به استفاده از HTTPS
  • بررسی امنیت TLS سایت با ابزارهایی مانند SSL Labs

پرسش‌های متداول

TLS با SSL چه تفاوتی دارد؟
TLS نسخه‌ی جدیدتر و ایمن‌تر از SSL است. SSL منسوخ شده و نباید استفاده شود.

آیا TLS جلوی همه‌ی حملات را می‌گیرد؟
خیر، اما اگر به‌درستی پیکربندی شود و نسخه‌ی به‌روز استفاده گردد در برابر اکثر تهدیدها بسیار مقاوم است.

آیا گواهی رایگان TLS مثل Let's Encrypt امن است؟
بله، از نظر رمزنگاری کاملا امن است. تنها تفاوت در پشتیبانی و اعتبارسنجی سطح سازمانی است.

چگونه بفهمم یک وب‌سایت از TLS استفاده می‌کند؟
وجود پیشوند https و نماد قفل در نوار مرورگر نشان‌دهنده استفاده از TLS است.

آیا اپلیکیشن‌های موبایل هم از TLS استفاده می‌کنند؟
بله، اکثر اپ‌ها برای ارتباط با سرور از TLS استفاده می‌کنند. زبان‌های برنامه‌نویسی مدرن کتابخانه‌هایی برای این منظور ارائه می‌دهند.

واژگان کلیدی

• AES (Advanced Encryption Standard): الگوریتم رمزنگاری متقارن رایج و بسیار امن.

• Alert Protocol: بخشی از TLS برای ارسال پیام‌های هشدار و مدیریت پایان ارتباط.

• BEAST / POODLE / CRIME: حملات شناخته‌شده‌ای علیه نسخه‌های قدیمی TLS.

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

• ChaCha20: الگوریتم رمزنگاری متقارن سریع و مناسب برای دستگاه‌های کم‌مصرف.

• DHE (Diffie-Hellman Ephemeral): الگوریتم تبادل کلید موقتی برای امنیت بیشتر.

• DV / OV / EV Certificates: انواع گواهی دیجیتال با سطح اعتبار متفاوت.

• ECDHE (Elliptic Curve Diffie-Hellman Ephemeral): روش تبادل کلید امن با استفاده از منحنی‌های بیضوی.

• ECDSA (Elliptic Curve Digital Signature Algorithm): الگوریتم امضای دیجیتال مبتنی بر منحنی بیضوی.

• Encryption (رمزنگاری): فرآیند کدگذاری اطلاعات برای محافظت از آن‌ها.

• Handshake Protocol: مرحله آغازین در TLS برای توافق بر الگوریتم‌ها و تولید کلید.

• Hash Function (تابع هش): ابزار رمزنگاری برای تضمین تمامیت داده‌ها.

• HSTS (HTTP Strict Transport Security): سیاستی برای اجبار مرورگر به استفاده از HTTPS.

• HTTPS (HyperText Transfer Protocol Secure): نسخه امن HTTP با استفاده از TLS.

• IMAPS / POP3S / SMTPS: پروتکل‌های امن برای ارسال و دریافت ایمیل.

• Key Exchange Algorithm: الگوریتم‌های تبادل کلید برای رمزنگاری متقارن.

• Let's Encrypt: مرجع رایگان صدور گواهی دیجیتال.

• MAC (Message Authentication Code): کدی برای صحت و تمامیت پیام در ارتباطات رمزنگاری‌شده.

• MITM (Man-in-the-Middle): حمله‌ای که در آن مهاجم بین دو طرف ارتباط قرار می‌گیرد.

• OpenVPN: پروتکل VPN که برای رمزنگاری از TLS بهره می‌برد.

• Record Protocol: بخشی از TLS که مسئول رمزنگاری و ارسال داده‌ها در بسته‌های Record است.

• RSA (Rivest–Shamir–Adleman): الگوریتم رمزنگاری نامتقارن برای تبادل کلید یا امضا.

• SHA-256 / SHA-384: توابع هش پرکاربرد برای تضمین تمامیت داده‌ها.

• SSL (Secure Sockets Layer): نسخه قدیمی و منسوخ‌شده‌ی TLS.

• Symmetric Encryption (رمزنگاری متقارن): استفاده از یک کلید مشترک در هر دو سمت ارتباط.

• TLS Downgrade Attack: حمله‌ای برای وادار کردن طرفین به استفاده از نسخه‌های قدیمی TLS.

• TLS (Transport Layer Security): پروتکل رمزنگاری مدرن برای امنیت ارتباطات دیجیتال.

• TLS Stripping: حمله‌ای برای حذف HTTPS و بازگشت به HTTP ناامن.

• VoIP (Voice over IP): تماس صوتی اینترنتی که معمولاً با TLS امن می‌شود.

• VPN (Virtual Private Network): شبکه خصوصی مجازی که اغلب از TLS برای امنیت استفاده می‌کند.

• Versioning (نسخه‌بندی): تفاوت‌ها و ویژگی‌های نسخه‌های مختلف TLS (1.0 تا 1.3).



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

ارسال یک نظر