معرفی پروتکل SSL

پروتکل امنیتی SSL چیست؟

پروتكل SSL توسط شركت Netscape Communications براي تدارك امنيت و محرمانگي بر روي اينترنت توسعه يافته است. اين پروتكل از تصديق اصالت در سمت سرويس‌دهنده و سرويس‌گيرنده پشتيباني مي‌كند. پروتكل SSL وابسته به كاربرد مي‌باشد و به پروتكل‌هايي نظير HTTP، FTP و telnet اجازه مي‌دهد تا به‌صورت لايه‌اي برروي آن قرار گيرند. پروتكل SSL قادر است به توافق دربارة كليدهاي رمزنگاري و نيز تصديق سرويس‌دهنده قبل از تبادل اطلاعات توسط لايه‌هاي بالاتر اقدام نمايد. پروتكل SSL، امنيت و تماميت كانال انتقال را با استفاده از رمزكردن، تصديق اصالت و كدهاي تصديق پيام حفظ مي‌كند.

مزیت استفاده از این پروتکل، بهره گیری از موارد امنیتی تعبیه شده آن برای امن کردن پروتکل های غیرامن لایه کاربردی نظیر HTTP، LDAP، IMAP و... می باشد که براساس آن الگوریتم های رمزنگاری بر روی داده های خام (plain text) که قرار است از یک کانال ارتباطی غیرامن مثل اینترنت عبور کنند، اعمال می شود و محرمانه ماندن داده ها را در طول کانال انتقال تضمین می کند. 

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

آیا پروتکل SSL واقعاً امن است؟

در این پروتکل، همان‌طور که گفته شد، داده‌ها بین سرویس دهنده و گیرنده رمزگذاری می‌شوند؛ به همین دلیل، داده‌ها در طول انتقال از کانال غیر امن مانند اینترنت، اینترانت و ...، حفاظت شده باقی می‌مانند. هرچند دسترسی به این داده‌ها ممکن است، اما به دلیل آن‌که رمزگذاری شده اند، برای بدست آوردن داده‌های رمزگشایی شده اصلی، باید کلید مورد استفاده در آن نشست ارتباطی امن (Secure connection session) را دانست. از این رو، این پروتکل عملاً غیرقابل نفوذ است. البته در دنیای هک و امنیت، چیز غیرممکنی وجود  ندارد! برای مثال، ممکن است طی فرایندهای خاص، بسیار پیچیده و مهندسی شده، حتی بدون داشتن کلید نیز روزی بتوان داده‌های اصلی را بدست آورد یا مثلاً ممکن است کلیدهای مورد استفاده در فرایند رمزگذاری و رمزنگاری، از سمت سرویس دهنده پروتکل امن، به سرقت رفته باشند.

از سوی دیگر، داده‌ها فقط و فقط در طول مسیر انتقال از کانال مورد نظر رمزگذاری شده اند؛ یعنی داده‌های اصلی، در سمت سرویس دهنده و گیرنده توسط پروتکل SSL رمزنگاری نمی‌شوند. به همین دلیل، درصورتی که بدافزاری در هر یک از این سمت‌ها قرار بگیرد، می‌تواند داده‌های اصلی را به راحتی بدزدد. البته تاکنون گزارشی از سرقت اطلاعات از طریق کانال امن SSL منتشر نشده است بنابراین می‌توان آن را یک پروتکل "واقعاً امن" دانست. 

شرکت‌های بسیاری اقدام به ارائه سرویس‌های پروتکل امن SSL کرده اند. با این حال، تعدادی از ارائه دهندگان، شرکت‌های زیر هستند: 

Symantec

Entrust

Digicert

Google Internet Authority

TURKTRUST

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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