پروتکل TLS مخفف عبارت Transport Layer Security است. این یک پروتکل رمزنگاری است که برای ایمنسازی دادههای ارسال شده از طریق شبکه مانند ترافیک اینترنت استفاده میشود. موارد استفاده عمومی شامل ایمنسازی ایمیل، VOIP، تراکنشهای آنلاین، انتقال فایل و پیامهای فوری است. پروتکل TLS برای جلوگیری از استراق سمع یا دستکاری دادهها طراحی شده است. بهعبارتیدیگر پروتکل تی ال اس از یکپارچگی ارتباطات خصوصی و اطلاعات حساس، از جمله تاریخچه مرور، مکاتبات شخصی، چت آنلاین، تماسهای کنفرانسی، گذرواژهها، شمارهحساب و سایر دادههای مالی محافظت میکند.
پروتکل TLS چیست؟
امنیت لایه حملونقل (TLS) یکی از مهمترین و پرکاربردترین پروتکلهای امنیتی است. پروتکل تی ال اس از بخش قابلتوجهی از دادههایی که به صورت آنلاین منتقل میشوند محافظت میکند. بیشتر از همه برای ایمنسازی دادههایی که بین مرورگر وب و وبسایت از طریق HTTPS جابجا میشوند استفاده میشود، اما همچنین میتواند برای ایمنسازی ایمیل و مجموعهای از پروتکلهای دیگر استفاده شود.
پروتکل TLS بسیار ارزشمند است زیرا تضمین میکند که طرف مقابل در یک اتصال همان چیزی است که میگوید و در همان حال نشان میدهد که آیا دادهها یکپارچگی اولیه خود را حفظ میکنند یا خیر. همچنین این پروتکل محرمانه بودن را از طریق رمزگذاری فراهم میکند.
TLS از طیف وسیعی از الگوریتمها و طرحهای مختلف برای انجام این اهداف استفاده میکند. ممکن است کار پروتکل TLS پیچیده به نظر برسد اما در این مقاله سعی میکنیم تا به شما نگاهی عمیق به نحوه عملکرد TLS برای ایمن کردن اتصالات را بدهیم.
TLS چگونه کار میکند؟
امنیت پروتکل TLS برای استفاده از رمزگذاری از هر دو انتهای سرویس گیرنده (کلاینت) و سرویس دهنده (سرور) طراحی شده است تا به اطمینان از اتصال ایمن بین دو یا چند برنامه کاربردی در حال ارتباط، تضمین قابلیت همکاری بین دستگاهها و عملکرد با کارایی نسبی کمک کند.
ارتباط کلاینت-سرور میتواند با پروتکلهای TLS انجام شود و یا بدون آن آغاز شود. مشتری میتواند یک اتصال TLS را بهروشهای مختلف مشخص کند. بهعنوان مثال، مشتری ممکن است از شماره پورتی استفاده کند که از انواع رمزگذاریهای مورداستفاده در ارتباطات TLS پشتیبانی میکند. روش بالقوه دیگر ایجاد یک درخواست پروتکل خاص برای تغییر به اتصال TLS است.
هنگامی که مشتری و سرور برای برقراری ارتباط با استفاده از TLS توافق کردند، مشخصات پروتکل TLS از طریق دو لایه انجام میشود: پروتکل دست دادن TLS و پروتکل ضبط TLS. پروتکل TLS از ترکیبی از رمزنگاری متقارن و نامتقارن استفاده میکنند. رمزنگاری متقارن کلیدهایی را ایجاد میکند که هم برای فرستنده و هم برای گیرنده شناخته میشوند، در حالی که رمزنگاری نامتقارن جفت کلید ایجاد میکند – یکی عمومی (مشترک بین فرستنده و گیرنده) و دیگری خصوصی.
تبادل پیام بین کلاینت و سرور در پروتکل TLS
مشخصات مورد نیاز برای تبادل پیام برنامه در پروتکل دست دادن TLS تعیین شده است. یک دست دادن TLS شامل یک سری تبادلات بین مشتری و سرور است که بر اساس الگوریتم تبادل کلید مورداستفاده و مجموعههای رمز پشتیبانی شده متفاوت است، روند کلی کار به صورت زیر است:
- یک کلاینت یک پیام «سلام کلاینت» را ارسال میکند و درخواست اتصال میکند و فهرستی از مجموعههای رمز پشتیبانی شده (مجموعهای از الگوریتمهای رمزگذاری که برای ایجاد یک اتصال ایمن استفاده میشود) و یک رشته تصادفی از بایت ها را ارائه میدهد.
- سرور با یک پیام «سلام سرور» حاوی نسخه پروتکل انتخابی TLS (1.0، 1.2 و غیره)، مجموعه رمز انتخابشده و یک رشته تصادفی از بایت ها پاسخ میدهد.
- سرور گواهی SSL خود را برای احراز هویت به مشتری ارسال میکند. کلاینت سرور را با تائید گواهی SSL احراز هویت میکند و همچنین در صورت درخواست سرور میتواند گواهی را برای احراز هویت ارسال کند.
- مشتری یک رشته دوم از بایتهای تصادفی را ارسال میکند که رمز premaster نام دارد. کلاینت از رمزنگاری نامتقارن برای تولید یک کلید عمومی از گواهی امنیتی سرور استفاده میکند که سپس برای رمزگذاری رمز premaster استفاده میشود. رمز premaster فقط با کلید خصوصی توسط سرور قابل رمزگشایی است.
- سرور رمز premaster را با کلید خصوصی رمزگشایی میکند.
- هم کلاینت و هم سرور، کلیدهای جلسه را از کلاینت تصادفی، سرور تصادفی و رمز premaster تولید میکنند.
- مشتری یک پیام «تمام شد» می فرستد که با یک کلید جلسه رمزگذاری شده است.
- سرور با یک پیام «تمام شد» که با یک کلید جلسه رمزگذاری شده است پاسخ میدهد.
- کلاینت و سرور با موفقیت به رمزگذاری متقارن ایمن دستیافتهاند، به این معنی که دست دادن کامل شده است و ارتباط میتواند با کلیدهای جلسه برقرار شده ادامه یابد.
- هنگامی که روش رمزگشایی در طی فرآیند دست دادن ایجاد شد، پروتکل ضبط یا رکورد TLS از رمزنگاری متقارن برای ایجاد کلیدهای جلسه منحصر به فرد برای هر اتصال استفاده میکند که ارتباط مداوم را در طول جلسه امکان پذیر میکند. پروتکل رکورد همچنین هر دادهای را که ارسال میشود با یک کد احراز هویت پیام مبتنی بر هش (HMAC) اضافه میکند.
- ازآنجاییکه پروتکلهای رمزگذاری در TLS پیچیده هستند، کاربران باید انتظار داشته باشند که مقداری توان محاسباتی را در این فرآیند صرف کنند؛ اما پروتکل TLS همچنین دارای تکنیکهای داخلی برای جلوگیری از تأخیرهای قابلتوجه است. در نتیجه، پروتکلهای TLS نباید بهطور قابلتوجهی بر عملکرد برنامه وب و زمان بارگذاری تأثیر بگذارد و همچنین نباید هزینههای محاسباتی را برای سازمانها افزایش دهد.
تفاوت بین TLS، SSL و HTTPS
پروتکل TLS در اصل از لایههای سوکت امن (SSL) تکامل یافته است. SSL در سال 1994 برای تسهیل جلسات وب امن ایجاد شد. قبل از معرفی TLS چندین ارتقاء را تجربه کرد. TLS 1.0 برای اولین بار در ژانویه 1999 بهعنوان ارتقاء SSL نسخه 3.0 منتشر شد. TLS 1.3، نسخه فعلی TLS، در سال 2018 منتشر شد.
هر دو پروتکل TLS و SSL بهطور گسترده در مرورگرهای وب، ایمیل، برنامههای پیامرسانی و سایر برنامهها استفاده میشوند – اگرچه TLS بهطورکلی جایگزین SSL در سیستمهای جدیدتر شده است. بهطورکلی، TLS الگوریتمهای رمزگذاری قویتری را برای احراز هویت ارائه میکند و از کلیدهای از پیش مشترک و رمزهای عبور ایمن از راه دور پشتیبانی میکند. امروزه اغلب در میزبانی وب شاهد حضور SSL هستیم. باید در خرید هاست به این نکته توجه کنیم که همراه SSL باشد.
اگرچه تفاوت بین SSL و TLS جزئی است، برخی از جنبههای پروتکلهای آنها بهوضوح TLS را از SSL متمایز میکند. این دو پروتکل قابلیت همکاری باهم را ندارند، اگرچه پروتکلهای TLS تا حدی با دستگاههای قدیمیتر با استفاده از SSL سازگاری دارند. TLS فرآیند دست دادن متفاوتی از SSL دارد، آرایه بیشتری از مجموعههای رمز را پشتیبانی میکند و از HMAC بهجای MAC عمومیتر در پروتکل رکورد خود استفاده میکند. خرید SSL در مقابل خرید TLS شاید به صرفه تر باشد اما امنیتی که TLS ایجاد میکند بسیار بهتر از SSL است.
پروتکل امن انتقال ابرمتن (HTTPS) به اجرای TLS در بالای پروتکل HTTP اشاره دارد. مصرفکنندگان معمولاً HTTPS را بهعنوان نسخه امن HTTP میشناسند و این همان پروتکل اولیهای است که برای ارسال دادهها بین وبسایتها استفاده میشود.
هدف TLS
رمزگذاری پروتکل TLS به محافظت از برنامههای کاربردی وب در برابر دستکاری دادهها و استراق سمع کمک میکند و در حال تبدیلشدن به یک روش استاندارد برای اکثر وبسایتها است. پروتکلهای SSL/TLS برای پاسخگویی به تعداد فزاینده تهدیدات امنیتی و نیاز به رمزگذاری از هر دو طرف کلاینت و سرور توسعه داده شدند.
TLS برای کمک به محافظت از حریم خصوصی و امنیت کاربر ایجادشده است. بدون TLS، اطلاعات حساسی که از طریق اینترنت منتقل میشوند مانند اعتبار ورود، اطلاعات شخصی و شماره کارت اعتباری در معرض سرقت هستند. همچنین برای اشخاص ثالث ناشناس امکان نظارت بر ایمیلها، عادات مرور و مکاتبات پیام مستقیم وجود دارد.
علاوه بر محافظت از اطلاعات کاربر، TLS همچنین به محافظت از برنامههای کاربردی وب در برابر نقض دادهها و حملات انکار سرویس توزیعشده (DDoS) کمک میکند. نقض دادهها و حملات DDoS میتواند برای سازمانها در هر اندازهای بسیار پرهزینه باشد و همچنین میتواند صدمات جبرانناپذیری به اعتماد مصرفکننده وارد کند. اطمینان از اینکه مرورگرهای وب از TLS استفاده میکنند، یک راه آسان برای تقویت امنیت و کمک به محافظت از حریم خصوصی کاربر و سازمان است.
دلیل استفاده برنامه های وب از پروتکل TLS چیست؟
اگر بدون TLS ارتباط برقرار کنید، ممکن است شخصی بهراحتی یک حمله مرد میانی انجام دهد و ارتباط شما را رهگیری کند. بهعنوان مثال، آنها می توانند رمزهای عبور شما را یاد بگیرند یا کوکی جلسه شما را بدزدند تا بتوانند جعل هویت شما را جعل کنند. به همین دلیل است که بسیاری از وبسایتها و برنامههای کاربردی وب فقط با استفاده از TLS (HTTPS) امکان برقراری ارتباط را می دهند.
امروزه اکثر مرورگرها بهطور پیشفرض از TLS پشتیبانی میکنند. بهعنوان مثال، Google Chrome بهطور فعال به کاربران در مورد وبسایتهای غیر HTTPS هشدار میدهد. بهنوبه خود، کاربران نیز در مورد امنیت وبسایت و بررسی پروتکلهای امن انتقال داده آگاهتر میشوند. با اصرار بر استفاده اجباری از TLS در تمام ارتباطات مبتنی بر وب، سازمانها و افراد میتوانند به تضمین سطح اولیه حفاظت از فعالیتهای مبتنی بر وب کمک کنند.