فا   |   En
Login
Author: حامد رضازاده

SSL چیست؟

حامد رضازاده


SSL یک لایه یا در واقع یک پروتکل امنیتی استاندارد است که توسط متخصصین امنیتی شرکت Netscape طراحی و توسعه داده شده است و گواهینامه آن توسط چند شرکت خاص به وب سایت ها داده می­شود. اطلاعات در فضای مجازی به شیوه­های مختلفی به سرقت می­رود و یکی از مهترین و آسیب­پذیرترین نقاط فضای مجازی آنجایی است که اطلاعات بین کامپیوتر ما به عنوان Client و کامپیوتری که سایت موردنظر ما روی آن قرار دارد به عنوان Server در حال انتقال است. مثلاً زمانی که در حال وارد کردن نام کاربری و رمز اکانت ایمیل یا حساب بانکی خود را وارد می­کنیم و وارد حساب خود می‌شویم، اطلاعات شخصی ما مثل نام کاربری و رمز اکانت ما برای سایت موردنظرمان ارسال می­شود. در این حالت ممکن است افرادی در بین مسیر این اطلاعات را بدست آورند و از آن سوء استفاده کنند. بنابراین باید سعی کنیم از این مسیر که اطلاعات مهم از آن در حال عبور هستند را به صورت کامل محافظت کنیم تا احتمال سرقت اطلاعات توسط هکرها به صفر نزدیک شود.

حالا یک مثال ساده در مورد ارسال اطلاعات به شیوه رمز شده می­زنیم. فرض کنید می­خواهید از یک وبسایت جاری یا فروشنده کالا یا خدمات خرید کنید. (مثلا سایت آمازون). خرید شما با استفاده از کارتهای اعتباری[1] انجام خواهد شد. هر کارت اعتباری اطلاعاتی مثل شماره کاربری، تاریخ انقضا و رمز دارد که شما باید همه این اطلاعات را در سایت مذبور وارد کنید تا بتوانید یک خرید اینترنتی انجام دهید. این اطلاعات به شیوه رمزنگاری متقارن رمزنگاری خواهد شد و به سمت سایت فروشنده ارسال خواهد شد. اطلاعاتی که غیر از شما و سایت فروشنده از آن بی اطلاع خواهند بود. در زیر چارت این ارتباط و رمزنگاری را مشاهده می­کنید:

در مرحله دوم شما به عنوان مشتری سایت تجاری یک کلید متقارن[2] را به عنوان کلید جلسه می­‌سازید. تقریباً به هیچ عنوان کلیدی که توسط شما ساخته می­شود با کلیدی که توسط شخص دیگر ساخته می­شود یکسان نخواهد بود. در واقع اگر کلید، مشابه دیگری داشته باشد شما شاهد یک معجزه در رمزنگاری هستید.

