خانه وبلاگ متفرقه آشنایی با پروتکل امنیتی SSL

آشنایی با پروتکل امنیتی SSL

وبلاگ - متفرقه

امروزه با توجه به گستردگی و سهولت استفاده از مرورگرها و خدمات وب، امنیت وب از اهمیت بالایی برخوردار می باشد. با توجه به ضعف های امنیتی موجود در پروتکل های استادارد TCP/IP، نیاز به یک پروتکل امن احساس می شود تا تامین امنیت ارتباطات را بر عهده بگبرد. پروتکل SSL برای افزایش امنیت ارتباطات در پروتکل TCP/IP طراحی شده است. این پروتکل اجازه رمزنگاری محتوای ارتباطات و تایید هویت سرویس دهنده را فراهم می کند. در این مقاله قصد داریم تا چزئیات این پروتکل و نحوه پیاده سازی آن در پروتکل TCP/IP را بیان کنیم.

 

تاریخچه پروتکل SSL:

اولین نسخه پروتکل SSL توسط شرکت Netscape در جولای سال 1994 طراحی گردید اما این نسخه (SSL1.0) هیچ گاه انتشار پیدا نکرد و مورد استفاده قرار نگرفت. در دسامبر سال 1994 مرورگر Netscape به همراه پروتکل SSL2.0 به بازار عرضه گردید، اما به دلیل کم بون طول کلید استفاده شده در آن بسیار آسیب پذیر بود به طوری که کمتر از یک ساعت مهاجمان می توانستند به آن نفوذ کنند! در نوامبر سال 1995 شرکت netscape نسخه جدید SSL3.0 که داری تغییرات عمده و جهش بزرگ نسبت به نسخه های قبلی همراه بود(دارای قابلیت Backward Compatible بود)، منتشر کرد. در می سال 1996 IETF گروه کاری TSL را تشکیل داد و مسئولیت پاسخگویی به مشکلات SSL را بر عهده گرفت. در نهایت در ژانویه سال 1999، TSL1.0 به شکل رسمی همراه با استاندارد RFC 2246 به بازار عرضه گردید. در واقع TSL1.0، همان SSL v3.1 بود که به دلایل تجاری تغییر نام داده بود.

 

 

 

کاربردهای پروتکل SSL

 

پروتکل SSL نیازمندی های امنیتی زیر را فراهم می کند

1. محرمانگی (confidentiality): منظور از محرمانگی این می باشد که محتوای پیام های ارسالی که در بستر شبکه اینرنت و در قالب بسته های شبکه ای، از شنود مهاجمان در امان باشد. پروتکل SSL با انجام رمزنگاری متقارن بر روی محتویات بسته های ارسالی در شبکه، محرمانگی پیام ها را تضمین می کند.

2. صحت داده(Data Integrity): منظور از صحت داده این می باشد که محتوای پیام ها در زمان مبادله در بستر شبکه اینترنت دستخوش تغییر یا تحریف توسط مهاجمان قرار گرفته نباشد و محتوای پیام دریافت شده دقیقا همان محتوایی باشد که فرستنده آن را ارسال کرده است.پروتکل SSL از طریق کد احراز هویت داده (MAC)، صحت پیام ها را تمین می کند.

3. احراز هویت (authentication): احراز هویت به معنای این می باشد که هویت فرستنده پیام تایید شود یا به عبارت دیگر تایید شود که فرستنده پیام همان کسی است که ادعا می کند پیام را فرستاده است. اگر بخواهیم به شکل کاربردی این عبارت را تفسیر کنیم یعنی هویت یک سایت توسط پروتکل کاملا تایید شود و وب سایت مورد نظر یک سایت جعلی(fake) نباشد که خود را جای وب سایت دیگر جا زده است. پروتکل SSL با استفاده از استاندارد x.509 احراز هویت را تضمین می کند.

