امنیت لایه انتقال: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
خط ۱:
{{پشته پروتکل اینترنت}}
'''پروتکل امنیتی لایهٔ انتقال''' (Transport Layer Security)
TLS و SSL درمدل TCP/IP عمل رمزنگاری را در
لایهٔ سوکتهای امن (Secure Sockets Layer) یا '''اساسال''' (SSL) پروتکلی است که توسط شرکت Netscape برای ردّ و بدل کردن سندهای خصوصی از طریق اینترنت توسعه یافتهاست. SSL از یک [[کلید خصوصی]] برای به رمز درآوردن اطلاعاتی که بر روی یک ارتباط SSL منتقل میشوند استفاده مینماید. هر دو مرورگر Netscape Navigator و Internet Explorer (و امروزه تمام مرورگرهای مدرن) از این پروتکل پشتیبانی مینمایند. همچنین بسیاری از وبسایتها برای فراهم کردن بستری مناسب جهت حفظ کردن اطلاعات محرمانهٔ کاربران (مانند شمارهٔ کارت اعتباری) از این پروتکل استفاده مینمایند. طبق
SSL یک پروتکل مستقل از لایه برنامهاست (Application Independent). بنابراین، پروتکلهایی مانند [[FTP]]
== تعریف ==
پروتکل TLS به برنامههای Client/Server اجازه میدهد که در شبکه از طریقی که از eavesdropping(شنود)، message forgery(جعل پیام) جلوگیری میکند با یکدیگر ارتباط برقرار کنند. authentication TLS(احراز هویت) و communications confidentiality(ارتباط مطمئن) در اینترنت را از طریق استفاده از cryptography(رمز نگاری) فراهم میکند.
Client باید برای Server مشخص کند که آیا
دو راه برای رسیدن به این هدف وجود دارد: یک راه این است که از شماره پورت متفاوتی برای اتصال TLS استفاده شود (برای مثال پورت
زمانی که کلاینت و سرور تصمیم گرفتند از اتصال TLS استفاده کنند، به مذاکره با استفاده از روش
سپس سرور و کلاینت بر روی پارامترهای مختلفی که برای ایجاد امنیت اتصال استفاده
# کلاینت اطلاعاتی را که سرور برای برقراری ارتباط با استفاده از SSL به ان نیاز دارد را ارسال
# سرور اطلاعاتی را که کلاینت برای برقراری ارتباط با استفاده از SSL به ان نیاز دارد را برایش ارسال
# با اطلاعات دریافتی از
# با استفاده از اطلاعات به دست آمده، کلاینت یک pre-master secret ایجاد کرده و آن را ب سرور ارسال
# اگر سرور از کلاینت بخواهد هویتش را ثابت کند، کلاینت کلیه اطلاعات لازم و گواهی خود را برای سرور ارسال
# اگر کلاینت تصدیق نشود، ارتباط قطع
# کلاینت و سرور از master secret برای تولید کلید جلسات استفاده می کنندکه یک کلید متقارن است و برای رمزگذاری و رمزگشایی اطلاعات مبادله شده استفاده
# وقتی کلاینت پیغامی برای سرور ارسال
# وقتی سرور پیغامی برای کلاینت ارسال
اکنون SSL handshake کامل است و ارتباط شروع
اگر یکی از
در قدم سوم مشتری باید گواهی سرور را به درستی چک کند تا باعث بروز مشکل نشود.
== تاریخچه ==
=== [[
===
پروتکل SSL در اصل توسط
=== TLS 1.0 ===
این پروتکل در سال
=== TLS 1.1 ===
این پروتکل در سال
* حفاظت دربرابر حملات
* IV implicit با IV explicit جایگزین
=== TLS 1.2 ===
در سال
==
در طراحی
یک استفاده برجسته از TLS این است که برای امن کردن ترافیک بین [[وب سایت]] ها و مرورگرها استفاده می شود.▼
===
▲یک استفاده برجسته از TLS این است که برای امن کردن ترافیک بین [[وب سایت]]
در پیادهسازیهای نخستین لایهٔ سوکتهای امن، به علّت محدودیتهای اعمال شده بر روی صادرات تکنولوژی رمزنگاری از طرف دولت [[ایالات متحده]]، از کلیدهای متقارن با طول ۴۰ استفاده میشد. قبل از اینکه کلاینت و سرور به تبادل اطلاعات حفاظت شده توسط TLS بپردازند باید بر روی یک کلید رمزگذاری و یک روش رمزگذاری توافق کنندتا مبادله ی امنی داشته باشند.{{سخ}}▼
متدهایی که برای مبادله کلید استفاده می شود:{{سخ}}▼
=== تبادل کلید ===
تولید کلیدهای عمومی خصوصی باRSA، Diffie-Hellman، ephemeral Diffie-Hellman، ECDH، ephemeral Elliptic Curve Diffie-Hellman، anonymous Diffie-Hellman و PSK.{{سخ}}▼
▲در پیادهسازیهای نخستین لایهٔ سوکتهای امن، به علّت محدودیتهای اعمال شده بر روی صادرات تکنولوژی رمزنگاری از طرف دولت [[ایالات متحده]]، از کلیدهای متقارن با طول ۴۰ استفاده میشد. قبل از اینکه کلاینت و سرور به تبادل اطلاعات حفاظت شده توسط TLS بپردازند باید بر روی یک کلید رمزگذاری و یک روش رمزگذاری توافق کنندتا
روش توافق کلید TLS_DH_anon سرور و کلاینت را احراز هویت نمیکند به همین دلیل به ندرت استفاده می شود.▼
== SSL == ▼
▲تولید کلیدهای عمومی خصوصی
لایه سوکت امن (SSL) توسط Netscape طراحی شد و نسخه 3 آن به صورت استاندارد اینترنت درآمد. معماری SSL به صورت دولایه ای است که روی TCP قرار گرفته است. لایه اول بالای [[لایه حمل]] قرار گرفته است و لایه دوم در لایه کاربرد است. قسمتی از SSL که در لایه دوم قرار می گیرد مربوط به سرویس های مدیریتی است و شامل پروتکل دست دادن، پروتکل تغییر مشخصات رمزکننده و پروتکل هشدار است. SSL اجازه می دهد که بین کلاینت و سرور یک جلسه ایجاد شود و از آن طریق هر تعداد اتصال امن امکان پذیر باشد. از نظر تئوری بین یک کلاینت و یک سرور می تواند بیش از یک جلسه وجود داشته باشد و در عمل فقط یک جلسه به وجود می آید.{{سخ}}▼
▲روش توافق کلید
یک جلسه توسط پروتکل دست دادن ایجاد می شود و مجموعه ای از پارامترهای امنیتی را تعریف می کند که به صورت اشتراکی در اتصالات مربوط به آن جلسه استفاده می شوند. برای هر جلسه و هر اتصال به یک سری پارامترها نیاز است.▼
▲لایه سوکت امن (SSL) توسط Netscape طراحی شد و نسخه
▲یک جلسه توسط پروتکل دست دادن ایجاد
=== پروتکل رکورد در SSL ===
این پروتکل مربوط به لایه اول SSL است که دو سرویس محرمانگی و احرازهویت را
* قطعه قطعه کردن: داده کاربر
* فشرده سازی: SSL دارای یک الگوریتم فشرده سازیست که در نسخه
* کد احرازاصالت پیام
* رمزگذاری: قطعه فشرده شده به همراه MAC رمز
* سرآیند: سرآیند به ابتدای قطعه رمزشده می چسپد.
=== پروتکل تغییر مشخصات رمز در SSL ===
این پروتکل
=== پروتکل هشدار در SSL ===
این پروتکل به منظور اعلام هشدارهای
# نوع خطا که
# کد خطا مانند پیغام
اگر خطا ز نوع Fatal باشد، اتصال مذکور فوراً قطع
=== پروتکل دست دادن در SSL ===
این عمل به منظور احرازاصالت دوطرف و توافق روی
==== مرحله ۱: برقراری قابلیتهای امنیتی ====
این مرحله به منظور آغاز یک اتصال منطقی برای معین کردن ==== مرحله
در این مرحله حداکثر
در این مرحله 3 پیام از کلاینت به سرور ارسال می شودکه فقط یکی از آنها اجباری است.▼
==== مرحله
در این مرحله طرفین با ارسال مشخصات رمزکننده وضعیت جدید رمز خود را اطلاع می دهند و سپس با ارسال پیام پایانی، پروتکل دست دادن را پایان میدهند.▼
==== مرحله ۴: پایان ====
▲در این مرحله طرفین با ارسال مشخصات رمزکننده وضعیت جدید رمز خود را اطلاع
== امنیت ==
برای بهرهمندی از این پروتکل، سرویسدهنده و سرویسگیرنده با یکدیگر یک قرارداد تبادلی اطلاعات را مذاکره میکنند. در این مذاکرات، سرویسدهنده و سرویسگیرنده بر سر پارامترهای مختلفی که برای برقراری امنیت مورد نیاز است، به توافق میرسند.
|