پروتکل امنیتی SSL

پروتکل امنیتی SSL

SSL یا Secure Socket Layer راه حلى جهت برقرارى ارتباطات ایمن میان یک سرویس دهنده و یک سرویس گیرنده است که توسط شرکت Netscape ارایه شده است. در واقع SSL پروتکلى است که پایین تر از لایه کاربرد (لایه ۴ از مدل TCP/IP) و بالاتر از لایه انتقال (لایه سوم از مدل TCP/IP) قرار مى گیرد. مزیت استفاده از این پروتکل، بهره گیرى از موارد امنیتى تعبیه شده آن براى امن کردن پروتکل هاى غیرامن لایه کاربردى نظیر HTTP، LDAP، IMAP و... مى باشد که براساس آن الگوریتم هاى رمزنگارى بر روى داده هاى خام (plain text) که قرار است از یک کانال ارتباطى غیرامن مثل اینترنت عبور کنند، اعمال مى شود و محرمانه ماندن داده ها را در طول کانال انتقال تضمین مى کند.

به بیان دیگر شرکتى که صلاحیت صدور و اعطاى گواهى هاى دیجیتال SSL را دارد براى هر کدام از دو طرفى که قرار است ارتباطات میان شبکه اى امن داشته باشند، گواهى هاى مخصوص سرویس دهنده و سرویس گیرنده را صادر مى کند و با مکانیزم هاى احراز هویت خاص خود هویت هر کدام از طرفین را براى طرف مقابل تایید مى کند، البته غیر از این کار مى بایست تضمین کند که اگر اطلاعات حین انتقال مورد سرقت قرار گرفت، براى رباینده قابل درک و استفاده نباشد که این کار را با کمک الگوریتم هاى رمزنگارى و کلیدهاى رمزنگارى نامتقارن و متقارن انجام مى دهد.

 

ملزومات یک ارتباط مبتنى بر پروتکل امنیتى SSL

براى داشتن ارتباطات امن مبتنى بر SSL عموما به دو نوع گواهى دیجیتال SSL یکى براى سرویس دهنده و دیگرى براى سرویس گیرنده و یک مرکز صدور و اعطاى گواهینامه دیجیتال یا CA نیاز مى باشد. وظیفه CA این است که هویت طرفین ارتباط، نشانى ها، حساب هاى بانکى و تاریخ انقضاى گواهینامه را بداند و براساس آن ها هویت ها را تعیین نماید.

 

مکانیزم هاى تشکیل دهنده SSL

۱- تایید هویت سرویس دهنده

