Secure Sockets Layer یا به اختصار SSL ، یکی از پروتکل های رمزنگاری است که به منظور برای حفظ امنیت تبادل اطلاعات از طریق اینترنت ایجاد شده است. پروتکل SSL توسط شرکت Netscape به منظور نقل و انتقال امن و رمزی اطلاعات ایجاد شد. امروزه تقریبا تمام مرورگرهای استاندارد از جمله فایر فاکس، اینترنت اکسپلورر، اپرا، گوگل کروم و سافاری از این قابلیت پشتیبانی میکنند. در ادامه با این پروتکل رمزگذاری بیشتر آشنا خواهیم شد.
SSL چیست؟
اطلاعات و داده ها در اینترنت به صورت پیشفرض در بستر پروتکل HTTP یا Hyper Text Transfer Protocol انتقال مییابند. در این پروتکل دادهها رمزگذاری نمیشوند و برای افراد دیگر قابل خواندن هستند. مثلا اگر پسورد و اطلاعات شخصی خود را در بستر این پروتکل به سروری منتقل کنید، این امکان وجود دارد که از طریق سرویس دهنده اینترنت، این اطلاعات قابل مشاهده باشند. بنابراین بسیاری از سرویسهای مبتنی بر اینترنت از پروتکل دیگری جهت انتقال دادهها بین سرویس دهنده (Server) و سرویس گیرنده (Client) استفاده کردند.
این پروتکل امنیتی همان SSL است که اطلاعات را با استفاده از کلیدهای خصوصی و عمومی رمزنگاری (Encrypt) میکند. اطلاعات رمزگذاری شده توسط این پروتکل در سمت دیگر رمزگشایی (Decrypt) می شوند. امنیت در این پروتکل در مبدا و مقصد اطلاعات حفظ میشود، یعنی در هر دو طرف، فرایند رمزنگاری و رمزگشایی انجام می گیرد. در ابتدا از این پروتکل فقط در سایت هایی که اطلاعات حساس کاربران مانند اطلاعات شخصی، اطلاعات حسابهای بانکی و… را دریافت میکردند، استفاده میشد.
اما امروزه از این پروتکل معمولا در بیشتر سایتها استفاده میشود. زیرا موضوع امنیت اطلاعات کاربران بیش از پیش در دنیای اینترنت اهمیت پیدا کرده است. از طرفی دیگر استفاده از پروتکل امنیتی SSL در سایتها از نظر سئو بسیار مفید خواهد بود. وب سایت هایی که از این پروتکل جهت رمزگذاری دادهها استفاده می کنند، معمولا از طریق پروتکل HTTPS با کلاینتها ارتباط برقرار می کنند. برای داشتن یک ارتباط امن در بستر پروتکل HTTPS برای سایت خود، نیاز به تهیه یک گواهی معتبر ssl دارید.
امنیت در پروتکل SSL
همان طور که اشاره شد، در این پروتکل اطلاعات تبادل شده بین سرور و کلاینت رمزگذاری می شوند؛ بر این اساس این اطلاعات توسط شخص سوم قابل مشاهده نخواهند بود. البته همچنان دسترسی به این دادهها امکان پذیر است، اما با توجه به اینکه آنها رمزگذاری شده اند، برای مشاهده دادههای آن ها، نیازمند رمزگشایی هستند.رمزگشایی این داده بدون کلید مورد استفاده در نشست (session) ارتباطی امن امکان پذیر نیست. بنابراین، این پروتکل عملاً غیرقابل نفوذ است.
این موضوع به این منظور نیست که راهی برای سرقت اطلاعات وجود ندارد. زیرا این دادهها فقط در طول مسیر انتقال میان سرور و کلاینت رمزگذاری شده اند؛ اما دادههای اصلی، در سمت سرور و کلاینت توسط پروتکل امن SSL رمزنگاری نمی شوند. به همین دلیل، ممکن است با استفاده از بدافزاری یا روشهای دیگر، این اطلاعات قبل از رمزگذاری و یا پس از رمزگشایی به سرقت روند. حتی ممکن است کلیدهای رمزگشایی و رمزگذاری اطلاعات، از سمت سرویس دهنده پروتکل امن، به سرقت رفته باشند. البته تاکنون هیچ گزارشی مبنی بر سرقت اطلاعاتی که با استفاده از این پروتکل تبادل شده اند، منتشر نشده است.
رمزگذاری اطلاعات
برقراری ارتباط از طریق SSL، نیازمند پیش نیازهایی از جمله کلیدهای نامتقارن (شامل کلید عمومی و کلید خصوصی) و کلید سیشن (Session key) است. کلید عمومی همانطور که از نامش مشخص است، برای اشخاص سوم شخص قابل خواندن است. اما کلید خصوصی فقط توسط ارسال کننده و دریافت کننده اطلاعات، قابل استفاده میباشد.
همچنین این پروتکل میتواند از ترکیب رمزنگاری متقارن و نامتقارن استفاده کند. در الگوریتم رمزنگاری متقارن کلید رمزگذاری و رمزگشایی یکسان است ولی در الگوریتم رمزگذاری نامتقارن، این کلیدها متفاوت هستند. کلیدهای نامتقارن روی سرور قرار دارند، ولی کلید سیشن توسط سرور و کلاینت برای برقراری ارتباط SSL ساخته می شود. کلید سیشن ساخته شده توسط کلاینت و سرور یکسان و یا به عبارتی بهتر متقارن است. در این روش پس از اینکه اتصال امن برقرار شد، دادهها به وسیله دو کلید عمومی (Public key) و خصوصی (Private key) رمزنگاری میشوند. فرآیند برقراری ارتباط در این روش به صورت زیر است :
- سرور یک کپی از کلید عمومی خود را برای کلاینت (مرورگر کاربر) ارسال می کند.
- کلاینت با استفاده از کلید عمومی که دریافت کرده است، کلید سیشن ساخته شده را کدگذاری میکند و برای سرور میفرستد.
- سرور با استفاده از کلید خصوصی که دارد، اطلاعات دریافتی را رمز گشایی میکند تا به Session key دسترسی پیدا کند.
- در نهایت سرور و کلاینت هر دو با استفاده از کلید سیشن، اطلاعاتی را رمزنگاری و رمزگشایی می کنند. این فرآیند یک مسیر ارتباطی امن میان کلاینت و سرور ایجاد می کند. زیرا تنها این دو از کلید سیشن اطلاع دارند و این کلید فقط با هدف این اتصال ایجاد شده است. در هر زمان که اتصال میان سرور و کلاینت قطع شود، این مراحل باید دوباره انجام شوند.
مزایای استفاده از SSL
استفاده از SSL علاوه بر افزایش امنیت اطلاعات کاربران، مزایای مهم دیگری نیز برای وبسایتها به همراه دارد:
افزایش اعتماد کاربران
زمانی که کاربران در نوار آدرس مرورگر علامت قفل یا پیشوند HTTPS را مشاهده میکنند، اطمینان بیشتری نسبت به امنیت وبسایت پیدا میکنند. این اعتماد بهخصوص در وبسایتهایی که اطلاعات حساس مانند شماره کارت بانکی یا اطلاعات هویتی کاربران را دریافت میکنند، بسیار مهم است.بهبود رتبه سایت در موتورهای جستجو (SEO)
گوگل به صراحت اعلام کرده است که استفاده از HTTPS یکی از سیگنالهای رتبهبندی در نتایج جستجو است. بنابراین فعالسازی SSL میتواند تأثیر مثبتی بر سئوی سایت داشته باشد و در نتیجه بازدیدکنندگان بیشتری را جذب کند.محافظت در برابر حملات شنود (Sniffing) و حملات میانی (Man-in-the-Middle)
در صورت عدم استفاده از SSL، مهاجمان میتوانند با قرار گرفتن در مسیر ارتباطی میان کلاینت و سرور، اطلاعات حساس کاربران را مشاهده یا حتی تغییر دهند. SSL با رمزنگاری دادهها از بروز چنین حملاتی جلوگیری میکند.معتبر بودن هویت سرور
در فرآیند صدور گواهی SSL، مراکز معتبر صدور گواهی (CA: Certificate Authority) هویت مالک دامنه را بررسی و تایید میکنند. این موضوع باعث میشود کاربران با اطمینان بیشتری به وبسایت متصل شوند و احتمال سوءاستفاده از دامنههای جعلی کاهش یابد.
انواع گواهینامههای SSL
گواهیهای SSL در انواع مختلفی صادر میشوند که هر کدام بسته به نیاز سایت، سطح متفاوتی از امنیت و اعتبار را فراهم میکنند:
گواهینامه Domain Validation یا DV
این نوع گواهی فقط دامنه را تأیید میکند و سریعترین و ارزانترین نوع SSL محسوب میشود. برای وبسایتهای شخصی و بلاگها معمولاً کافی است.گواهینامه Organization Validation یا OV
در این نوع گواهی، علاوه بر تأیید دامنه، اطلاعات سازمان مالک وبسایت نیز مورد بررسی قرار میگیرد. این گواهی برای وبسایتهای شرکتی و تجاری مناسبتر است.گواهینامه Extended Validation یا EV
گواهی EV بالاترین سطح اعتبار را دارد. در این نوع، اطلاعات کامل سازمان با جزئیات دقیق بررسی میشود و نام شرکت در نوار آدرس مرورگر نمایش داده میشود. بانکها و سازمانهای بزرگ از این نوع گواهی استفاده میکنند.
نتیجه گیری
پروتکل SSL به عنوان یکی از مهمترین ابزارهای تأمین امنیت ارتباطات آنلاین، نقش کلیدی در حفاظت از اطلاعات کاربران و افزایش اعتبار وبسایتها دارد. با استفاده از این پروتکل، میتوان ارتباطی امن، قابل اعتماد و رمزگذاریشده میان کاربران و سرورها برقرار کرد. در دنیای امروز که تهدیدهای سایبری به طور روزافزون در حال گسترش هستند، استفاده از SSL دیگر یک انتخاب نیست، بلکه یک ضرورت است.