Saturday 28 March 2015 ساعت 02:26 AM
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 Record Protocol كه نوع قالببندی دادههای ارسالی را تعیین میكند.
۲) SSL Handshake Protocol كه براساس قالب تعیین شده در پروتكل قبلی، مقدمات ارسال دادهها میان سرویسدهندهها و سرویسگیرندههای مبتنی بر SSL را تهیه میكند.
بخشبندی پروتكل SSL به دو زیر پروتكل دارای مزایای چندی است. از جمله:
▪ اول: در ابتدای كار و طی مراحل اولیه ارتباط (Handshake) هویت سرویسدهنده برای سرویسگیرنده مشخص میگردد.
▪ دوم: در همان ابتدای شروع مبادلات، سرویسدهنده و گیرنده بر سر نوع الگوریتم رمزنگاری تبادلی توافق میكنند.
▪ سوم: در صورت لزوم، هویت سرویس گیرنده نیز برای سرویسدهنده احراز میگردد.
▪ چهارم: در صورت استفاده از تكنیكهای رمزنگاری مبتنی بر كلید عمومی، میتوانند كلیدهای اشتراكی مخفی را ایجاد نمایند.
▪ پنجم: ارتباطات بر مبنای SSL رمزنگاری میشوند.
● الگوریتمهای رمزنگاری پشتیبانی شده درSSL
در استانداردSSL ، از اغلب الگورتیمهای عمومی رمزنگاری و مبادلات كلید (Key Exchcenge Algorithm نظیر DES ،DSA ،KEA ، MD۵، RC۲،RC۴، RSA و RSA Key Exchange ،SHA-۱ ،Skipjackو ۳DES پشتیبانی میشود و بسته به اینكه نرمافزارهای سمت سرویسدهنده و سرویسدهنده نیز از موارد مذكور پشتیبانی نمایید، ارتباطاتSSL میتواند براساس هر كدام این از الگوریتمها صورت پذیرد.
البته بسته به طول كلید مورد استفاده در الگوریتم و قدرت ذاتی الگوریتم میتوان آنها را در ردههای مختلفی قرار دارد كه توصیه میشود با توجه به سناریوهای موردنظر، از الگوریتمهای قویتر نظیر۳DES با طول كلید ۱۶۸ بیت برای رمزنگاری دادهها و همچنین الگوریتم ۱-SHA برای مكانیزمهای تأیید پیغام ۵ MD استفاده شود و یا اینكه اگر امنیت در این حد موردنیاز نبود، میتوان در مواردی خاص از الگوریتم رمزنگاری ۴ RC با طول كلید ۴۰ بیت و الگوریتم تأیید پیغام ۵ MD استفاده نمود.
● نحوه عملكرد داخلی پروتكلSSL
همانطور كه میدانید SSL میتواند از تركیب رمزنگاری متقارن و نامتقارن استفاده كند. رمزنگاری كلید متقارن سریعتر از رمزنگاری كلیدعمومی است و از طرف دیگر رمزنگاری كلید عمومی تكنیكهای احراز هویت قویتری را ارایه میكند. یك جلسه SSL Session) SSL) با یك تبادل پیغام ساده تحت عنوانSSL Handshake شروع میشود. این پیغام اولیه به سرویسدهنده این امكان را میدهد تا خودش را به سرویسدهنده دارای كلید عمومی معرفی نماید و سپس به سرویسگیرنده و سرویسدهنده این اجازه را میدهد كه یك كلید متقارن را ایجاد نمایند كه برای رمزنگاریها و رمزگشایی سریعتر در جریان ادامه مبادلات مورد استفاده قرار میگیرد