گواهی الكترونیكی چیست؟
گواهی الكترونیكی (digital certificate) شناسه دیجیتال یك موجودیت (مانند وبسایت، فرد، سرور، دستگاه شبكه، و غیره) در تعاملات الكترونیكی میباشد. در واقع، همانطور كه در تعاملات غیر الكترونیكی، "كارت ملی" یا شناسنامه یك فرد شناسه وی میباشد، در تعاملات الكترونیكی "گواهی الكترونیكی" شناسه فرد (و بطور كلی هر موجودیت) میباشد. در تعاملات الكترونیكی (برخلاف تعاملات رو در رو)، طرفین ممكن است نتوانند هویت طرف مقابل را شناسایی كنند. این چالش میتواند منجر به برخی مشكلات امنیتی شود. مثلاً كاربران یك سایت ممكن است با یك سایت جعلی دیگر فریب داده شوند.
گواهی الكترونیكی، رایجترین راهحل مواجهه با چالش بالا است. یك موجودیت با استفاده از گواهی الكترونیكی خود میتواند به طرف مقابل اطمینان دهد كه با موجودیت موردنظرش در تعامل است. برای مثال، یك سایت با استفاده از گواهی الكترونیكی میتواند به كاربرانش اطمینان دهد كه دادههای خود (مثلاً نام كاربری و گذرواژه، یا اطلاعات حساب بانكی) را به سایت جعلی ارسال نمیكنند.
SSL چیست؟
Secure Socket Layer (SSL) و Transport Layer Security (TLS) پروتكلهای امنیتی هستند كه به منظور تأمین امنیت تبادلات روی شبكه و اینترنت استفاده میشوند. به بیان دقیقتر، SSL/TLS یك ارتباط رمزگذاریشده و تصدیق اصالتشده بین سرویسدهنده (Server) و سرویسگیرنده (Client) فراهم میكند. به عنوان نمونه، SSL یك لینك رمزگذاریشده بین مرورگر كاربر و وبسایت فراهم میكند. این لینك تضمین میكند كه دادههای مبادلهشده بین مرورگر و وبسایت توسط دیگران قابل مشاهده و تغییر نیستند.
استفاده از SSL، مستلزم دریافت گواهی SSL است.
چرا باید از گواهی SSL استفاده كرد؟
دو كاربرد اصلی گواهی SSL، تصدیق اصالت سرویسدهنده و سرویسگیرنده (به طور اختیاری) و رمزگذاری ارتباطات بین آنها میباشد. از دیدگاه تجاری، یكی از پركاربردترین موارد استفاده از گواهی SSL تأمین امنیت وبسایتهایی است كه در زمینه كسب و كار اینترنتی فعالیت میكنند. در صورتی كه یك سایت از SSL استفاده كند، كاربران میتوانند اطمینان حاصل نمایند وبسایتی كه بازدید میكنند، همان وبسایت موردنظرشان است و اطلاعات خود را به سایت درستی ارسال میكنند. بدینسان، از حملاتی مانند فیشینگ مبتنی بر جعل سایت جلوگیری میشود. در حمله مذكور، حملهكننده (مثلاً یك رقیب تجاری) با ایجاد یك وبسایت با ظاهری كاملاً مشابه سایت اصلی، با فریب دادن كاربران، آنها را به سایت جعلی هدایت كرده و امنیت آنها را به مخاطره میاندازد؛ مثلاً اطلاعات كاربران (نام كاربری و گذرواژه، شماره كارت اعتباری، و غیره) را به سرقت میبرد یا در مورد مشتریان سایت اطلاعات جمعآوری میكند. در صورتی كه از گواهی SSL استفاده شود، از این حمله جلوگیری میشود. علاوه بر تصدیق اصالت سرویسدهنده (سایت)، با رمزگذاری ارتباطات بین كاربران و سایت، كاربران مطمئن میشوند كه ارتباط آنها با سایت، ارتباطی امن و قابل اطمینان است؛ بدین معنا كه اطلاعات آنها بدون استراق سمع، دستكاری، و جعل تبادل میشوند.
انواع گواهی SSL چیست؟
گواهی SSL میتواند برای كاربردهای مختلف مانند امنسازی وبسایت، سرور ایمیل، سرور پایگاه داده، سرور فایل، و غیره استفاده شود كه رایجترین آنها برای وبسایت (سرویس HTTPS) است. علاوه بر كاربرد گواهی، بر اساس تعداد دامنهها نیز میتوان نوع گواهی را دستهبندی كرد:
- گواهی معمولی: این گواهی فقط برای یك دامنه (مثلاً www.mydomain.com ) صادر میگردد. دقت كنید، از این گواهی نمیتوان برای زیردامنههای یك دامنه (مثلاً mail.mydomain.com) استفاده كرد. بدیهی است كه اگر بخواهیم چندین دامنه یا زیر دامنههای یك دامنه را امن كنیم، برای هر یك باید از گواهی مجزایی استفاده شود كه به جای این كار، توصیه میشود از گواهیهای SAN یا Wildcard (كه در زیر توضیح داده شدهاند) استفاده شود.
- گواهی Wildcard: این گواهی میتواند تمام زیردامنههای سطح یك (first level subdomain) روی یك دامنه را امن كند. برای مثال، در صورتی كه یك گواهی برای زیردامنههای mydomain.com داشته باشیم (یك گواهی با نام *.mydomain.com)، میتوانیم زیردامنههای www.mydomain.com ،mail.mydomain.com، secure.mydomain.com، و بطور كلی هر زیردامنهای كه به جای * قرار گیرد را امن كنیم.
- گواهی SAN یا UC (Unified Communications): با استفاده از این گواهی میتوان چند نام دامنه و زیردامنه یا نام سرور را امن كرد. در واقع، یك گواهی برای چند دامنه صادر میشود. برای مثال، میتوان همه دامنههای www.my-ir-domain.ir، www.my-com-domain.com، mail.mydomain.com، myserver.local، mydomain.ir، و حتی آدرس IP سرور را در قالب یك گواهی امن كرد. از این گواهی میتوان در Live Communications Server و Exchange Server استفاده نمود. با این حال، كاربرد آن به این موارد محدود نبوده و در سرورهایی مثل Apache و IIS نیز میتوان از آن استفاده كرد. استفاده از گواهی SAN نسبت به دو نوع گواهی دیگر دارای مزایای زیر است:
- برخلاف گواهی معمولی كه فقط یك نام دامنه و گواهی Wildcard كه فقط زیردامنهها را امن میكند، با استفاده از گواهی SAN میتوان چند نام دامنه و زیردامنه یا نام و IP سرور را امن كرد. با استفاده از این ویژگی میتوان با یك گواهی نامهای شبكه داخلی (internal network) و نامهای دامنه خارجی (external domain names) را امن كرد.
- در اغلب موارد، استفاده از گواهی SAN هزینه كمتری دارد. برای مثال، در صورتی كه بخواهیم دو نام دامنه را امن كنیم، احتیاج به دو گواهی معمولی داریم، در حالی كه یك گواهی SAN برای این مورد هزینه كمتری دارد. علاوه بر این، در استفاده از گواهی SSL روی سرور، به ازای هر گواهی معمولاً به یك آدرس IP اختصاصی (dedicated IP address) نیاز میباشد كه هزینه بالاتری ایجاد میكند. البته لازم به ذكر است استفاده از یك IP اختصاصی برای چند دامنه با گواهیهای معمولی نیز با استفاده از قابلیت (Server Name Indication) SNI به لحاظ عملیاتی امكانپذیر است اما باید شرایط خاصی وجود داشته باشد؛ مثلاً نسخههای خاصی (معمولاً نسخههای قدیمی) از مرورگرها و وبسرورها از این قابلیت پشتیبانی نمیكنند. برای اطلاعات كاملتر در مورد SNI به اینجا مراجعه نمایید. همچنین لازم به ذكر است متأسفانه در برخی ارائهدهندگان خدمات هاستینگ، امكان استفاده از SNI وجود نداشته و مشتری برای هر گواهی باید IP مجزایی خریداری نماید.
آیا برای استفاده از گواهی SSL نیاز به IP اختصاصی میباشد؟
به منظور استفاده از گواهی SSL برای یك دامنه، داشتن IP اختصاصی (Dedicated IP) الزامی است. معمولاً به ازای هر دامنه (با قابلیت SSL)، باید یك IP اختصاصی مجزا وجود داشته باشد. جهت استفاده از یك IP اختصاصی برای چند دامنه با قابلیت SSL، دو راه وجود دارد:
- استفاده از قابلیت (Server Name Indication) SNI در سرور: استفاده از این قابلیت مستلزم شرایط خاصی است؛ مثلاً نسخههای خاصی (معمولاً نسخههای قدیمی) از مرورگرها و وبسرورها از این قابلیت پشتیبانی نمیكنند. برای اطلاعات كاملتر در مورد SNI به اینجا مراجعه نمایید.
- استفاده از گواهی SAN یا گواهی Wildcard :
- در صورتی كه بخواهیم برای چند دامنه مختلف، فقط یك IP اختصاصی جهت استفاده از قابلیت SSL داشته باشیم، میتوان از یك گواهی SAN استفاده نمود. لازم به ذكر است كه دامنهها باید روی یك سرور باشند.
- در صورتی كه بخواهیم برای چند زیردامنه مختلف، فقط یك IP اختصاصی جهت استفاده از قابلیت SSL داشته باشیم، میتوان از گواهی Wildcard استفاده نمود. لازم به ذكر است كه زیردامنهها باید روی یك سرور باشند.