(TLS) یا (Transport Layer Security) امنیت حمل و نقل دادههای ارسال شده از طریق اینترنت را رمزگذاری میکند. به عبارتی دیگر اطمینان حاصل میکند که هکرها نمیتوانند آنچه را شما منتقل میکنید، ببینند! این تکنولوژی برای اطلاعات خصوصی و حساس مانند گذرواژهها، شماره کارت اعتباری و مکاتبات شخصی مفید است. این مقاله توضیح میدهد که TLS چیست، چگونه کار میکند و چرا باید برای طراحی سایت آن را اجرا کنید.
TLS چیست؟
TLS یک پروتکل رمزنگاری است که امنیت سرتاسر دادههای ارسال شده بین برنامهها را از طریق اینترنت فراهم میکند. TLS بیشتر برای ایمن سازی سایت ها، به ویژه نماد قفل که در مرورگرهای وب هنگام برقراری یک جلسه امن ظاهر می شود، برای کاربران آشنا است. با این حال، میتوان از آن برای برنامههای کاربردی دیگری مانند ایمیل، انتقال فایل، کنفرانس ویدیویی یا صوتی، پیام رسانی فوری، انتقال صوتی و همچنین خدمات اینترنتی مانند DNS و NTP استفاده کرد. TLS از لایه های سوکت ایمن (SSL) که در ابتدا توسط Netscape Communications Corporation در سال 1994 برای ایمن سازی جلسات وب ایجاد شد، تکامل یافته است. SSL 1.0 هرگز به صورت عمومی منتشر نشد، در حالی که SSL 2.0 به سرعت با SSL 3.0 که TLS بر اساس آن است، جایگزین شد.
لازم به ذکر است که TLS داده ها را در سیستم های نهایی ایمن نمیکند. این موضوع به سادگی تحویل امن داده ها را از طریق اینترنت تضمین می کند و از استراق سمع احتمالی یا تغییر محتوا جلوگیری می کند.
ساخت سایت
چرا باید به TLS اهمیت بدهم؟
دادهها در طول تاریخ بدون رمزگذاری از طریق اینترنت منتقل میشوند و در جایی که از رمزگذاری استفاده میشد، معمولاً به صورت تکهای برای اطلاعات حساس مانند رمز عبور یا جزئیات پرداخت استفاده میشد. در حالی که در سال 1996 (توسط RFC 1984) تشخیص داده شد که رشد اینترنت مستلزم محافظت از داده های خصوصی است، در طول دوره میانی به طور فزاینده ای آشکار شده است که توانایی های استراق سمع و مهاجمان بیشتر و فراگیرتر از آنچه قبلا تصور می شد است. . بنابراین IAB بیانیه ای را در نوامبر 2014 منتشر کرد و از طراحان، توسعه دهندگان و اپراتورهای پروتکل خواست تا رمزگذاری را برای ترافیک اینترنت عادی کنند، که اساساً به معنای محرمانه بودن آن به طور پیش فرض است.
بدون TLS، اطلاعات حساس مانند ورود به سیستم، جزئیات کارت اعتباری و جزئیات شخصی به راحتی توسط دیگران قابل جمعآوری است، اما همچنین عادات مرور، مکاتبات ایمیل، چتهای آنلاین و تماسهای کنفرانس را میتوان کنترل کرد. با فعال کردن برنامه های سرویس گیرنده و سرور برای پشتیبانی از TLS، تضمین می کند که داده های منتقل شده بین آنها با الگوریتم های امن رمزگذاری شده است و توسط اشخاص ثالث قابل مشاهده نیست.
نسخههای اخیر همه مرورگرهای وب اصلی در حال حاضر از TLS پشتیبانی میکنند و به طور فزایندهای رایج است که سرورهای وب به طور پیشفرض از TLS پشتیبانی کنند. با این حال، استفاده از TLS برای ایمیل و برخی برنامههای کاربردی دیگر اغلب اجباری نیست، و برخلاف مرورگرهای وب که سرنخهای بصری ارائه میدهند، همیشه برای کاربران مشخص نیست که آیا اتصالات آنها رمزگذاری شده است یا خیر.
بنابراین توصیه می شود که همه مشتریان و سرورها بر استفاده اجباری از TLS در ارتباطات خود و ترجیحاً جدیدترین نسخه TLS 1.2 اصرار داشته باشند. برای امنیت کامل، لازم است از آن همراه با زیرساخت کلید عمومی X.509 (PKI) مورد اعتماد عمومی و ترجیحاً DNSSEC نیز استفاده شود تا تأیید شود که سیستمی که اتصال به آن برقرار می شود واقعاً همان چیزی است که ادعا می کند. بودن.
TLS چگونه کار می کند؟
TLS از ترکیبی از رمزنگاری متقارن و نامتقارن استفاده می کند، زیرا در هنگام انتقال ایمن داده ها، مصالحه خوبی بین عملکرد و امنیت ایجاد می کند.
با رمزنگاری متقارن، داده ها با یک کلید مخفی که برای فرستنده و گیرنده شناخته شده است، رمزگذاری و رمزگشایی می شود. معمولاً 128 اما ترجیحاً 256 بیت طول دارد (هر چیزی کمتر از 80 بیت در حال حاضر ناامن در نظر گرفته می شود). رمزنگاری متقارن از نظر محاسبات کارآمد است، اما داشتن یک کلید مخفی مشترک به این معنی است که باید به شیوه ای امن به اشتراک گذاشته شود.
رمزنگاری نامتقارن از جفت کلیدها استفاده می کند – کلید عمومی و کلید خصوصی. کلید عمومی از نظر ریاضی با کلید خصوصی مرتبط است، اما با توجه به طول کلید کافی، استخراج کلید خصوصی از کلید عمومی از نظر محاسباتی غیرعملی است. این اجازه می دهد تا کلید عمومی گیرنده توسط فرستنده برای رمزگذاری داده هایی که می خواهد برای آنها ارسال شود استفاده کند، اما این داده ها فقط با کلید خصوصی گیرنده قابل رمزگشایی هستند.
مزیت رمزنگاری نامتقارن این است که فرآیند به اشتراک گذاری کلیدهای رمزگذاری نباید ایمن باشد، اما رابطه ریاضی بین کلیدهای عمومی و خصوصی به این معنی است که اندازه کلیدهای بزرگتر مورد نیاز است. حداقل طول کلید توصیه شده 1024 بیت است و 2048 بیت ترجیح داده می شود، اما این مقدار از نظر محاسباتی هزار برابر بیشتر از کلیدهای متقارن با قدرت معادل است (به عنوان مثال، یک کلید نامتقارن 2048 بیتی تقریباً معادل یک کلید متقارن 112 بیتی است) و رمزگذاری نامتقارن را برای بسیاری از اهداف بسیار کند می کند.
به همین دلیل، TLS از رمزنگاری نامتقارن برای تولید و تبادل ایمن یک کلید جلسه استفاده می کند. سپس از کلید جلسه برای رمزگذاری داده های ارسال شده توسط یک طرف و برای رمزگشایی داده های دریافتی از طرف دیگر استفاده می شود. پس از پایان جلسه، کلید جلسه کنار گذاشته می شود.
انواع مختلفی از روش های مختلف تولید و مبادله کلید، از جمله RSA، Diffie-Hellman (DH)، Ephemeral Diffie-Hellman (DHE)، منحنی بیضوی Diffie-Hellman (ECDH) و Ephemeral Eliptic Curve Diffie-Hellman (ECDHE) قابل استفاده است. DHE و ECDHE همچنین محرمانهای را ارائه میدهند که به موجب آن، در صورت به دست آوردن یکی از کلیدهای خصوصی در آینده، کلید جلسه به خطر نمیافتد، اگرچه تولید اعداد تصادفی ضعیف و/یا استفاده از محدوده محدودی از اعداد اول فرض شده است که امکان شکستن را فراهم میکند. حتی کلیدهای 1024 بیتی DH که منابع محاسباتی سطح دولتی را در اختیار دارند. با این حال، ممکن است این موارد به جای مسائل پروتکلی اجرا در نظر گرفته شوند، و ابزارهایی برای آزمایش مجموعههای رمز ضعیفتر وجود دارد.
با TLS همچنین مطلوب است که کلاینت متصل به سرور بتواند مالکیت کلید عمومی سرور را تأیید کند. این معمولاً با استفاده از یک گواهی دیجیتال X.509 صادر شده توسط یک شخص ثالث قابل اعتماد معروف به مرجع صدور گواهی (CA) انجام می شود که صحت کلید عمومی را تأیید می کند. در برخی موارد، سرور ممکن است از یک گواهی خودامضا استفاده کند که باید به طور صریح مورد اعتماد مشتری باشد (مرورگرها باید هشداری را در صورت مواجه شدن با گواهی نامعتبر نشان دهند)، اما این ممکن است در شبکههای خصوصی و/یا جایی که گواهی امن قابل قبول باشد. توزیع امکان پذیر است. با این حال، استفاده از گواهینامه های صادر شده توسط CAهای مورد اعتماد عمومی بسیار توصیه می شود.