امنیت

نحوه کارکرد SSL

در این مقاله بصورت تفصیلی به نحوه کارکرد SSL می پردازیم، لطفا تا پایان مقاله همراه من باشید:

در پروتکل SSL ارتباطات بوسيله يک کليد، رمزگذاري(Encryption) مي شوند، برای انجام  رمزگذاری اطلاعات بین سرور و کاربر، ۲ کلید رمز نگار ایجاد می شود.

یک کلید خصوصی و یک کلید عمومی یا RSARSA الگوریتمی است که به وسیله ی کامپیوتر های مدرن برای رمزگذاری و رمزگشایی پیام ها استفاده می شود.

RSA الگوریتم رمزنگاری نا متقارن است، نامتقارن به این معنی که دو کلید متفاوت وجود دارد .RSA رمزنگاری کلید عمومی نیز نامیده می شود، چرا که یکی از کلید ها را می توان به هر شخص دیگری داد و کلید دیگر باید به شکل خصوصی نگهداری شود.در واقع این دو کلید مکمل یکدیگرند، CSR (درخواست امضای گواهینامه ) یک فایل داده که شامل اطلاعات شما و همچنین کلید عمومی می شود.در این  مرحله CA (صادر کننده گواهینامه) جزئیات اطلاعات داده شده رابررسی و تائید می کند، پس از این مرحله از تائید تمام جزییات گواهی SSL صادر می شود .

زماني که قرار است اطلاعات به صورتSSL   به يک سايت که سرور (server) آن دارای گواهي نامه SSL است (در آدرس سايت https مشاهده می شود) ارسال شود، ابتدا بايد از يک کليد به عنوان قالبي براي به رمز در آوردن اطلاعات بين خدمات گيرنده (کاربر) و خدمات دهنده (سرور) استفاده شود. براي ساخت اين کليد نياز به چند مرحله هماهنگي به شرح زير است.

۱- وقتي سروري بخواهد پروتکل SSL  را فعال کند ابتدا يک کليد عمومي (Public Key) مي سازد.

۲-  سپس سرور کليد عمومي را همراه با يک درخواست گواهي نامه SSL به يکي از صادرکنندگان اين گواهي نامه ها مثل  comodo ارسال می کند.

۳- comodo  نيز ابتدا مشخصات و ميزان قابل اعتماد بودن و امنيت سرور را ارزيابي می کند و کليد عمومي را دوباره رمزگذاري مي کند و براي سرور مي فرستد تا در انتقال اطلاعات خود از آن استفاده کند. به کليد جديد کليد امنيتي (private key) مي گويند.

۴- حال هر زمان که کاربر بخواهد از طريق پروتکلSSL  به اين سايت دست يابد، ابتدا کامپيوتر کاربر يک کليد عمومي براي سرور مي فرستد (هر کامپيوتري کليد مخصوص به خود را دارد).

۵- سرور نيز اين کليد عمومي را با کليد امنيتي خود مخلوط کرده و از آن کليد جديدي مي سازد و سپس آن را به کامپيوتر کاربر مي فرستد.

۶- از اين به بعد تمامي اطلاعاتي که بين کاربر و سرور جابجا مي شوند با اين کليد جديد رمز گذاري مي شوند.

 

عملکرد داخلی گواهی دیجیتال 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 شروع می شود و هر دو عضو سرویس دهنده و گیرنده شروع به رمزنگاری و رمزگشایی و ارسال داده ها می کنند.

 

برچسب ها

مازیار احمدی

مازیارم. مازیار یه وبمستر هست که جوانیشو تو اینترنت گذاشته. عاشق وردپرسه و یه استارتاپ داره که مثل بچش دوسش داره و دوستدار محتوا هست. مازیار موقع کار خیلی جدیه ولی آدم خوش قلبیه و از ته دل میخنده. مازیار عاشق یاد دادن و اشتراک گذاری تجربیاتش هست.

نوشته های مشابه

ممنون می‌شم، درباره‌ ی این مطلب نظر بدین، منتظر شنیدنِ دیدگاه و تجربه شما هستیم.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بستن
بستن