what is ssl ??

 SSLچیست؟

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

thief-min

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

ssl-min

SSL مخفف Secure Sockets Layer و در اصطلاح به استاندارد رمزنگاری در انتقال داده ها در وب گفته می شود. در واقع SSL انواع پروتکل‌های کدگذاری است که وظیفه آن‌ ایمن­ سازی ارتباط میان سرور،‌ کاربر و برنامه‌ها در بستر شبکه می باشد؛ یعنی یک ارتباط امن،‌ دو طرفه و تونل مانند میان دو نقطه که در حال انتقال اطلاعات هستند برقرار می‌کند که سبب می شود دسترسی هکرها به این ارتباط اطلاعات محدود شود. معمولا برای انتقال اطلاعات از بستر HTTP استفاده می­‌شود ولی وقتی این ارتباط توسط SSL امن می شود، پروتکل انتقال اطلاعات HTTPS خواهد شد.

Secure-Website
Not-Secure-Website

تاریخچه

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

شایان ذکر است که SSL در اینجا فقط به روش برقراری ارتباط (handshake)‌ میان سرور و کاربر اشاره دارد. این برقراری ارتباط به خودی خود باعث رمزنگاری اطلاعات نمی‌شود،‌ بلکه کاربر و سرور از این طریق بر روی متد رمزنگاری توافق می­‌کنند.

پروتکل امنیتی ssl چگونه کار می کند؟

SSL-flowchart

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

ارتباط SSL به کمک سه کلید یک ارتباط امن را ایجاد می‌کند:
1- کلید عمومی

2- کلید خصوصی

3- کلید نشست
هر چیزی که با کلید عمومی رمزگذاری شود توسط کلید خصوصی رمزگشایی خواهد شد و برعکس.

روند کار به شکل زیر است:
1- مرورگر به یک وبسایت امن متصل می‌شود.(وبسایت هایی که دارای SSL هستند با https شروع می‌شوند.) مرورگر درخواست می‌کند تا سرویس دهنده خودش را معرفی کند.
2- سرویس دهنده یک کپی از مدرک SSL خود را برای مرورگر ارسال می کند که شامل کلید عمومی می‌شود.
3- مرورگر مدرک دریافتی را با لیستی از مدارک SSL ای که توسط CA  معتبر هستند و هنوز منقضی نشده‌اند مطابقت می‌دهند(وظیفه CA این است که هویت طرفین ارتباط، نشانی ها، تاریخ انقضای گواهینامه را بداند و براساس آنها هویت ها را تعیین نماید.). اگر مرورگر مدرک دریافتی را معتبر تشخیص دهند، یک مقدار را برای شروع جلسه ایجاد می‌کند و آن را با استفاده از کلید عمومی دریافتی از سرویس دهنده رمزنگاری می‌کند و این مقدار رمز شده را برای سرویس دهنده ارسال می‌کند.

4- اگر سرویس دهنده نیز سرویس گیرنده را مجاز دانست ، با استفاده از کلید خصوصی خود مقدار را رمزگشایی می کند و یک مقدار شامل کلید نشست (session key) ایجاد می‌کند و به مرورگر می‌فرستد تا ارتباط امن آغاز شود.
5- سرور و مرورگر حالا تمام داده ها را با کلید نشست (session key) رمزگذاری می‌کنند و داده‌ها را از طریق این ارتباط امن رد و بدل می‌کنند.

یک سایت که گواهینامه معتبر SSL دارد در مرورگر Chrome یک قفل بسته در کنار دامنه آن سایت قرار دارد و با کلیک بر روی آن پیغام connection is secure نمایش داده می شود.

secure-connection-min