آشنایی با پروتکل 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 Explerer از تكنیك‌های استاندارد رمزنگاری مبتنی بر كلید عمومی و مقایسه با كلیدهای عمومی یك سرویس‌دهنده (مثلاً یك برنامه سرویس‌دهنده وب نظیر (IIS می‌تواند از هویت او مطلع شود و پس از اطمینان كامل، كاربر می‌تواند نسبت به وارد نمودن اطلا‌عات خود مانند شماره كارت‌های اعتباری و یا گذرواژه‌ها اقدام نماید.
۲- تأیید هویت سرویس‌گیرنده
برعكس حالت قبلی در اینجا سرویس‌دهنده است كه می‌بایست از صحت هویت سرویس‌گیرنده اطمینان یابد. طی این مكانیزم، نرم‌افزار مبتنی بر SSL سمت سرویس‌دهنده پس از مقایسه نام سرویس‌گیرنده با نام‌های مجاز موجود در لیست سرویس‌گیرنده‌های مجاز كه در داخل سرویس‌دهنده تعریف می‌شود و در صورت وجود، اجازه استفاده از سرویس های مجاز را به او می‌دهد.
۳- ارتباطات رمز شده
كلیه اطلاعات مبادله شده میان سرویس‌دهنده و گیرنده می‌بایست توسط نرم‌افزارهای موجود در سمت سرویس‌دهنده و سرویس‌گیرنده رمزنگاری (Encrypt) شده و در طرف مقابل رمزگشایی (Decrypt) شوند تا حداكثر محرمانگی (Confidentiality) در این‌گونه سیستم‌ها لحاظ شود.
اجزای پروتكل SSL
پروتكل SSL دارای دو زیر پروتكل تحت عناوین زیر می‌باشد.
۱- ‌SSL Rocord Protocol كه نوع قالب‌بندی داده‌های ارسالی را تعیین می‌كند.
۲- SSL Handshake Protocol كه براساس قالب تعیین شده در پروتكل قبلی، مقدمات ارسال داده‌ها میان سرویس‌دهنده‌ها و سرویس‌گیرنده‌های مبتنی بر SSL را تهیه می‌كند.
بخش‌بندی پروتكل SSL به دو زیر پروتكل دارای مزایای چندی است. از جمله:
اول: در ابتدای كار و طی مراحل اولیه ارتباط (Handshake) هویت سرویس‌دهنده برای سرویس‌گیرنده مشخص می‌گردد.
دوم:‌ در همان ابتدای شروع مبادلات، سرویس‌دهنده و گیرنده بر سر نوع الگوریتم رمزنگاری تبادلی توافق می‌كنند.
سوم: در صورت لزوم، هویت سرویس گیرنده نیز برای سرویس‌دهنده احراز می‌گردد.
چهارم: در صورت استفاده از تكنیك‌های رمزنگاری مبتنی بر كلید عمومی، می‌توانند كلیدهای اشتراكی مخفی را ایجاد نمایند.
پنجم: ارتباطات بر مبنای SSL رمزنگاری می‌شوند.الگوریتم‌های رمزنگاری پشتیبانی شده درSSL
در استانداردSSL ، از اغلب الگورتیم‌های عمومی رمزنگاری و مبادلات كلید (Key Exchcenge Algorithm) نظیر DES ،DSA ،KEA ، MD۵، RC۲،RC۴، RSA و RSA Key Exchauge ،SHA-۱ ،Skipjack و ۳DES پشتیبانی می‌شود و بسته به این‌كه نرم‌افزارهای سمت سرویس‌دهنده و سرویس‌دهنده نیز از موارد مذكور پشتیبانی نمایید، ارتباطاتSSL می‌تواند براساس هر كدام این از الگوریتم‌ها صورت ‌پذیرد. البته بسته به طول كلید مورد استفاده در الگوریتم و قدرت ذاتی الگوریتم می‌توان آن‌ها را در رده‌های مختلفی قرار دارد كه توصیه می‌شود با توجه به سناریوهای موردنظر، از الگوریتم‌های قوی‌تر نظیر ۳DES با طول كلید ۱۶۸ بیت برای رمزنگاری داده‌ها و همچنین الگوریتم ۱-SHA برای مكانیزم‌های تأیید پیغام ۵ MD استفاده شود و یا این‌كه اگر امنیت در این حد موردنیاز نبود، می‌توان در مواردی خاص از الگوریتم رمزنگاری ۴ RC با طول كلید ۴۰ بیت و الگوریتم تأیید پیغام ۵ MD استفاده نمود.
نحوه عملكرد داخلی پروتكلSSL
همان‌طور كه می‌دانید SSL می‌تواند از تركیب رمزنگاری متقارن و نامتقارن استفاده كند. رمزنگاری كلید متقارن سریع‌تر از رمزنگاری كلیدعمومی است و از طرف دیگر رمزنگاری كلید عمومی تكنیك‌های احراز هویت قوی‌تری را ارایه می‌كند. یك جلسه SSL Session) SSL) با یك تبادل پیغام ساده تحت عنوان SSL Handshake شروع می‌شود. این پیغام اولیه به سرویس‌دهنده این امكان را می‌دهد تا خودش را به سرویس‌دهنده دارای كلید عمومی معرفی نماید و سپس به سرویس‌گیرنده و سرویس‌دهنده این اجازه را می‌دهد كه یك كلید متقارن را ایجاد نمایند كه برای رمزنگاری‌ها و رمزگشایی‌ سریع‌تر در جریان ادامه مبادلات مورد استفاده قرار می‌گیرد. گام‌هایی كه قبل از برگزاری این جلسه انجام می‌شوند براساس الگوریتم RSA Key Exchange عبارتند از:
۱- سرویس‌گیرنده، نسخه SSL مورد استفاده خود، تنظیمات اولیه درباره نحوه رمزگذاری و یك داده تصادفی را برای شروع درخواست یك ارتباط امن مبتنی بر SSL به سمت سرویس‌دهنده ارسال می‌كند.
۲- سرویس‌دهنده نیز در پاسخ نسخه SSL مورد استفاده خود، تنظیمات رمزگذاری و داده تصادفی تولید شده توسط خود را به سرویس‌گیرنده می‌فرستد و همچنین سرویس‌دهنده گواهینامه خود را نیز برای سرویس‌گیرنده ارسال می‌كند و اگر سرویس‌گیرنده از سرویس‌دهنده، درخواستی داشت كه نیازمند احراز هویت سرویس‌گیرنده بود، آن را نیز از سرویس‌گیرنده درخواست می‌كند.
۳- سپس سرویس‌گیرنده با استفاده از اطلا‌عاتی كه از سرویس‌دهنده مجاز در خود دارد، داده‌ها را بررسی می‌كند و اگر سرویس‌دهنده مذكور تأیید هویت شد، وارد مرحله بعدی می‌شود و در غیراین‌صورت با پیغام هشداری به كاربر، ادامه عملیات قطع می‌گردد.
۴- سرویس‌گیرنده یك مقدار به نام Premaster Secret را برای شروع جلسه ایجاد می‌كند و آن را با استفاده از كلید عمومی (كه اطلاعات آن معمولاً در سرویس‌دهنده موجود است) رمزنگاری می‌كند و این مقدار رمز شده را به سرویس‌دهنده ارسال می‌كند.
۵- اگر سرویس‌دهنده به گواهینامه سرویس‌گیرنده نیاز داشت می‌بایست در این گام برای سرویس‌دهنده ارسال شود و اگر سرویس‌گیرنده نتواند هویت خود را به سرویس‌دهنده اثبات كند، ارتباط در همین‌جا قطع می‌شود.
۶- به محض این‌كه هویت سرویس‌گیرنده برای سرویس‌دهنده احراز شد، سرویس‌دهنده با استفاده از كلید اختصاصی خودش مقدار Premaster Secret را رمزگشایی می‌كند و سپس اقدام به تهیه مقداری به نام Master Secret می‌نماید.
۷- هم سرویس‌دهنده و هم سرویس‌گیرنده با استفاده از مقدار master Secret كلید جلسه (Session Key) را تولید می‌كنند كه در واقع كلید متقارن مورد استفاده در عمل رمزنگاری و رمزگشایی داد‌ه‌ها حین انتقال اطلاعات است و در این مرحله به نوعی جامعیت داد‌ها بررسی می‌شود.
۸- سرویس‌گیرنده پیغامی را به سرویس‌دهنده می‌فرستد تا به او اطلاع دهد، داده بعدی كه توسط سرویس‌گیرنده ارسال می‌شود به وسیله كلید جلسه رمزنگاری خواهد شد و در ادامه، پیغام رمز شده نیز ارسال می‌شود تا سرویس‌دهنده از پایان یافتن Handshake سمت سرویس‌گیرنده مطلع شود.
۹- سرویس‌دهنده پیغامی را به سرویس‌گیرنده ارسال می‌كند تا او را از پایان Handshake سمت سرویس‌دهنده آگاه نماید و همچنین این‌كه داده بعدی كه ارسال خواهد شد توسط كلید جلسه رمز می‌شود.
۱۰- در این مرحله SSL Handshake تمام می‌شود و از این به بعد جلسه SSL شروع می‌شود و هر دو عضو سرویس‌دهنده و گیرنده شروع به رمزنگاری و رمزگشایی و ارسال داده‌ها می‌كنند.
حملا‌ت تأثیرگذار برSSL
SSL نیز از حملا‌ت و نفوذهای مختلف در امان نیست. بعضی از حملا‌ت متداولی كه براین پروتكل واقع می‌شود عبارتند ازTraffic Analysis : یا تحلیل ترافیك، حملا‌تCut ِ Paste بلووین، حملا‌ت Certification Injection و حملا‌ت از نوع Man in the middle.

 

دپارتمان تحقیفات و طراحی سایت فاواکو آماده خدمت رسانی به مشتریان عزیز در تمامی نقاط ایران

ratingValue4.8 worstRating 1 bestRating 5 reviewCount 144