پروتکل امنیتی لایهٔ انتقال یا Transport Layer Security، بهمراه سوکت های امن Secure Sockets Layer خود جزو پروتکل های کد گذاری شده محسوب میگردد که در جهت تأمین امنیت ارتباطات از طریق اینترنت ایجاد گردیده است. در این پروسه برای اطمینان از کاربر مقصد و ارتباط از گواهی X.509 و رمزنگاری نا متقارن استفاده میگردد. این پروتکل با ایجاد بستری امن جهت انتقال دادهها در اینترنت مقاصدی چون کار کردن با پایگاه دادههای وب، پست الکترونیکی، نمابرهای اینتزنتی و پیامهای فوری اینترنتی را ایمن مینماید، مبحث این مقاله معرفی نسبتاً کاملی از پروتکل TLS میباشد.
پرکاربردترین پروتکل رمزنگاری اینترنت برای کد گذاری داده های لایه کاربر و ایجاد امنیت ارتباطات را میتوان پروتکل SSL/TLS نام برد. پیکربندی این پروتکل ها دارای اجزای مختلفی میباشند، عدم رعایت قوانین و موارد امنیتی در بکارگیری این پروتکل ها یکپارچگی و امینت داده های مبادله شده را با خطر تهدید خطر خواهد کرد. اجزاء و ابزارهایی این امکان را برای کارشناسان فراهم مینماید که پیکربندی پروتکل SSL/TLS کنترل داده ها را بخوبی انجام داده و از ایمنی آن اطمینان حاصل کنند. پروتکل TLS به نرم افزارهای Client/Server قابلیت eavesdropping در شبکه و message forgery جهت جلوگیری از جعل پیام کاربران با یکدیگر را به عنوان authentication TLS فراهم مینماید، همچنین احراز هویت و communications confidentiality در اینترنت را با استفاده از کد گذاری cryptography ممکن خواهد ساخت.
اگر کاربر برای Server اعلام نماید که قصد اتصال TLS را دارد، دو روش جهت انجام این عملیات وجود دارد:
1. ابتدا از شماره پورت متفاوتی استفاده شود ( برای مثال پورت ۴۴۳ ) در این حالت باید یک پورت مشخص انتخاب شده و در هر دو مسیر کد گذاری و معرفی گردد.
2. در این حالت از طریق سرور به کلاینت یک پورت خاص اختصاص داده میشود که Client آن را از سرور درخواست نموده و سرور با استفاده از یک مکانیسم پروتکل خاص برای مثال STARTTLS اقدام به ایجاد پورت اتصال نماید.
در صورتیکه اتصال از طریق پروتکل TLS برای ارتباط میان کلاینت و سرور انتخاب میگردد حال با استفاده از روش handshaking ارتباط برقرار خواهد شد. سپس سرور و کلاینت بر روی پارامترهای مختلفی که برای ایجاد امنیت اتصال استفاده میشود به توافق میرسند:
. کلاینت اطلاعاتی را که سرور برای برقراری ارتباط با استفاده از TLS به آن نیاز دارد را ارسال میکند. مانند: شماره نسخه TLS کلاینت، تنطیمات رمزگذاری و سایر اطلاعاتی که سرور ممکن است به آن نیاز داشته باشد.
. سرور اطلاعاتی را که کلاینت برای برقراری ارتباط با استفاده از TLS به آن نیاز دارد را برایش ارسال میکند. مانند: شماره نسخه TLS سرور، تنطیمات رمزگذاری و سایر اطلاعاتی که کلاینت به آن نیاز دارد. سرور همچنین گواهینامه خود را برای کلاینت ارسال میکند و اگر کلاینت درخواست منبعی از سرور داشته باشد، کلاینت باید احراز هویت شود و باید گواهینامه کلاینت برای سرور ارسال شود.
. با اطلاعات دریافتی از سرور، کلاینت میتواند سرور را احراز هویت کند. اگر سرور تصدیق نشود، به کاربر هشدار داده میشود که عمل رمزگذاری و تصدیق نمیتواند انجام گیرد. اگر سرور به درستی تصدیق شد کلاینت به مرحله بعد میرود.
. با استفاده از اطلاعات به دست آمده، کلاینت یک pre-master secret ایجاد کرده و آن را به سرور ارسال میکند.
. اگر سرور از کلاینت بخواهد هویتش را ثابت کند، کلاینت کلیه اطلاعات لازم و گواهی خود را برای سرور ارسال میکند.
. اگر کلاینت تصدیق نشود، ارتباط قطع میشود اما اگر به درستی تصدیق شود، سرور از کلید خصوصی خود برای یاز کردن pre-master secret استفاده میکند.
. کلاینت و سرور از master secret برای تولید کلید جلسات استفاده می کنند که یک کلید متقارن است و برای رمزگذاری و رمزگشایی اطلاعات مبادله شده استفاده میشود.
. وقتی کلاینت پیغامی برای سرور ارسال میکند با استفاده از کلید جلسه آن را رمز میکند.
تلاشهای تحقیقاتی در اوایل نسبت به امنیت در لایه انتقال شامل برنامه نویسی شبکه ای امن و رابط برنامه نویسی کاربردی بود. در سال ۱۹۹۳ به بررسی رویکرد داشتن یک لایه انتقال امن، به منظور تسهیل مقاوم سازی برنامه های کاربردی موجود در شبکه با اقدامات امنیتی پرداخته شد.
TLS 1.0: این پروتکل در سال ۱۹۹۹ به عنوان ارتقا یافتهٔ نسخه SSL 3.0 تعریف شد. تفاوت چشمگیری بین این پروتکل و SSL 3.0 وجود ندارد و میتوان گفت این پروتکل SSL 3.0 را کامل کرده است.
TLS 1.1: این پروتکل در سال ۲۰۰۶ تعریف شد و توسعه یافته TLS 1.0 بود. تفاوت های قابل توجهی که در این نسخه وجود دارد: حفاظت دربرابر حملات Cipher block chaining یا CBC اضافه شده است و IV implicit با IV explicit جایگزین شده است.
TLS 1.2: در سال ۲۰۰۸ تولید شد. مشخصات TLS 1.1 را دارد. تفاوتی که این پروتکل دارد این است که MD5-SHA-1 با SHA-256 جایگزین شده است.