پروتکل TLS
پروتکل TLS: در اوایل راه اندازی اینترنت، جنبههایی مانند امنیت دادهها به اندازه امروز مهم نبودند. اکثر ارتباطات در آن زمان ها بدون رمزگذاری بین سرورها منتقل می شد. تقریبا مشابه کارت پستال های بدون پاکت، هر پستچی و یا فرد دیگری قادر به خواندن محتوای آنها بود.
پروتکل TLS – که به آن SSL/TLS نیز گفته می شود – رمزگذاری را برای محتویات ارسالی معرفی نمود. به دنبال مثال بالا، پروتکل TLS با یک پاکت مهر و موم شده قابل مقایسه است که فقط گیرنده آدرس می تواند آن را باز کرده و بخواند.
پروتکل TLS
فهرست مطالب
- پروتکل TLS
TLS چیست؟
TLS مخفف عبارت Transport Layer Security می باشد، در ابتدا جهت اجرا در بالای پروتکل های انتقال تعیین شده بود مانند TCP/IP-Models. پروتکل TLS اساسا انتقال داده ها را به صورت آنلاین یا بین دستگاه ها رمزگذاری می نماید تا اطمینان حاصل شود که فقط توسط گیرندگان مجاز قابل دسترسی هستند. پیشینه آن به پروتکل SSL باز می گردد (لایه سوکت ایمن)، به همین دلیل است که TLS اغلب به جهت جلوگیری از سردرگمی به عنوان SSL/TLS شناخته می شود.
TLS چگونه کار می کند؟
TLS داده های ارسال شده از طریق اینترنت را رمزگذاری می نماید و معمولاً در بالای TCP با استفاده از رمزنگاری متقارن پیاده سازی می شود. آنچه ممکن است در تئوری ساده به نظر برسد، در واقعیت کاملاً پیچیده است. به عنوان بخشی از فرآیند انتقال ایمن، سرور باید کلید دسترسی را با مشتری به اشتراک گذارد، قبل از اینکه هرگونه ارتباطی از طریق TLS ایمن شود. چنانچه مرتباً پیوستهای ایمیل رمزگذاری شده را ارسال می نمایید، ممکن است به خوبی از این موضوع آگاه باشید: با رمزگذاری یک پیوست، باید رمز عبور را با گیرنده به اشتراک گذارید، مثلاً از طریق تلفن.
پروتکل TLS از اقدامات زیر جهت حل این مشکل استفاده می نماید:
- اگر یک سرویس گیرنده، مانند یک مرورگر وب، با سرور وب تماس برقرار نماید، گواهی دریافت می کند. این گواهی SSL تایید می کند که فرستنده معتبر است و برای مثال پشت یک هویت جعلی پنهان نشده است.
- کلاینت گواهی را تایید می نماید و یک شماره رمزگذاری شده تصادفی با یک کلید عمومی را به سرور ارسال می کند.
- سرور یک کلید نشست “session” را از این کلید عمومی جهت رمزگذاری ارتباطات تولید می نماید. از آنجایی که کلید عمومی از کلاینت منشا می گیرد، سرور می تواند مطمئن باشد که کلید session از فرستنده صحیح نشات می گیرد.
- سپس سرور کلید session رمزگذاری شده را برای کلاینت ارسال می نماید. رمزگذاری بر اساس روش تبادل کلید دیفی هلمن “Diffie Hellman key exchange method.” است.
- اکنون هر دو طرف می توانند داده های خود را با استفاده از کلید نشست رمزگذاری نمایند.
دلیل اینکه رمزگذاری نامتقارن فقط جهت کلید session استفاده می شود و نه برای رمزگذاری خود جریان داده ها به دلیل سرعت است: رمزگذاری نامتقارن نسبتاً کند است و ارتباطات داده را به تاخیر می اندازد.
مزایا و معایب TLS
TLS یک راه حل نسبتاً شگفت انگیز جهت انتقال امن داده ها در وب است چراکه نیازی به رمزگذاری محتوایی که طرفین مبادله می کنند را ندارد. در عوض، صرف نظر از سیستم عامل یا برنامههای نرمافزاری مورد استفاده طرفهای درگیر، تنها کافی است که انتقال از طریق پروتکل TLS انجام شود. سپس تمام جریان های داده در حین انتقال به طور خودکار رمزگذاری می شوند.
با این حال، لایه امنیتی اضافه شده به قیمت سرعت تمام می شود چراکه فرآیندهایی مانند صدور گواهینامه و تولید کلید عمومی و جلسه از نظر محاسباتی فشرده هستند.
زمینه های کاربردی TLS
TLS به طور جهانی به کار گرفته می شود چراکه به سیستم عامل ها یا برنامه های کاربردی خاصی متکی نیست. بر این اساس، انواع نسخه های امن با TLS برای پروتکل های مختلف کاربر در دسترس هستند. طرح نامگذاری ساده است: چنانچه پروتکل از طریق TLS ارتباط برقرار نماید، نام پروتکل روی حرف “s” خاتمه می یابد.
مهم ترین حوزه کاربردی برای TLS، شبکه جهانی وب یا به طور دقیق تر، پروتکل HTTP است. نسخه رمزگذاری شده آن HTTPS نام دارد.
سایر زمینه های کاربردی رایج عبارتند از:
- POP3S: با استفاده از پروتکل POP3، ایمیل ها را از سرور جمع آوری می نماید
- IMAPS: صندوق ورودی را با سرور با استفاده از پروتکل IMAP همگام سازی می نماید
- SMTPS: ارسال ایمیل
- FTPS: انتقال فایل از طریق پروتکل FTP
- SIPS: تماس های صوتی از طریق IP از طریق پروتکل SIP
- IRCS: چت های رمزگذاری شده
OpenVPN که یک نرم افزار رایگان برای شبکه های خصوصی مجازی (VPN)، از پروتکل TLS نیز استفاده می کند.
پیاده سازی TLS
از جمله مهم ترین پیاده سازی های TLS می توان به موارد زیر اشاره نمود:
- OpenSSL – رایج ترین پیاده سازی که توسط اکثر وب سایت های HTTPS استفاده می شود
- GnuTLS توسط Free Software Foundation
- LibreSSL توسط (OpenBSD)
- NSS (خدمات امنیت شبکه)
- BoringSSL (گوگل Google)
- Cryptlib (پیتر گاتمن Peter Gutmann)
- Botan (مجوز BSD، جک لوید Jack Lloyd)
- JSSE (برنامه افزودنی سوکت امن جاوا، Java Secure Socket Extension, Oracle)
- S2n (آمازون Amazon)
لیست بالا کامل نیست.
حملات TLS شناخته شده
با این حال، TLS از حملات و نشت داده ها مصون نیست. برخی از نقاط شناخته شده حمله و نقاط ضعف عبارتند از:
- خطاهای برنامه نویسی: اشکال Heartbleed به دلیل یک خطای برنامه نویسی جدی در برخی از نسخه های قبلی OpenSSL معروف شد. در سال 2014 رفع شد.
- رمزگذاری ضعیف: در نتیجه محدودیت های صادراتی به رمزنگاری در ایالات متحده، نسخه های قابل صادرات توسعه یافتند. با این حال، این نسخه ها نسبت به نسخه های قبلی راحت تر کرک می شدند.
- حملات فشرده سازی: اگر از فشرده سازی HTTP به جای فشرده سازی TLS استفاده شود، هکرها می توانند محتوای رمزگذاری شده با TLS را با استفاده از تکنیک های اختصاصی حدس بزنند.
- حمله BEAST بر TLS نسخه 1.0 تأثیر گذاشت و در سال 2014 فاش شد. نسخههای فعلی TLS امن هستند.
حمله Padding Oracle در سال 2002 کشف شد و تا نسخه 3.0 SSL یک تهدید باقی ماند. نسخه فعلی TLS 1.3 تحت تأثیر قرار نگرفته است.
به طور همزمان، تلاش هایی جهت جلوگیری از رمزگذاری TLS به صورت کاملاً ایمن صورت گرفته است تا مقامات به ارتباطات رمزگذاری شده دسترسی پیدا نمایند، به عنوان مثال، جهت نظارت بر فعالیت های جعلی تراکنش های مالی. مؤسسه استانداردهای مخابراتی اروپا از جمله سازمان هایی بوده است که در خط مقدم ایجاد نقاط شکست تعریف شده در پروتکل بوده است.
کابل های فیبر نوری
کابل های شبکه مسی
تجهیزات فیبر نوری
نظرات کاربران