شنبه, ۸ اردیبهشت, ۱۴۰۳ / 27 April, 2024
مجله ویستا

مروری بر پروتکل امنیتی 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, RC۴, RC۲,MD۵, KEA, DSA, DES و RSA Key Exchauge، SHA-۱،Skipjack و DES۳ پشتیبانی می شود و بسته به این كه نرم افزارهای سمت سرویس دهنده و سرویس دهنده نیز از موارد مذكور پشتیبانی نمایند، ارتباطات SSL می تواند براساس هر كدام از این الگوریتم ها صورت پذیرد. البته بسته به طول كلید مورد استفاده در الگوریتم و قدرت ذاتی الگوریتم می توان آن ها را در رده های مختلفی قرار داد كه توصیه می شود با توجه به سناریوهای موردنظر، از الگوریتم های قوی تر نظیر DES۳ با طول كلید ۱۶۸ بیت برای رمزنگاری داده ها و همچنین الگوریتم SHA-۱ برای مكانیزم های تایید پیغام MD۵ استفاده شود و یا این كه اگر امنیت در این حد مورد نیاز نبود، می توان در مواردی خاص از الگوریتم رمزنگاری RC۴ با طول كلید ۴۰ بیت و الگوریتم تایید پیغام MD۵ استفاده نمود.
● نحوه عملكرد داخلی پروتكل 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 شروع می شود و هر دو عضو سرویس دهنده و گیرنده شروع به رمزنگاری و رمزگشایی و ارسال داده ها می كنند.
منبع : روزنامه جوان


همچنین مشاهده کنید