SSL چيست؟
(SSL يا Secure Socket Layer) راهحلي جهت برقراري ارتباطات ايمن ميان يك سرويسدهنده و يك سرويسگيرنده است كه توسط شركت Netscape ارايه شده است. در واقع SSL پروتكلي است كه پايينتر از لايه كاربرد (لايه 4 از مدل TCP/IP) و بالاتر از لايه انتقال (لايه سوم از مدل TCP/IP) قرار ميگيرد. (شكل 1)
مزيت استفاده از اين پروتكل بهرهگيري از موارد امنيتي تعبيه شده آن براي امن كردن پروتكلهاي غيرامن لايه كاربردي نظيرHTTP ،LDAP ،IMAP و... ميباشد كه براساس آن الگوريتمهاي رمزنگاري بر روي دادههاي خام (plain text) كه قرار است از يك كانال ارتباطي غيرامن مثل اينترنت عبور كنند، اعمال ميشود و محرمانه ماندن دادهها را در طول كانال انتقال تضمين ميكند.
به بيان ديگر شركتي كه صلاحيت صدور و اعطاء گواهيهاي ديجيتال SSL را دارد براي هر كدام از دو طرفي كه قرار است ارتباطات ميان شبكهاي امن داشته باشند، گواهيهاي مخصوص سرويسدهنده و سرويسگيرنده را صادر ميكند و با مكانيزمهاي احراز هويت خاص خود، هويت هر كدام از طرفين را براي طرف مقابل تأييد ميكند، البته غير از اينكار ميبايست تضمين كند كه اگر اطلاعات حين انتقال مورد سرقت قرار گرفت، براي رباينده قابل درك و استفاده نباشد كه اينكار را با كمك الگوريتمهاي رمزنگاري و كليدهاي رمزنگاري نامتقارن و متقارن انجام ميدهد.
ملزومات يك ارتباط مبتني بر پروتكل امنيتي SSL
براي داشتن ارتباطات امن مبتني بر SSL عموماً به دو نوع گواهي ديجيتال SSL يكي براي سرويسدهنده و ديگري براي سرويسگيرنده و يك مركز صدور و اعطاي گواهينامه ديجيتال يا CA نياز ميباشد. وظيفه CA اين است كه هويت طرفين ارتباط، نشانيها، حسابهاي بانكي و تاريخ انقضاي گواهينامه را بداند و براساس آنها هويتها را تعيين نمايد.
مكانيزمهاي تشكيلدهنده SSL
1- تأييد هويت سرويسدهنده
با استفاده از اين ويژگي در SSL، يك كاربر از صحت هويت يك سرويسدهنده مطمئن ميشود. نرمافزارهاي مبتني بر SSL سمت سرويسگيرنده (مثلاً يك مرورگر وب نظيرInternet Explerer از تكنيكهاي استاندارد رمزنگاري مبتني بر كليد عمومي و مقايسه با كليدهاي عمومي يك سرويسدهنده (مثلاً يك برنامه سرويسدهنده وب نظير (IIS ميتواند از هويت او مطلع شود و پس از اطمينان كامل، كاربر ميتواند نسبت به وارد نمودن اطلاعات خود مانند شماره كارتهاي اعتباري و يا گذرواژهها اقدام نمايد.
2- تأييد هويت سرويسگيرنده
برعكس حالت قبلي در اينجا سرويسدهنده است كه ميبايست از صحت هويت سرويسگيرنده اطمينان يابد. طي اين مكانيزم، نرمافزار مبتني بر SSL سمت سرويسدهنده پس از مقايسه نام سرويسگيرنده با نامهاي مجاز موجود در ليست سرويسگيرندههاي مجاز كه در داخل سرويسدهنده تعريف ميشود و در صورت وجود، اجازه استفاده از سرويس هاي مجاز را به او ميدهد.
3- ارتباطات رمز شده
كليه اطلاعات مبادله شده ميان سرويسدهنده و گيرنده ميبايست توسط نرمافزارهاي موجود در سمت سرويسدهنده و سرويسگيرنده رمزنگاري (Encrypt) شده و در طرف مقابل رمزگشايي (Decrypt) شوند تا حداكثر محرمانگي (Confidentiality) در اينگونه سيستمها لحاظ شود.
اجزاي پروتكل SSL
پروتكل SSL داراي دو زير پروتكل تحت عناوين زير ميباشد.
1- SSL Rocord Protocol كه نوع قالببندي دادههاي ارسالي را تعيين ميكند.
2- SSL Handshake Protocol كه براساس قالب تعيين شده در پروتكل قبلي، مقدمات ارسال دادهها ميان سرويسدهندهها و سرويسگيرندههاي مبتني بر SSL را تهيه ميكند.
بخشبندي پروتكل SSL به دو زير پروتكل داراي مزاياي چندي است. از جمله:
اول: در ابتداي كار و طي مراحل اوليه ارتباط (Handshake) هويت سرويسدهنده براي سرويسگيرنده مشخص ميگردد.
دوم: در همان ابتداي شروع مبادلات، سرويسدهنده و گيرنده بر سر نوع الگوريتم رمزنگاري تبادلي توافق ميكنند.
سوم: در صورت لزوم، هويت سرويس گيرنده نيز براي سرويسدهنده احراز ميگردد.
چهارم: در صورت استفاده از تكنيكهاي رمزنگاري مبتني بر كليد عمومي، ميتوانند كليدهاي اشتراكي مخفي را ايجاد نمايند.
پنجم: ارتباطات بر مبناي SSL رمزنگاري ميشوند.
الگوريتمهاي رمزنگاري پشتيباني شده درSSL
در استانداردSSL ، از اغلب الگورتيمهاي عمومي رمزنگاري و مبادلات كليد (Key Exchcenge Algorithm) نظير DES ،DSA ،KEA ، MD5، RC2،RC4، RSA و RSA Key Exchauge ،SHA-1 ،Skipjack و 3DES پشتيباني ميشود و بسته به اينكه نرمافزارهاي سمت سرويسدهنده و سرويسدهنده نيز از موارد مذكور پشتيباني نماييد، ارتباطاتSSL ميتواند براساس هر كدام اين از الگوريتمها صورت پذيرد. البته بسته به طول كليد مورد استفاده در الگوريتم و قدرت ذاتي الگوريتم ميتوان آنها را در ردههاي مختلفي قرار دارد كه توصيه ميشود با توجه به سناريوهاي موردنظر، از الگوريتمهاي قويتر نظير 3DES با طول كليد 168 بيت براي رمزنگاري دادهها و همچنين الگوريتم 1-SHA براي مكانيزمهاي تأييد پيغام 5 MD استفاده شود و يا اينكه اگر امنيت در اين حد موردنياز نبود، ميتوان در مواردي خاص از الگوريتم رمزنگاري 4 RC با طول كليد 40 بيت و الگوريتم تأييد پيغام 5 MD استفاده نمود. (شكل 2 )
نحوه عملكرد داخلي پروتكلSSL
همانطور كه ميدانيد SSL ميتواند از تركيب رمزنگاري متقارن و نامتقارن استفاده كند. رمزنگاري كليد متقارن سريعتر از رمزنگاري كليدعمومي است و از طرف ديگر رمزنگاري كليد عمومي تكنيكهاي احراز هويت قويتري را ارايه ميكند. يك جلسه SSL Session) SSL) با يك تبادل پيغام ساده تحت عنوان SSL Handshake شروع ميشود. اين پيغام اوليه به سرويسدهنده اين امكان را ميدهد تا خودش را به سرويسدهنده داراي كليد عمومي معرفي نمايد و سپس به سرويسگيرنده و سرويسدهنده اين اجازه را ميدهد كه يك كليد متقارن را ايجاد نمايند كه براي رمزنگاريها و رمزگشايي سريعتر در جريان ادامه مبادلات مورد استفاده قرار ميگيرد. گامهايي كه قبل از برگزاري اين جلسه انجام ميشوند براساس الگوريتم RSA Key Exchange عبارتند از:
1- سرويسگيرنده، نسخه SSL مورد استفاده خود، تنظيمات اوليه درباره نحوه رمزگذاري و يك داده تصادفي را براي شروع درخواست يك ارتباط امن مبتني بر SSL به سمت سرويسدهنده ارسال ميكند.
2- سرويسدهنده نيز در پاسخ نسخه SSL مورد استفاده خود، تنظيمات رمزگذاري و داده تصادفي توليد شده توسط خود را به سرويسگيرنده ميفرستد و همچنين سرويسدهنده گواهينامه خود را نيز براي سرويسگيرنده ارسال ميكند و اگر سرويسگيرنده از سرويسدهنده، درخواستي داشت كه نيازمند احراز هويت سرويسگيرنده بود، آن را نيز از سرويسگيرنده درخواست ميكند.
3- سپس سرويسگيرنده با استفاده از اطلاعاتي كه از سرويسدهنده مجاز در خود دارد، دادهها را بررسي ميكند و اگر سرويسدهنده مذكور تأييد هويت شد، وارد مرحله بعدي ميشود و در غيراينصورت با پيغام هشداري به كاربر، ادامه عمليات قطع ميگردد.
4- سرويسگيرنده يك مقدار به نام Premaster Secret را براي شروع جلسه ايجاد ميكند و آن را با استفاده از كليد عمومي (كه اطلاعات آن معمولاً در سرويسدهنده موجود است) رمزنگاري ميكند و اين مقدار رمز شده را به سرويسدهنده ارسال ميكند.
5- اگر سرويسدهنده به گواهينامه سرويسگيرنده نياز داشت ميبايست در اين گام براي سرويسدهنده ارسال شود و اگر سرويسگيرنده نتواند هويت خود را به سرويسدهنده اثبات كند، ارتباط در همينجا قطع ميشود.
6- به محض اينكه هويت سرويسگيرنده براي سرويسدهنده احراز شد، سرويسدهنده با استفاده از كليد اختصاصي خودش مقدار Premaster Secret را رمزگشايي ميكند و سپس اقدام به تهيه مقداري به نام Master Secret مينمايد.
7- هم سرويسدهنده و هم سرويسگيرنده با استفاده از مقدار master Secret كليد جلسه (Session Key) را توليد ميكنند كه در واقع كليد متقارن مورد استفاده در عمل رمزنگاري و رمزگشايي دادهها حين انتقال اطلاعات است و در اين مرحله به نوعي جامعيت دادها بررسي ميشود.
8- سرويسگيرنده پيغامي را به سرويسدهنده ميفرستد تا به او اطلاع دهد، داده بعدي كه توسط سرويسگيرنده ارسال ميشود به وسيله كليد جلسه رمزنگاري خواهد شد و در ادامه، پيغام رمز شده نيز ارسال ميشود تا سرويسدهنده از پايان يافتن Handshake سمت سرويسگيرنده مطلع شود.
9- سرويسدهنده پيغامي را به سرويسگيرنده ارسال ميكند تا او را از پايان Handshake سمت سرويسدهنده آگاه نمايد و همچنين اينكه داده بعدي كه ارسال خواهد شد توسط كليد جلسه رمز ميشود.
10- در اين مرحله SSL Handshake تمام ميشود و از اين به بعد جلسه SSL شروع ميشود و هر دو عضو سرويسدهنده و گيرنده شروع به رمزنگاري و رمزگشايي و ارسال دادهها ميكنند. (همانند شكل 2)
حملات تأثيرگذار برSSL SSL نيز از حملات و نفوذهاي مختلف در امان نيست. بعضي از حملات متداولي كه براين پروتكل واقع ميشود عبارتند ازTraffic Analysis : يا تحليل ترافيك، حملاتCut ِPaste بلووين، حملات Certification Injection و حملات از نوع Man in the middle.
بر گرفته شده از: ماهنامه شبکه
گردآونده:طه-Borna66