نکاتی مهمی در ارتباط با TLS که شاید از وجود آن ها بی اطلاع باشید
پروتکل لایه نقلوانتقال TLS سرنام Transport Layer Security، یکی از پروتکلهای امنیتی قدرتمند دنیای سایبری است که…
نکاتی مهمی در ارتباط با TLS که شاید از وجود آنها بیاطلاع باشید
پروتکل لایه نقلوانتقال TLS سرنام Transport Layer Security، یکی از پروتکلهای امنیتی قدرتمند دنیای سایبری است که اولی مرتبه توسط کارگروه مهندسی اینترنت (IETF) در سال ۱۹۹۹ میلادی ارائه شد. این پروتکل باهدف حفظ حریم خصوصی کاربران و امنیت دادههای انتقالی از طریق شبکههای ارتباطی و کانالها ابداع شد. وظیفه اصلی پروتکل مذکور رمزنگاری ارتباطات میان کاربردی وب و البته سرورها است. به طور معمول شرکتها از پروتکل TLS برای رمزنگاری ارتباطات و پیامهایی از طریق ایمیلها، پیامرسانها و VOIP ارسال میشود استفاده میکنند.
چه تفاوتی میان پروتکلهای TLS و SSL وجود دارد؟
L از پروتکلهای قدیمی دنیای امنیت است که اولیه مرتبه توسط شرکت نت اسکیپ برای برقراری ارتباط امن و رمزنگاری شده بین سرویسدهنده و سرویسگیرنده ابداع گردید، اما در نهایت نسخه تکمیل یافته آن به نام پروتکل TLS به شکل گسترده در دسترس شرکتها قرار گرفت. TLS در مقایسه با SSL امنیت بهتر و عملکرد قدرتمندی دارد از الگوریتم رمزنگاری قدرتمندتری نیز استفاده میکند. نگارش 1 پروتکل TLS همان نگارش 3.1 پروتکل SSL است. به همین دلیل برخی منابع از اصطلاحات TLS و SSL بهجای یکدیگر استفاده میکنند. هر سایتی که از پروتکل انتقال ابر متن ایمن (HTTPS) استفاده میکند در حقیقت در حال رمزنگاری اطلاعات از طریق پروتکل TLS است. بهطوری که تمام اطلاعات محرمانهای که میان سرویسدهنده و سرویسگیرنده انتقال پیدا میکنند را رمزنگاری میکند تا توسط افراد غیرمجاز قابل رویت نباشد و تنها افرادی که کلید مربوطه را دارند قادر به مشاهده اطلاعات باشند.
چرا کسبوکارها و برنامههای کاربردی باید از پروتکل TLS استفاده کنند؟
TLS با رمزنگاری اطلاعات از برنامههای وب محور در برابر نقصهای دادهای و سایر حملههای سایبری محافظت میکند. علاوه بر این، استفاده از HTTPS در وبسایتهایی که با TLS رمزنگاری شدهاند به یک استاندارد جهانی تبدیل شده و به محافظت از برنامههای کاربردی وب در برابر انواع مختلفی از حملههای سایبری کمک میکند. به طور مثال، مرورگر گوگل کروم از مشاهده وبسایتهایی که نماد قفل HTTPS ندارند، جلوگیری کرده و به کاربران در این زمینه هشدار میدهد. بهطوری که کاربران باید به طور شخصی روی لینک سایتهایی که از پروتکل مذکور استفاده نمیکنند کلیک کنند.
پروتکل TLS چه کاری انجام میدهد؟
از مهمترین کاربردهای پروتکل TLS باید به رمزنگاری، احراز هویت و تأیید اعتبار اشاره کرد. پروتکل مذکور دادههای در حال انتقال میان سرویسدهنده و سرویسگیرنده را رمزنگاری کرده و این اطمینان خاطر را به گیرنده و فرستنده میدهد که شخص سومی اطلاعات را تحریف نمیکند. در مجموع باید بگوییم پروتکل فوق کارهای زیر را انجام میدهد:
رمزنگاری: پنهانسازی دادهها از دید ابزارهای ثالث.
احراز هویت: اطمینان خاطر که هویت گیرنده و فرستنده درست است.
یکپارچگی: تأیید میکند که دادهها جعلی یا دستکاری نشدهاند.
پروتکل TLS چه کاری انجام میدهد؟
هر وبسایت یا برنامهای که از پروتکل TLS استفاده میکند باید دارای گواهینامه TLS که بهعنوان گواهینامه SSL شناخته میشود را داشته باشد. این گواهینامه توسط مرجع صدور گواهینامه به هر کاربران حقیقی یا حقوقی دارای دامنه اینترنتی داده میشود که حاوی اطلاعاتی در مورد مالک دامنه و کلید عمومی سرور است. این اطلاعات و کلید عمومی، جهت تأیید هویت سرور اهمیت زیادی دارند. اتصال TLS شامل فرایند انتقال اطلاعات اولیه و ساخت یک ارتباط امن برای مبادله اطلاعات است. این فرایند به نام دست دهی TLS سرنام TLS Handshake معروف است. در فرایند فوق که میان دستگاه کاربر و سرور وب انجام میشود دست دهی به شکل زیر انجام میشود:
ابتدا یکی از نسخههای TLS که شامل 1.0، 1.1 یا 1.3 است مشخص شده و در اختیار کاربر و سرور قرار میگیرد.
در این مرحله، دستدهی TLS یک مجموعه توکن (رمز) را برای هر نشست ارتباطی ایجاد میکند. این مجموعه توکنها الگوریتمهایی هستند که مشخص میکنند چه کلیدهای رمزنگاری مشترکی برای آن نشست خاص تخصیص داده شده و استفاده میشود. TLS از طریق الگوی رمزنگاری کلید عمومی قادر است کلیدهای نشست را روی یک کانال رمزنگاری نشده تنظیم کند.
علاوه بر این، TLS Handshake وظیفه احراز هویت که شامل اثبات هویت سرور به کاربر است را دارد و این کار را با استفاده از کلیدهای عمومی انجام میدهد. بااینحال تنها فرستنده اصلی قادر است دادهها را با کلید خصوصیاش رمزنگاری کند. دقت کنید که کلید عمومی سرور بخشی از گواهی TLS میباشد.
در نهایت فرایند ساخت کلیدهای نشست برای رمزنگاری پیامهای مبادله شده بین کلاینت و سرور پس از اتمام فرایند دست دهی TLS انجام میشود.
دادهها پس از رمزنگاری و احراز هویت با یک کد اصالتسنجی پیام یا کد احراز هویت پیام (MAC) امضا میشوند تا گیرنده از اعتبار و صحت دادهها اطمینان حاصل کند. تصور کنید فروشنده روی یک جعبه دارو، فویل کشیده، در این حالت مصرفکننده از عدم دستکاری داروها توسط افراد غیرمجاز مطمئن میشود. شکل زیر نحوه انجام این کار را نشان میدهد.
TLS چه تأثیری روی ترافیک و عملکرد برنامههای وب میگذارد؟
درست است که جدیدترین نگارشهای TLS تأثیر زیادی بر نحوه عملکرد برنامههای وب محور ندارند، اما از سویی دیگر فرایند راهاندازی اتصال TLS تقریباً پیچیده و زمانبر است و برای بارگذاری نیازمند قدرت محاسباتی زیاد است. به طور مثال، کلاینت و سرور باید قبل و بعد از انتقال دادهها چندمرتبه با یکدیگر ارتباط برقرار کنند. این عملیات زمان زیادی طلب میکند و بخشی از حافظه کلاینت و سرور را به خود اختصاص میدهد. زمانی که میتوان برای بارگذاری برنامههای کاربردی وب استفاده کرد.
برای حل این مشکل، فناوریهایی مثل TLS False Start تعبیه شدهاند که تأخیرهای احتمالی به وجود آمده توسط TLS handshake را کم میکنند. TLS False Start قبل از شروع اتصال TLS Handshake مجوز انتقال داده به سرویسدهنده و سرویسگیرنده را میدهد. جالب آنکه فناوری مذکور به کلاینتها و سرورهایی که درگذشته با یکدیگر ارتباط برقرار کردهاند مجوز استفاده از TLS Handshake کوتاه شده را میدهد تا زمان کمتری صرف احراز هویت شود؛ بنابراین نیازی به گذراندن تمام مراحل TLS Handshake توسط کلاینت و سرور وجود ندارد.
یک چنین فناوریهایی باعث شدهاند تا TLS به یک پروتکل سریع که تأثیر چندانی روی زمان بارگذاری ندارد، تبدیل شود. با استناد به استانداردهای امروزی، هزینههای محاسباتی مربوط به TLS بسیار کم است. نسخه TLS 1.3 که سال 2018 میلادی منتشر شد در مقایسه با نسخههای قبلی سرعت بسیار بیشتری دارد. در این نسخه، فرایند TLS Handshake تنها به یک ارتباط رفت و برگشتی نیاز دارد و این روند را چند میلی ثانیه کوتاهتر میکند. علاوه بر این، اگر کاربری در گذشته به یک وبسایت متصل شده باشد مدت زمان رفت و برگشت TLS Handshake صفر میشود تا سرعت بیشتر شود.
چگونه TLS را باید در یک وبسایت پیادهسازی کرد؟
شرکت Cloudflare برای ارتقای سطح امنیت وبسایتها گواهی رایگان TLS/SSL را به متقاضیان میدهد. اگر کاربری دوست ندارد از خدمات این شرکت استفاده کند باید برای دریافت گواهی SSL از سایر شرکتهای صدور گواهینامه باید خرید کند و آن را سرور نصب کند.
منبع:shabakeh-mag