SSL چیست؟
SSL چیست؟حامد رضازاده
حالا یک مثال ساده در مورد ارسال اطلاعات به شیوه رمز شده میزنیم. فرض کنید میخواهید از یک وبسایت جاری یا فروشنده کالا یا خدمات خرید کنید. (مثلا سایت آمازون). خرید شما با استفاده از کارتهای اعتباری[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
|