امنیت لایه حمل و نقل (TLS) چیست؟
امنیت لایه حمل و نقل یا Transport Layer Security یک پروتکل امنیتی گسترده است که برای حفظ حریم خصوصی و امنیت داده ها در ارتباطات اینترنتی طراحی شده است. یکی از موارد استفاده از این پروتکل رمزگذاری ارتباط بین برنامه های وب و سرورها، مانند مرورگرهای وب است که یک وب سایت را بارگذاری می کنند. Transport Layer Security همچنین می تواند برای رمزگذاری سایر ارتباطات مانند ایمیل، پیام رسانی و VOIP استفاده شود. در این مقاله، ما بر نقش TLS در امنیت برنامه وب تمرکز خواهیم کرد.
این پروتکل توسط IETF، یک سازمان استاندارد بین المللی ساخته شد و اولین نسخه این پروتکل در سال 1999 منتشر شد. آخرین نسخه این پروتکل، TLS 1.3 است که در سال 2018 منتشر شده است.
تفاوت بین TLS و SSL چیست؟
TLS از یک پروتکل رمزگذاری قبلی به نام SSL تکامل یافته است که توسط Netscape توسعه یافته است. TLS نسخه 1.0 در واقع همان SSL نسخه 3.1 بود، اما قبل از انتشار، نام پروتکل تغییر کرد تا نشان دهد که دیگر با Netscape مرتبط نیست. به همین دلیل گاهی اوقات اصطلاح TLS و SSL به صورت تعویضی استفاده می شوند.
تفاوت بین TLS و HTTPS چیست؟
HTTPS، رمزگذاری TLS پیاده سازی شده در بالای پروتکل HTTP است که توسط همه وب سایت ها استفاده می شود. بنابراین هر وبسایتی که از HTTPS استفاده می کند، از رمزگذاری Transport Layer Security استفاده می کند.
چرا باید از TLS استفاده کنید؟
رمزگذاری TLS می تواند به حفاظت از برنامه های کاربردی وب از حملات نقض داده ها و حملات DDoS کمک کند. علاوه بر این، HTTPS محافظت شده با این رمزنگاری به سرعت تبدیل به یک عمل استاندارد برای وب سایت ها می شود. به عنوان مثال، مرورگر گوگل کروم در سایت های غیر HTTPS اخطار میدهد و کاربران روزمره اینترنت بیشتر از وب سایت هایی که از آیکون قفل HTTPS استفاده نمی کنند، بیشتر احتیاط می کنند.
TLS چگونه کار می کند؟
TLS می تواند در بالای یک پروتکل امنیتی حمل و نقل مانند TCP استفاده شود. سه جزء اصلی برای TLS وجود دارد: رمزگذاری، تأیید هویت و یکپارچگی.
- رمزگذاری: داده هایی که از اشخاص ثالث منتقل می شوند را پنهان می کند.
- تأیید اعتبار: تضمین می کند که طرفین مبادله اطلاعات را به چه کسی ارسال می کنند.
- یکپارچگی: تأیید می کند که داده ها جعل و یا جاسازی نشده است.
یک اتصال TLS با استفاده از یک توالی شناخته شده به عنوان دست خط TLS آغاز می شود. برقراری ارتباط TLS یک مجموعه cypher برای هر جلسه ارتباط برقرار می کند. مجموعه cypher مجموعه ای از الگوریتم هایی است که جزئیات را مشخص می کند، از جمله کلید های رمزگذاری مشترک یا کلیدهای جلسه خاص. TLS قادر به تنظیم کلید های مربوط به جلسه در طول کانال رمزگذاری شده به عنوان رمزنگاری کلید عمومی است.
دستیابی نیز احراز هویت را کنترل می کند، که معمولا شامل سرور است که هویت آن را به مشتری نشان می دهد. این کار با استفاده از کلیدهای عمومی انجام می شود. کلید عمومی کلید رمزنگاری است که از رمزنگاری یک طرفه استفاده می کند، به این معنی که هر کسی نمی تواند داده های رمزگذاری شده با کلید خصوصی را رمزگذاری کند تا اطمینان حاصل شود که فرستنده اصلی می تواند داده ها را با کلید خصوصی رمزگذاری کند.
هنگامی که داده ها رمزگذاری و تأیید هویت می شوند، پس از آن با یک کد تأیید پیام (MAC) امضا می شود. گیرنده می تواند MAC را تأیید کند تا اطمینان از تمامیت داده ها را تامین کند.
به دلیل فرایند پیچیده در راه اندازی یک اتصال TLS، زمان بارگذاری و قدرت محاسباتی باید صرف شود. مشتری و سرور باید قبل و بعد از انتقال داده ها چندین بار به جلو و عقب بپیوندند و این کار باعث می شود تا چند میلی ثانیه زمان بارگیری برای برنامه های کاربردی وب وجود داشته باشد.
خوشبختانه فناوری هایی وجود دارند که به کاهش تاخیر ایجاد شده توسط این پروتکل کمک می کنند. یکی از این فناوری ها TLS False Start است که اجازه می دهد سرور و مشتری شروع به انتقال داده ها کنند. یکی دیگر از تکنولوژی ها برای تسریع این رمزنگاری، تخصیص مجدد جلسه TLS است، که به مشتریان و سرورهایی که قبلا برای استفاده از روابط مختصر استفاده کرده اند، این اجازه داده می شود. این پیشرفت ها باعث پرسرعت شدن این پروتکل شده است.