دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۴
  • شهریور

جلسه ۰۳-۰۳ : لایه Transport – امنیت شبکه

  • دسته‌بندی‌ها :
جلسه ۰۳-۰۳ : لایه Transport – امنیت شبکه
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با دوره ی آموزش امنیت شبکه (Network Security) از وبسایت پی وی لرن همراه هستیم.
      در جلسه سوم قصد داریم در مورد از سرگیری session قطع شده ، مقایسه پروتکل های TLS و SSL ، کلیدهای SSL Session و غیره صحبت کنیم. با از سرگیری session قطع شده مبحث رو آغاز می کنیم.

      بررسی امنیت لایه Transport

      از سرگیری session قطع شده

      اگر کلاینت hello_request را به سرور همراه با اطلاعات session_id رمزگذاری شده ارسال کند، امکان از سرگیری جلسه قطع شده (از طریق پیام Alert ) وجود دارد.

      سپس سرور تعیین می کند که آیا session_id معتبر است یا خیر. در صورت معتبر بودن، اکسچنج می کند ChangeCipherSpec و پیام های تمام شده با مشتری را و ارتباطات امن را از سر می گیرد.

      این امر از محاسبه مجدد پارامترهای session cipher و ذخیره محاسبات در سرور و پایان کلاینت جلوگیری می کند.

      کلیدهای SSL Session

      دیدیم که در مرحله ۳ از ایجاد SSL Session ، یک pre-master secret توسط کلاینت برای سرور رمزگذاری شده با استفاده از کلید عمومی سرور ارسال می شود.

      کلیدهای مختلف master secret و session به شرح زیر تولید می شوند:

      master secret با استفاده از (تولید شماره تصادفی کاذب) روش های پایین تولید می شود:

      • pre-master secret
      • دو (nonces (RA and RB در پیام های client_hello و server_hello رد و بدل شدند.

      سپس شش مقدار secret از این master secret به دست آمده است:

      • کلید مخفی یا Secret key استفاده شده با MAC (برای داده های ارسال شده توسط سرور)
      • کلید مخفی استفاده شده با MAC (برای اطلاعات ارسال شده توسط مشتری)
      • کلید مخفی و IV مورد استفاده برای رمزگذاری (توسط سرور)
      • کلید مخفی و IV مورد استفاده برای رمزگذاری (توسط مشتری)

      پروتکل TLS

      به منظور تهیه استاندارد اینترنت SSL باز، IETF پروتکل (Transport Layer Security (TLS را در ژانویه ۱۹۹۹ منتشر کرد.

      TLS به عنوان یک استاندارد اینترنتی پیشنهادی در RFC 5246 تعریف شده است.

      خصوصیات برجسته

      • پروتکل TLS همان اهداف SSL را دارد.
      • برنامه های مشتری / سرور را قادر می سازد تا با احراز هویت ، جلوگیری از استراق سمع و مقاومت در برابر تغییر پیام ، به شیوه ای ایمن ارتباط برقرار کنند.
      • پروتکل TLS بالاتر از لایه transport TCP مبتنی بر ارتباط قابل اعتماد در پشته لایه های شبکه قرار دارد.
      • معماری پروتکل TLS مشابه پروتکل SSLv3 است. در آن دو زیر پروتکل وجود دارد: پروتکل TLS Record و پروتکل TLS Handshake.
      • اگرچه پروتکل SSLv3 و TLS از معماری مشابهی برخوردار هستند ، اما چندین تغییر در معماری و عملکرد به ویژه در پروتکل handshake ایجاد شده است.

      مقایسه پروتکل های TLS و SSL

      در این قسمت مقایسه پروتکل های TLS و SSL رو داریم.

      هشت تفاوت اصلی بین پروتکل های TLS و SSLv3 وجود دارد. این موارد به شرح زیر است.

      • ورژن پروتکل

      هدر بخش پروتکل TLS دارای نسخه شماره ۳٫۱ می باشد تا بین شماره ۳ انجام شده توسط هدر بخش پروتکل SSL تفاوت قائل شود.

      • احراز هویت پیام

      TLS از (hash message authentication code (H-MAC استفاده می کند. فایده آن این است که H-MAC با هر عملکرد هش ، نه فقط MD5 یا SHA عمل می کند.

      • Session Key Generation

      برای تولید key دو تفاوت بین پروتکل TLS و SSL وجود دارد.

      ۱٫ روش محاسبه pre-master و master secrets مشابه هستند. اما در پروتکل TLS ، محاسبه master secret از خروجی استاندارد HMAC و عملکرد شبه تصادفی (PRF) به جای ad-hoc MAC استفاده می کند.

      ۲٫ الگوریتم محاسبه کلیدهای session و مقادیر شروع (IV) در TLS نسبت به پروتکل SSL متفاوت است.

      • پیام پروتکل Alert

      پروتکل TLS از تمام پیام های استفاده شده توسط پروتکل SSL Alert پشتیبانی می کند، به جز این که هیچ پیام certificate alert دیگری اضافه نشده است. کلاینت در صورت عدم نیاز به تأیید اعتبار مشتری ، certificate خالی می فرستد.

      بسیاری از پیام های Alert اضافی در پروتکل TLS برای سایر شرایط خطا مانند record_overflow ، decode_error و غیره درج شده است.

      • پشتیبانی از Cipher Suites

      اس اس ال -SSL از مجموعه های RSA, Diffie-Hellman و Fortezza cipher پشتیبانی می کند. پروتکل TLS از همه درخواست ها به جز Fortezza پشتیبانی می کند.

      • انواع گواهینامه های کلاینت

      TLS انواع گواهینامه ها را که باید در یک پیام certificate_request تعریف می کند. SSLv3 از همه این ها پشتیبانی می کند. علاوه بر این ، SSL از برخی دیگر از گواهینامه ها مانند Fortezza نیز پشتیبانی می کند.

      • CertificateVerify و Finished Messages

      در SSL از روال پیام پیچیده برای پیام cert_verify استفاده می شود. با استفاده از TLS ، اطلاعات تأیید شده در پیام های handshake موجود است که از این روش پیچیده جلوگیری می کند.

      پیام نهایی در روش های مختلف در TLS و SSLv3 محاسبه می شود.

      • Padding of Data

      در پروتکل اس اس ال، padding اضافه شده به داده های کاربر قبل از رمزگذاری حداقل مقدار لازم برای اندازه گیری کل داده برابر با چند برابر طول بلوک cipher است. در TLS ، می تواند padding هر مقداری باشد که منجر به اندازه داده شود و

      چندین برابر طول بلوک cipher باشد ، حداکثر ۲۵۵ بایت.

      تفاوت های فوق بین پروتکل های TLS و SSLv3 در جدول زیر خلاصه شده است.

       

      تفاوت های بین پروتکل های TLS و SSLv3

      تفاوت های بین پروتکل های TLS و SSLv3

      با مقایسه پروتکل های TLS و SSL و از سرگیری session قطع شده این جلسه رو به پایان می رسونیم

       کلام پایانی

      مقایسه پروتکل های TLS و SSL و از سرگیری session قطع شده رو مورد بررسی قرار دادیم.

      در قسمت بعد نیز مبحث امنیت لایه انتقال که منجر به امنیت شبکه خواهد شد رو بررسی می نماییم.

      QR:  جلسه ۰۳-۰۳ : لایه Transport – امنیت شبکه
      به اشتراک بگذارید