پروتکل TLS به برنامه‌های Client/Server اجازه می‌دهد که در شبکه از طریقی که از eavesdropping (شنود)، message forgery (جعل پیام) جلوگیری می‌کند با یکدیگر ارتباط برقرار کنند. authentication TLS (احراز هویت) و communications confidentiality (ارتباط مطمئن) در اینترنت را از طریق استفاده از cryptography (رمز نگاری) فراهم می‌کند.

Client باید برای Server مشخص کند که آیا می خواهد یک اتصال TLS داشته باشد با نه. دو راه برای رسیدن به این هدف وجود دارد: یک راه این است که از شماره پورت متفاوتی برای اتصال TLS استفاده شود (برای مثال پورت 443 پروتکل امن انتقال ابرمتن) و دیگر اینکه اختصاص یک پورت مشخص از طریق سرور به کلاینت، که کلاینت آن را درخواست کرده باشد با استفاده از یک مکانیسم پروتکل خاص (برای مثال STARTTLS).

زمانی که کلاینت و سرور تصمیم گرفتند از اتصال TLS استفاده کنند، به مذاکره با استفاده از روش handshaking می پردازند. سپس سرور و کلاینت بر روی پارامترهای مختلفی که برای ایجاد امنیت اتصال استفاده می شود به توافق می رسند:

کلاینت اطلاعاتی را که سرور برای برقراری ارتباط با استفاده از SSL به ان نیاز دارد را ارسال می کند. مانند: شماره نسخه SSL کلاینت، تنطیمات رمزگذاری و سایر اطلاعاتی که سرور ممکن است به آن نیاز داشته باشد.
سرور اطلاعاتی را که کلاینت برای برقراری ارتباط با استفاده از SSL به ان نیاز دارد را برایش ارسال می کند. مانند: شماره نسخه SSL سرور، تنطیمات رمزگذاری و سایر اطلاعاتی که کلاینت به آن نیاز دارد.سرور همچنین گواهینامه خود را برای کلاینت ارسال می کند و اگر کلاینت درخواست منبعی از سرور داشته باشد، کلاینت باید احراز هویت شود و باید گواهینامه کلاینت برای سرور ارسال شود.
با اطلاعات دریافتی از سرور ، کلاینت می تواند سرور را احرازهویت کند. اگر سرور تصدیق نشود، به کاربر هشدار داده می شود که عمل رمزگذاری و تصدیق نمی‌تواند انجام گیرد. اگر سرور به درستی تصدیق شد کلاینت به مرحله بعد می رود.
با استفاده از اطلاعات به دست آمده، کلاینت یک pre-master secret ایجاد کرده و آن را ب سرور ارسال می کند.
اگر سرور از کلاینت بخواهد هویتش را ثابت کند، کلاینت کلیه اطلاعات لازم و گواهی خود را برای سرور ارسال می کند.
اگر کلاینت تصدیق نشود، ارتباط قطع می شود اما اگر به درستی تصدیق شود، سرور از کلید خصوصی خود برای یاز کردن pre-master secret استفاده می کند.
کلاینت و سرور از master secret برای تولید کلید جلسات استفاده می کنندکه یک کلید متقارن است و برای رمزگذاری و رمزگشایی اطلاعات مبادله شده استفاده می شود.
وقتی کلاینت پیغامی برای سرور ارسال می کند با استفاده از کلید جلسه آن را رمز می کند.
وقتی سرور پیغامی برای کلاینت ارسال می کند با استفاده از کلید جلسه آن را رمز می کند.

اکنون SSL handshake کامل است و ارتباط شروع می شود. کلاینت و سرور از کلید جلسه برای رمزگذاری و رمزگشایی اطلاعاتی که برای هم می فرستند استفاده می کنند.
اگر یکی از قدم های بالا با شکست مواجه شود TLS دچار شکست شده و ارتباط برقرار نمی‌شود.
در قدم سوم مشتری باید گواهی سرور را به درستی چک کند تا باعث بروز مشکل نشود.


منبع: داده پردازان سرو پارس
آیا این پاسخ به شما کمک کرد؟ 599 کاربر این را مفید یافتند (1147 نظرات)