با استفاده از این ویژگى در SSL، یک کاربر از صحت هویت یک سرویس دهنده مطمئن مى شود. نرم افزارهاى مبتنى بر SSL سمت سرویس گیرنده، مثلا یک مرورگر وب نظیر Internet Explorer از تکنیک هاى استاندارد رمزنگارى مبتنى بر کلید عمومى و مقایسه با کلیدهاى عمومى یک سرویس دهنده، (مثلا یک برنامه سرویس دهنده وب نظیر IIS مى تواند از هویت او مطلع شود و پس از اطمینان کامل، کاربر مى تواند نسبت به وارد نمودن اطلاعات خود مانند شماره کارت هاى اعتبارى و یا گذرواژه ها اقدام نماید.

۲- تایید هویت سرویس گیرنده

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

۳- ارتباطات رمز شده

کلیه اطلاعات مبادله شده میان سرویس دهنده و گیرنده مى بایست توسط نرم افزارهاى موجود در سمت سرویس دهنده و سرویس گیرنده رمزنگارى (Encrypt) شده و در طرف مقابل رمزگشایى (Decrypt) شوند تا حداکثر محرمانگى (Confidentiality) در این گونه سیستم ها لحاظ شود.

 

اجزاى پروتکل SSL

پروتکل SSL داراى دو زیرپروتکل تحت عناوین زیر مى باشد:

۱- SSL Rocord Protocol که نوع قالب بندى داده هاى ارسالى را تعیین مى کند.

۲- SSL Handshake Protocol که براساس قالب تعیین شده در پروتکل قبلى، مقدمات ارسال داده ها میان سرویس دهنده ها و سرویس گیرنده هاى مبتنى بر SSL را تهیه مى کند.

بخش بندى پروتکل SSL به دو زیرپروتکل داراى مزایاى چندى است از جمله:

اول: در ابتداى کار و طى مراحل اولیه ارتباط (Handshake) هویت سرویس دهنده براى سرویس گیرنده مشخص مى گردد.

دوم: در همان ابتداى شروع مبادلات، سرویس دهنده و گیرنده بر سر نوع الگوریتم رمزنگارى تبادلى توافق مى کنند.

سوم: در صورت لزوم، هویت سرویس گیرنده نیز براى سرویس دهنده احراز مى گردد.

چهارم: در صورت استفاده از تکنیک هاى رمزنگارى مبتنى بر کلید عمومى، مى توانند کلیدهاى اشتراکى مخفى را ایجاد نمایند.

پنجم: ارتباطات بر مبناى SSL رمزنگارى مى شود.

 

الگوریتم هاى رمزنگارى پشتیبانى شده در SSL

در استاندارد SSL، از اغلب الگوریتم هاى عمومى رمزنگارى و مبادلات کلید (Key Exchcenge Algorithm) نظیرRSA, RC4, RC2,MD5, KEA, DSA, DES و RSA Key Exchauge، SHA-1،Skipjack و DES3 پشتیبانى مى شود و بسته به این که نرم افزارهاى سمت سرویس دهنده و سرویس دهنده نیز از موارد مذکور پشتیبانى نمایند، ارتباطات SSL مى تواند براساس هر کدام از این الگوریتم ها صورت پذیرد. البته بسته به طول کلید مورد استفاده در الگوریتم و قدرت ذاتى الگوریتم مى توان آن ها را در رده هاى مختلفى قرار داد که توصیه مى شود با توجه به سناریوهاى موردنظر، از الگوریتم هاى قوى تر نظیر DES3 با طول کلید ۱۶۸ بیت براى رمزنگارى داده ها و همچنین الگوریتم SHA-1 براى مکانیزم هاى تایید پیغام MD5 استفاده شود و یا این که اگر امنیت در این حد مورد نیاز نبود، مى توان در مواردى خاص از الگوریتم رمزنگارى RC4 با طول کلید ۴۰ بیت و الگوریتم تایید پیغام MD5 استفاده نمود.

 

 

 

 

نحوه عملکرد داخلى پروتکل SSL

همان طور که مى دانید SSL مى تواند از ترکیب رمزنگارى متقارن و نامتقارن استفاده کند. رمزنگارى کلید متقارن سریع تر از رمزنگارى کلید عمومى است و از طرف دیگر رمزنگارى کلید عمومى تکنیک هاى احراز هویت قوى ترى را ارایه مى کند. یک جلسه SSL (SSL Session) با یک تبادل پیغام ساده تحت عنوان SSL Handshake شروع مى شود. این پیغام اولیه به سرویس دهنده این امکان را مى دهد تا خودش را به سرویس دهنده داراى کلید عمومى معرفى نماید و سپس به سرویس گیرنده و سرویس دهنده این اجازه را مى دهد که یک کلید متقارن را ایجاد نمایند که براى رمزنگارى ها و رمزگشایى سریع تر در جریان ادامه مبادلات مورد استفاده قرار مى گیرد. گام هایى که قبل از برگزارى این جلسه انجام مى شوند براساس الگوریتم RSA Key Exchange عبارتند از:

۱- سرویس گیرنده، نسخه SSL مورد استفاده خود، تنظیمات اولیه درباره نحوه رمزگذارى و یک داده تصادفى را براى شروع درخواست یک ارتباط امن مبتنى بر SSL به سمت سرویس دهنده ارسال مى کند.

۲- سرویس دهنده نیز در پاسخ نسخه SSL مورد استفاده خود، تنظیمات رمزگذارى و داده تصادفى تولید شده توسط خود را به سرویس گیرنده مى فرستد و همچنین سرویس دهنده گواهینامه خود را نیز براى سرویس گیرنده ارسال مى کند و اگر سرویس گیرنده از سرویس دهنده، درخواستى داشت که نیازمند احراز هویت سرویس گیرنده بود، آن را نیز از سرویس گیرنده درخواست مى کند.

۳- سپس سرویس گیرنده با استفاده از اطلاعاتى که از سرویس دهنده مجاز در خود دارد، داده ها را بررسى مى کند و اگر سرویس دهنده مذکور تایید هویت شد، وارد مرحله بعدى مى شود و در غیر این صورت با پیغام هشدارى به کاربر، ادامه عملیات قطع مى گردد.

۴- سرویس گیرنده یک مقدار به نام Secret Premaster را براى شروع جلسه ایجاد مى کند و آن را با استفاده از کلید عمومى (که اطلاعات آن معمولا در سرویس دهنده موجود است) رمزنگارى مى کند و این مقدار رمز شده را به سرویس دهنده ارسال مى کند.

۵- اگر سرویس دهنده به گواهینامه سرویس گیرنده نیاز داشت مى بایست در این گام براى سرویس دهنده ارسال شود و اگر سرویس گیرنده نتواند هویت خود را به سرویس دهنده اثبات کند، ارتباط در همین جا قطع مى شود.

۶- به محض این که هویت سرویس گیرنده براى سرویس دهنده احراز شد، سرویس دهنده با استفاده از کلید اختصاصى خودش مقدار Premaster Secret را رمزگشایى مى کند و سپس اقدام به تهیه مقدارى به نام Master Secret مى نماید.

۷- هم سرویس دهنده و هم سرویس گیرنده با استفاده از مقدار Master Secret کلید جلسه (Session Key) را تولید مى کنند که در واقع کلید متقارن مورد استفاده در عمل رمزنگارى و رمزگشایى داده ها حین انتقال اطلاعات است و در این مرحله به نوعى جامعیت داده ها بررسى مى شود.

۸- سرویس گیرنده پیغامى را به سرویس دهنده مى فرستد تا به او اطلاع دهد، داده بعدى که توسط سرویس گیرنده ارسال مى شود به وسیله کلید جلسه رمزنگارى خواهد شد و در ادامه، پیغام رمز شده نیز ارسال مى شود تا سرویس دهنده از پایان یافتن Handshake سمت سرویس گیرنده مطلع شود.

۹- سرویس دهنده پیغامى را به سرویس گیرنده ارسال مى کند تا او را از پایان Handshake سمت سرویس دهنده آگاه نماید و همچنین این که داده بعدى که ارسال خواهد شد توسط کلید جلسه رمز مى شود.

۱۰- در این مرحله SSL Handshake تمام مى شود و از این به بعد جلسه SSL شروع مى شود و هر دو عضو سرویس دهنده و گیرنده شروع به رمزنگارى و رمزگشایى و ارسال داده ها مى کنند.

 

نمایش قفل امنیت SSL

پیچیده گیهای یک پروتکل SSL برای کاربران شما پوشیده است لیکن مرورگر اینترنت آنها در صورت برقراری ارتباط امن , وجود این ارتباط را توسط نمایش یک قفل کوچک در پایین صفحه متذکر میشود.

کلیک برروی قفل کوچک باعث نمایش گواهینامه شما به همراه سایر جزئیات میشود.

گواهینامه های SSL تنها برای شرکتها و اشخاص حقیقی معتبر صادر میشوند. به طور مثال یک گواهینامه SSL شامل اطلاعاتی در مورد دامین , شرکت , آدرس , شهر , استان , کشور و تاریخ ابطال گواهینامه و همینطور اطلاعاتی در مورد مرکز صدور گواهینامه که مسؤول صدور گواهینامه میباشد.

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

 

/ 1 نظر / 17 بازدید
طنین سکوت

ممنونم از اطلاعات کاملی که ارائه کردید . پیروز باشید