با دوره ی آموزش امنیت شبکه (Network Security) از وبسایت پی وی لرن همراه هستیم.
در جلسه سوم قصد داریم در مورد از سرگیری session قطع شده ، مقایسه پروتکل های TLS و SSL ، کلیدهای SSL Session و غیره صحبت کنیم. با از سرگیری session قطع شده مبحث رو آغاز می کنیم.
اگر کلاینت hello_request را به سرور همراه با اطلاعات session_id رمزگذاری شده ارسال کند، امکان از سرگیری جلسه قطع شده (از طریق پیام Alert ) وجود دارد.
سپس سرور تعیین می کند که آیا session_id معتبر است یا خیر. در صورت معتبر بودن، اکسچنج می کند ChangeCipherSpec و پیام های تمام شده با مشتری را و ارتباطات امن را از سر می گیرد.
این امر از محاسبه مجدد پارامترهای session cipher و ذخیره محاسبات در سرور و پایان کلاینت جلوگیری می کند.
دیدیم که در مرحله ۳ از ایجاد SSL Session ، یک pre-master secret توسط کلاینت برای سرور رمزگذاری شده با استفاده از کلید عمومی سرور ارسال می شود.
کلیدهای مختلف master secret و session به شرح زیر تولید می شوند:
master secret با استفاده از (تولید شماره تصادفی کاذب) روش های پایین تولید می شود:
سپس شش مقدار secret از این master secret به دست آمده است:
به منظور تهیه استاندارد اینترنت SSL باز، IETF پروتکل (Transport Layer Security (TLS را در ژانویه ۱۹۹۹ منتشر کرد.
TLS به عنوان یک استاندارد اینترنتی پیشنهادی در RFC 5246 تعریف شده است.
در این قسمت مقایسه پروتکل های TLS و SSL رو داریم.
هشت تفاوت اصلی بین پروتکل های TLS و SSLv3 وجود دارد. این موارد به شرح زیر است.
هدر بخش پروتکل TLS دارای نسخه شماره ۳٫۱ می باشد تا بین شماره ۳ انجام شده توسط هدر بخش پروتکل SSL تفاوت قائل شود.
TLS از (hash message authentication code (H-MAC استفاده می کند. فایده آن این است که H-MAC با هر عملکرد هش ، نه فقط MD5 یا SHA عمل می کند.
برای تولید key دو تفاوت بین پروتکل TLS و SSL وجود دارد.
۱٫ روش محاسبه pre-master و master secrets مشابه هستند. اما در پروتکل TLS ، محاسبه master secret از خروجی استاندارد HMAC و عملکرد شبه تصادفی (PRF) به جای ad-hoc MAC استفاده می کند.
۲٫ الگوریتم محاسبه کلیدهای session و مقادیر شروع (IV) در TLS نسبت به پروتکل SSL متفاوت است.
پروتکل TLS از تمام پیام های استفاده شده توسط پروتکل SSL Alert پشتیبانی می کند، به جز این که هیچ پیام certificate alert دیگری اضافه نشده است. کلاینت در صورت عدم نیاز به تأیید اعتبار مشتری ، certificate خالی می فرستد.
بسیاری از پیام های Alert اضافی در پروتکل TLS برای سایر شرایط خطا مانند record_overflow ، decode_error و غیره درج شده است.
اس اس ال -SSL از مجموعه های RSA, Diffie-Hellman و Fortezza cipher پشتیبانی می کند. پروتکل TLS از همه درخواست ها به جز Fortezza پشتیبانی می کند.
TLS انواع گواهینامه ها را که باید در یک پیام certificate_request تعریف می کند. SSLv3 از همه این ها پشتیبانی می کند. علاوه بر این ، SSL از برخی دیگر از گواهینامه ها مانند Fortezza نیز پشتیبانی می کند.
در SSL از روال پیام پیچیده برای پیام cert_verify استفاده می شود. با استفاده از TLS ، اطلاعات تأیید شده در پیام های handshake موجود است که از این روش پیچیده جلوگیری می کند.
پیام نهایی در روش های مختلف در TLS و SSLv3 محاسبه می شود.
در پروتکل اس اس ال، padding اضافه شده به داده های کاربر قبل از رمزگذاری حداقل مقدار لازم برای اندازه گیری کل داده برابر با چند برابر طول بلوک cipher است. در TLS ، می تواند padding هر مقداری باشد که منجر به اندازه داده شود و
چندین برابر طول بلوک cipher باشد ، حداکثر ۲۵۵ بایت.
تفاوت های فوق بین پروتکل های TLS و SSLv3 در جدول زیر خلاصه شده است.
با مقایسه پروتکل های TLS و SSL و از سرگیری session قطع شده این جلسه رو به پایان می رسونیم
مقایسه پروتکل های TLS و SSL و از سرگیری session قطع شده رو مورد بررسی قرار دادیم.
در قسمت بعد نیز مبحث امنیت لایه انتقال که منجر به امنیت شبکه خواهد شد رو بررسی می نماییم.