حالا شما با استفاده از کلید عمومی سایت تجاری، بایستی که کلید جلسه خود را که قلاً ساخته بودید را رمزنگاری کنید و دوباره آن را به عنوان یک داده محرمانه[3] به سمت سرویس­دهنده سایت ارسال کنید. سرویس­دهنده سایت داده محرمانه ارسالی شما را دریافت کرده و آن را با استفاده از کلید خصوصی خود رمزگشایی می­کند و به کلید جلسه شما دست پیدا می­کند. این کلید جلس همان کلیدی است که شما برای رمزنگاری داده خود استفاده کرده بودید. فرایند فوق را در شکل زیر به طور کامل مشاهده می­کنید:

 

 SSL سعی می­کند تا اطلاعاتی که بین کاربران و سایت­های مورد استفاده­شان از محیط تقریباً نامطمئنی مثل اینترنت جا به جا می­شود را توسط الگوریتم­های پیشرفته به نحوی رمزنگاری کند که اگر هکر­ها در بین راه به اطلاعات دسترسی پیدا کردند، نتوانند از مفهوم آن اطلاع پیدا کنند. از این پروتکل معمولاً در امن کردن پروتکل­های به نسبت آسیب­پذیری مانند LDAP، IMAP و HTTP استفاده می­شود. میلیونها سایت در سراسر جهان از این پروتکل برای حفظ امنیت اطلاعات در ارتباط با مشتریانشان استفاده می­کنند. سایت­هایی مانند گوگل، یاهو، فیس­بوک و آمازون جزء امن­ترین سایت­هایی هستند که دارای گواهینامه SSL هستند. بعضی سایت­ها نیز با خرید SSLهای غیر معتبر و یا حتی رایگان سعی در نشان دادن امنیت بالای خود دارند. سایت­های برخی بانکها و سرویس­دهندگان اینترنتی از این دسته‌­اند.

  پروتکلهای LDAP، IMAP و HTTP هر سه در لایه Application از 7 لایه شبکه هستند ولی SSL در لایه NetWork کار می‌کند. اخیراً یک پروتکل امنیتی دیگر به نام [TLS[4 به پروتکل SSL اضافه و پایه­گذاری شده است که قدرت آن را بسیار بیشتر کرده است.

 

نحوه کار SSL

   سایتهای مرجعی در زمینه SSL وجود دارند که گواهینامه SSL[5] را صادر می­کنند. وجود https در ابتدای آدرس سایت نشانگر وجود گواهینامه SSL می­باشد؛ حال آنکه این گواهینامه چقدر معتبر است جای بحث دارد. یک سایت برای اینکه گواهینامه SSL دریافت کند به یکی از سایتهای صادرکننده SSL[6] مثل Verysign مراجعه کرده و اطلاعات سایت خود را ثبت می­کند. سپس سرویس­دهنده سایت یک کلید عمومی[7] ساخته و آن را در قالب OCR[8] که شامل اطلاعات سرویس­دهنده است، به سمت سایت صادرکننده SSL ارسال می­کند. صادرکننده SSL این اطلاعات را بررسی کرده و درصورت تایید آنها و اطمینان از امنیت نسبی سرویس­دهنده، کلید عمومی دریافت شده را با الگوریتمی خاص رمزنگاری کرده و یک کلید خصوصی[9] ایجاد می­کند و آن را دوباره به سمت سرویس­دهنده می­فرستد. سرویس­دهنده که گواهینامه SSL را دریافت کرده است، از این پس با در اختیار داشتن کلید خصوصی ارتباطات ایمن­تری با مشتریان خود خواهد داشت.

کامپیوتر کاربرانی که قصد استفاده از سایتی با گواهینامه SSL را دارند یک کلید عمومی (که معمولاً همه کامپیوترها مخصوص به خود دارند) به سمت سرویس­دهنده سایت موردنظر خود می­فرستند و سرویس­دهنده نیز این کلید را دریافت کرده و با کلید خصوصی که قبلاً از سایت صادرکننده گواهینامه SSL دریافت کرده است ترکیب کرده و یک کلید خصوصی جدید می­سازد و آن را به کامپیوتر کاربر باز می­گرداند. حال ارتباطات بین کاربر و سایت موردنظرش شامل تمامی انتقال رمز و اطلاعات شخصی کاربر به صورت کاملاً ایمن انجام خواهد شد؛ چرا که این اطلاعات قبل از ارسال توسط الگوریتمهای پیچیده، رمزنگاری می­شوند و احتمال سرقت را به صفر نزدیک می­کند. دقت داشته باشید وقتی سایت بانکی که شما از خدمات اینترنتی آن استفاده می­کنید دارای گواهینامه SSL معتبر باشد، شما همیشه با اطمینان خاطر وارد حساب بانکی خود شده و تراکنشهای خود را انجام می­دهید.

دقت داشته باشید که فرآیند ارسال کلید عمومی توسط کاربر و ساخت کلید خصوصی توسط سرویس­دهنده سایت بسیار سریع انجام می­شود و کاربر به هیچ وجه متوجه انجام این فرآیند نخواهد شد.

 

 فعال کردن SSL در مرورگر

    در حال حاضر همه مرورگرهای موجود توانایی پشتیبانی از SSL را دارند در حالی که اوایل پدید آمدن SSL تنها یک یا دو مرورگر می­توانست صفحات وب را به صورت مطمئن با استفاده از SSL بارگذاری کند. وقتی یک سایت از SSL استفاده می‌کند در نوار آدرس به جای http از پروتکل https[10] ظاهر خواهد شد.

یکی از نشانه­های وجود SSL وجود یک قفل در مرورگرهای Internet Explorer و Google Chrome می­باشد که با مشاهده این قفل تقریبا می­توان مطمئن بود که ارتباطات شکل گرفته توسط این سایت به صورت کاملً ایمن صورت می­گیرد.

وقتی با مرورگر خود وارد gmail یا ymail و یا hotmail خود می­شوید اگر به نوار آدرس نگاه کنید خواهید دید که به جای http همیشگی، https قرار دارد. در مرورگر Google Chrome در صورت وجود https که حاکی از مجوز SSL معتبر و امنیت آن سایت است، رنگ https به سبز تغییر رنگ خواهد داد.

 

 در مروگر Google Chrome در صورت وجود SSL تقلبی رنگ https در نوار آدرس قرمز شده و علامت ضرب در بر روی آن ظاهر خواهد شد. همچنین صفحه­ای به شکل زیر به شما نمایش داده خواهد شد که حاوی یک پیام هشدار است که نا امن بودن سایت جاری را نشان می­دهد. در این حالت توصیه می­شود هیچگاه وارد اکانت­های خود نشوید؛ اما اگر بر روی گزینه Proceed anyway کلیک کنید درواقع با به جان خریدن خطر احتمالی وارد سایت مربوطه خواهید شد ولی اگر گزینه Back to safety را انتخاب کنید وارد سایت مورد نظر نخواهید شد.

 

در مرورگر Firefox نیز httpsهای اصلی در اکثر مواقع به رنگ آبی در خواهند آمد که در شکل زیر کی نمونه SSL معتبر از سایت yahoo را مشاهده می­کنید. در این مرورگر در صورت شناسایی SSL نامعتبر و احتمال بروز هرگونه خطر نیز پیامی حاوی جمله “this connction is untrusted” و یا "secure connection fialed" نمایش داده خواهد شد.

 

 وقتی مرورگر هنگام بارگذاری یک سایت SSL نامعتبر تشخیص می­دهد، فقط به شما یک هشدار مبنی بر عدم امنیت این سایت می­دهد و شما می­توانید با زدن گزینه “I Understand the Risks” به مرورگر بگویید که از این عدم امنیت مطلع هستید و با این وجود می­خواهید سایت را باز کنید.

اکثر اوقات هنگام ورود به CPanel چه با مرورگر Google Chrome و چه با Firefox با خطای SSL نامعتبر رو به رو خواهید شد که معمولاً مشکل خاصی نیست و می­توانید به اکانت CPanel خود وارد شوید.

 برای اطمینان از اینکه مرورگرتان از SSL پشتیبانی می­کند، در Google Chrome به قسمت Setting رفته و در منوی سمت چپ Under the Hood را انتخاب کنید. سپس در بخش HTTPS/SSL گزینه check for server certificate revocation را علامت بزنید تا همیشه SSL سایت­ها را بررسی کند.

در مرورگر Firefox هم بایستی به منوی Option رفته و در سربرگ Advanced در زیرمنوی Encryption گزینه­‌های USE SSL 3.0 و USE TLS 1.0 را علامت بزنید تا فرایند چک کردن Certificate سایتها به درستی انجام شود.

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

  

 جعل گواهینامه SSL

 گفته شد که گواهینامه SSL جهت امن کردن اتصال به سایت­هاست. سروریس دهنده های SSL که ارتباط بین کامپیوتر کاربران و سایت­ها را تایید می­کنند بسیار مهم هستند که یکی از معروف­ترین این سرویس­دهنده­ها VeriSign است. حال اگر هکرها این گواهینامه را جعل کنند، امنیت کاربران به خطر خواهد افتاد. یک هکر برای جعل SSL ابتدا به سرویس­دهنده­ای که گواهی­های SSL را صادر می­کند نفوذ پیدا می­کند و سپس به تمام درخواست­های کامپیوتر کاربران که برای سایت‌ها فرستاده می شوند دسترسی خواهند داشت. دقیقاً حمله اخیر هکرها به گوگل یکی از بزرگترین اتفاقات اینترنتی اخیر ایران بود که SSL داده­های ارسالی را در لایه 7 رمزنگاری می­کند که Firewallها از آن پشتیبانی نمی­کنند.

  



[1] Credit Card

[2] Symmetric Key

[3] Cipher Text

[4] Transport Layer Security

[5] SSL Certificate

[6] Certification Authority

[7] Public Key

[8] Certificate Signing Request

[9] Private Key

[10] Hyper Text Transfer Protocol SSL