پروتکل های موجود در لایه کاربرد شبکه نظیر پروتکل های HTTP و IMAP و ... ارتباطات امن و رمزنگاری شده را پشتیانی نمی کنند و اساسا پروتکل SSL برای امن کردن پروتکل های ناامن موجود در پروتکل TCP/IP طراحی گردید. امروزه مهمترین کاربرد این پروتکل در قرارداد HTTPS می باشد. پروتکل SSL یک سرویس قابل اطمینان انتها به انتها (end to end) مبتنی بر پروتکل TCP می باشد. این پروتکل در دو لایه شبکه (استاندارد TCP/IP) پیاده سازی می شود. لایه اول بالای لایه انتقال (transport) و لایه دوم در لایه کاربرد(Application) می باشد. لایه اول شامل پروتکل Record و لایه دوم مربوط به سرویس های مدیریتی می باشد.  جایگاه SSL در پروتکل TCP/IP در ادامه وظایف هر کدام از پروتک های به کار رفته در SSL شامل پروتکل های SSL Record ، SSL HandShake ,SSL Change Cipher Spec و SSL Alert را شرح می دهیم.

 

پروتکل SSL Record Protocol:

 

این پروتکل دو سرویس برای پروتکل SSL فراهم می کند که عبارتند از:

1. محرمانگی: استفاده از یکی از الگوریتم های متقارن رمزنگاری IDEA ، RC2-40 ، DES-40 ، DES ، 3DES ، Fortezza ، RC4-40 ، RC4-128 که کلید مخفی این الگوریتم ها توسط پروتکل Hanshake بین طرفین به اشتراک گذاشته می شود.

2. صحت پیغام: با استفاده از کلید متقارن مخفی به اشتراک گذاشته شده تولید MAC می کند (MAC برای تایید اصالت پیام به کاار می رود که بر حسب تابعی از کلید و پیام تولید می شود) و همچنین با استفاده از الگوریتم های هش SHA1 یا MD5 پیام ها را هش می کند.

توجه شود که وظایف تولید و توزیع کلیدهای متقارن برای انجام عملیات رمزنگاری مرسوم بر عهده پروتکل Handshake می باشد. اعمالی که در پروتکل SSL Record انجام می شنود عبارتند از :

1- قطعه بندی

2- فشرده سازی

3- تولید MAC

4- رمز نگاری

5- اضافه کردن سرآیند

 

پروتکل Change Cipher Spec :

 

این پروتکل شامل یک بایت می باشد که منجر به نوشته شدن مشخصات رمزنگاری معلق(Pending ) به جای مشخصات فعلی می شود.

 

پروتکل SSL Alert:

 

این پروتکل برای رد و بدل کردن پیام ها بین طرفین استفاده می شود نمونه ای از این پیام ها عبارتند از: unexpected message, bad record mac,decompression failure, handshake failure

 

پروتکل SSL HandShake:

 

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


پروتکل SSL HandShake شامل 4 فاز اصلی می باشد که عبارتست از :

1- مشخص کردن قابلیت های رمزنگاری دو طرف: این فاز با ارسال پیام Hello توسط کارفرما (client) به کارگذار (Server)اغاز می گردد در این پیام کارفرما پیشنهاد نسخه قرارد داد (آخرین نسخه پشتیبانی شده توسط کارفرما )، پیشنهاد الگوریتم مناسب و روش تبادل کلید آن ها، پیشنهاد مکانسیم فشرده سازی مناسب و انتخاب نسخه و الگوریتم های مورد قبول کارگذار را قرار می دهد. کارگذار با دریافت پیام Hello و بررسی آن در صورت تایید با درست کردن یک پیام جدید دیگر به نام Hello و ارسال آن به کارفرما پاسخ می دهد.

2- احراز هویت کارگذار (Server) به کار فرما (Client) و مبادله کلید های آن

3- احراز هویت کار فرما (Client) به کارگذار (Server) و مبادله کلید های آن

4- جایگذاری پارامتر های رمزنگاری جدید به جای قبلی و خاتمه توافق

فازهای پروتکل SSL HandShake در شکل زیر نمایش داده شده است.

آشنایی با پروتکل امنیتی SSL

 

نظرات 

 
+2 #1 سیو کار 1393-06-07 20:03
ba arze salam
az matalebeton vaghean khoshaam omad va baraton arezoye movafaghiat daraam
 

به علت ارسال اسپم های فراوان، قسمت نظرات سایت در حال حاضر غیرفعال می باشد.
به این دلیل از شما کاربران گرامی عذرخواهی می کنیم.

ایمن شده بوسیله وب سایت تک وب دیزاین تک وب دیزاین