آیا تا به حال به این فکر کردهاید که هنگام وبگردی، ارسال ایمیل یا خرید آنلاین چگونه از دادههای شما محافظت میشود؟ چگونه میفهمید که وبسایتی که بازدید میکنید یا سروری که با آن در ارتباط هستید، همان چیزی است که آنها ادعا میکنند؟ چگونه از رهگیری یا دستکاری اطلاعات حساس توسط هکرها جلوگیری میکنید؟
پاسخ این سوالات، TLS یا امنیت لایهٔ حمل و نقل است. TLS یک پروتکل امنیتی پذیرفته شده است که دادهها را رمزگذاری میکند و اتصالات را از طریق اینترنت تأیید میکند. میلیونها وبسایت، اپلیکیشن و سرویس از آن برای اطمینان از حفظ حریم خصوصی و یکپارچگی ارتباطاتشان استفاده میکنند.
اما واقعا TLS چیست و چگونه کار میکند؟ تفاوت بین TLS و SSL چیست؟ چگونه میتوانید از TLS برای ایمنسازی دادهها و برنامههای خود استفاده کنید؟ در این مقاله به این سوالات و موارد دیگر پاسخ خواهیم داد. ما اصول TLS، تفاوت آن با SSL و نحوهٔ برقراری اتصالات امن را توضیح خواهیم داد. همچنین به شما نشان خواهیم داد که چگونه با استفاده از یک گواهی و یک کلید خصوصی، برای اطلاعات خود رمز عبور تنظیم کنید. در پایان این مقاله، درک بهتری از نحوهٔ محافظت TLS از دادههای شما و چرایی استفاده از آن خواهید داشت.
فهرست مطالب
– TLS چیست؟
– تفاوت بین TLS و SSL چیست؟
– TLS چگونه کار میکند؟
– چگونه با TLS، برای اطلاعات یک رمز عبور تنظیم کنیم؟
TLS چیست؟
TLS مخفف عبارت Transport Layer Security است. این یک پروتکل رمزنگاری است که امنیت سرتاسری را برای دادههای ارسال شده بین برنامههای کاربردی از طریق اینترنت فراهم میکند. یک مورد استفاده اولیه از TLS، رمزگذاری ارتباط بین برنامههای کاربردی وب و سرورها است، مانند مرورگرهای وب که یک وبسایت را بارگذاری میکنند. با این حال، TLS میتواند برای انواع دیگر ارتباطات، مانند ایمیل، پیام، صدا از طریق IP (VoIP) و انتقال فایل استفاده شود.
TLS توسط کارگروه مهندسی اینترنت (IETF)، یک سازمان استاندارد بینالمللی، در سال 1999 به عنوان ارتقاء به SSL یا لایهٔ سوکتهای امن پیشنهاد شد. SSL توسط Netscape در سال 1994 برای ایمنسازی جلسات وب توسعه داده شد. با این حال، SSL دارای برخی نقصها و محدودیتهای امنیتی بود که توسط TLS برطرف شد. آخرین نسخهٔ آن TLS 1.3 است که در سال 2018 منتشر شد.
تفاوت بین TLS و SSL چیست؟
TLS و SSL هر دو پروتکلهایی هستند که دادهها را رمزگذاری میکنند و اتصالات را در اینترنت تأیید میکنند. با این حال، TLS یک نسخهٔ جدیدتر و امنتر از SSL است. تفاوتهای اصلی بین TLS و SSL عبارتند از:
– الگوریتم رمزگذاری: TLS از الگوریتمهای رمزگذاری قویتری نسبت به SSL استفاده میکند، مانند AES و ChaCha20-Poly1305. همچنین SSL از الگوریتمهای ضعیفتری مانند DES و RC4 استفاده میکند.
– روش تبادل کلید: TLS از روشهای تبادل کلید امنتری نسبت به SSL استفاده میکند، مانند Diffie-Hellman (DH) و Elliptic Curve Diffie-Hellman (ECDH).
– کد احراز هویت پیام: TLS از کدهای احراز هویت پیام امنتری نسبت به SSL استفاده میکند، مانند HMAC-SHA256 و HMAC-SHA384.
– فرآیند دست دادن: TLS فرآیند دست دادن کارآمدتر و انعطافپذیرتری نسبت به SSL دارد. دست دادن، مرحلهٔ اولیهٔ ایجاد یک اتصال ایمن است که در آن مشتری و سرور اطلاعاتی مانند نسخهٔ پروتکل، مجموعهٔ رمز، گواهی و کلیدها را مبادله میکنند. TLS به مشتری و سرور اجازه میدهد تا بهترین پارامترها را برای اتصال بدون ارسال دادههای غیرضروری یا اضافی مذاکره کنند. SSL فرآیند دست دادن سختتر و پرمخاطبتری دارد که میتواند باعث تاخیر یا خطا شود.
به دلیل این تفاوتها، TLS امنیت، عملکرد و سازگاری بهتری نسبت به SSL ارائه میدهد. بنابراین، SSL توسط IETF منسوخ شدهاست و دیگر نباید استفاده شود. با این حال، برخی افراد به دلایل تاریخی هنوز از اصطلاح SSL برای اشاره به پروتکلهای SSL و TLS استفاده میکنند.
TLS چگونه کار میکند؟
TLS با استفاده از رمزنگاری برای رمزگذاری دادهها و تأیید اعتبار اتصالات کار میکند. مراحل اساسی نحوهٔ عملکرد TLS عبارتند از:
1. سرویس گیرنده یک اتصال را راهاندازی میکند: سرویس گیرنده (به عنوان مثال، یک مرورگر وب) یک پیام ClientHello را به سرور (به عنوان مثال، یک وب سرور) ارسال میکند تا یک اتصال ایمن را ایجاد کند. پیام حاوی اطلاعاتی مانند نسخهٔ پروتکل پشتیبانی شده، مجموعههای رمز، روشهای فشردهسازی، برنامههای افزودنی و یک عدد تصادفی است.
2. سرور پاسخ میدهد: سرور با یک پیام ServerHello پاسخ میدهد که حاوی اطلاعاتی مانند نسخهٔ پروتکل انتخابی، مجموعهٔ رمز، روش فشردهسازی، برنامههای افزودنی، یک عدد تصادفی و گواهی آن است. این گواهی، یک سند دیجیتالی است که هویت سرور را ثابت میکند و حاوی کلید عمومی آن است.
3. کاربر سرور را تأیید میکند: کاربر اعتبار گواهی سرور را با بررسی امضا، تاریخ انقضا، صادرکننده و نام دامنهٔ آن تأیید میکند. همچنین میتواند با مرجع صدور گواهی (CA) که گواهی را صادر کرده است، تماس بگیرد تا وضعیت ابطال آن را بررسی کند. اگر تأیید موفقیتآمیز باشد، کلاینت کلید عمومی سرور را از گواهی استخراج میکند.
4. کاربر گواهینامه خود را ارسال میکند: اگر سرور درخواست احراز هویت کاربر را داشته باشد، کلاینت گواهی خود را به سرور ارسال میکند. سرور گواهی مشتری را به همان روشی که مشتری گواهی سرور را تأیید کرد، تأیید میکند.
5. سرویس گیرنده و سرور یک رمز مشترک تولید میکنند: کلاینت و سرور از روش تبادل کلید برای تولید یک رمز مشترک استفاده میکنند. این رمز یک عدد تصادفی است که فقط آنها میدانند. روش تبادل کلید میتواند بر اساس رمزنگاری نامتقارن (به عنوان مثال، DH یا ECDH) یا رمزنگاری متقارن (به عنوان مثال، RSA) باشد. رمز مشترک برای استخراج کلیدهای رمزگذاری برای انتقال دادههای بعدی استفاده میشود.
6. کاربر و سرور پیامهای تمام شده را مبادله میکنند: سرویس گیرنده و سرور پیامهای تمام شدهای را برای یکدیگر ارسال میکنند که حاوی هش تمام پیامهای قبلی رد و بدل شده در حین دست دادن است. این تضمین میکند که هیچ کس در فرآیند دست دادن، دستکاری نکرده است.
7. کاربر و سرور دادههای رمزگذاری شده را مبادله میکنند: سرویس گیرنده و سرور از کلیدهای رمزگذاری مشتق شده از رمز مشترک برای رمزگذاری و رمزگشایی دادهها استفاده میکنند. آنها از یک کد تأیید اعتبار پیام (به عنوان مثال، HMAC-SHA256 یا HMAC-SHA384) برای تأیید صحت هر پیام استفاده میکنند.
چگونه با TLS، برای اطلاعات یک رمز عبور تنظیم کنیم؟
یکی از راههای تعیین رمز عبور برای اطلاعات با TLS، استفاده از گواهی و کلید خصوصی است. گواهی، یک سند دیجیتالی است که هویت شما را ثابت میکند و حاوی کلید عمومی شماست. کلید خصوصی، یک شمارهٔ مخفی است که با کلید عمومی شما مطابقت دارد و به شما امکان میدهد دادههای رمزگذاری شده با کلید عمومی خود را رمزگشایی کنید. میتوانید از یک گواهی و یک کلید خصوصی برای رمزگذاری و رمزگشایی دادهها با TLS به شرح زیر استفاده کنید:
– تولید یک گواهی و یک کلید خصوصی: میتوانید از ابزاری مانند OpenSSL برای تولید گواهینامه و کلید خصوصی استفاده کنید یا میتوانید آنها را از یک CA دریافت کنید. همچنین میتوانید از کلید خصوصی خود با یک رمز عبور محافظت کنید که یک لایهٔ امنیتی اضافی را اضافه میکند.
– گواهینامه و کلید خصوصی خود را به صورت ایمن ذخیره کنید: باید گواهینامه و کلید خصوصی خود را در مکانی امن مانند سیستم فایل با دسترسی محدود یا یک دستگاه سختافزاری مانند کارت هوشمند یا رمز USB ذخیره کنید. همچنین باید از گواهینامه و کلید خصوصی خود در صورت مفقود شدن یا آسیب دیدن، نسخهٔ پشتیبان تهیه کنید.
– از گواهی و کلید خصوصی خود برای رمزگذاری و رمزگشایی دادهها با TLS استفاده کنید: میتوانید با استفاده از ابزار یا کتابخانهای که از TLS پشتیبانی میکند، مانند OpenSSL، curl، از گواهی و کلید خصوصی خود برای رمزگذاری و رمزگشایی دادهها با TLS استفاده کنید. درخواستها هنگام برقراری اتصال TLS، باید گواهی و کلید خصوصی (و در صورت وجود رمز عبور) خود را به عنوان پارامتر ارائه دهند.
جمعبندی
TLS یک پروتکل امنیتی است که دادهها را رمزگذاری میکند و اتصالات را از طریق اینترنت تأیید میکند. این پروتکل یک ارتقاء برای SSL است که به دلیل نقص امنیتی منسوخ شدهاست. TLS با استفاده از رمزنگاری برای رمزگذاری دادهها با الگوریتمهای رمزگذاری متقارن، کار میکند. یکی از راههای تنظیم رمز عبور برای اطلاعات با TLS استفاده از گواهی و کلید خصوصی است که با رمز عبور محافظت میشوند. با استفاده از TLS، میتوانید از حریم خصوصی و یکپارچگی دادههای خود اطمینان حاصل کنید و از رهگیری یا دستکاری هکرها در آن جلوگیری کنید.