گواهينامه امنيت SSL

صفحه اصلی /چیست SSL


ssl چیست


SSL چیست ؟


همان طور که می دانیم، اطلاعاتی که به طور معمول در صفحات وب رد و بدل می شوند در بستر پروتکل HTTP یا Hyper Text Transfer Protocol انتقال می یابند، این پروتکل استانداردی تعریف شده است که با آن متن ساده یا plain text را منتقل می کنند، از طرفی این داده ها به دلیل رمزنگاری نشدن، برای افراد سوم شخص قابل خواندن هستند، مثلا اگر پسورد خود را در بستر این پروتکل به سروری منتقل کنید، ممکن است از طریق سرویس دهنده اینترنت، قابل روئیت باشد (با استفاده از برنامه هایی تحت عنوان sniffer)، لذا http از لحاظ امنیتی برای کارهایی که به اطلاعات حساس از جمله حسابهای بانکی و رمزهای مشتریان مربوط می شود اصلا مناسب نیست، از این رو بانک ها و فروشگاههای اینترنتی و در کل سایتهایی که امنیت کاربران برایشان اهمیت زیادی دارد، از پروتکلی دیگر به نام HTTPS یا Hyper Text Transfer Protocol Secure بدین منظور استفاده می کنند.
پروتکل HTTPS چیست و چه فرقی با HTTP دارد؟
HTTPS پروتکلی است که در بستر آن امکان رمزنگاری (encrypt) اطلاعات فراهم می شود، به لحاظ تخصصی در HTTP پورت 80 مورد استفاده قرار می گیرد، در حالی که در HTTPS این پورت 443 است؛ از طرفی همانطور که گفتیم در HTTP داده ها به صورت متن ساده یا plain text هستند اما در HTTPS رمزنگاری داده ها به وسیله SSL انجام می شود.
پروتکل امنیتی (SSL) یکی از پروتکل‌های استاندارد جهت انتقال داده‌ها بین سرویس دهنده (Server) و سرویس گیرنده (Client) به صورت رمزنگاری شده است.

what is ssl

SSL به چه معناست؟
کلمه SSL مخفف عبارت Secure Socket Layer به معنای "لایه امن پروتکل" است و با نام‌های زیر شناخته و ربط داده می‌شود:
Https (پروتکل امن)
Hypertext transfer protocol over secure layer (پروتکل انتقال ابر داده از طریق لایه امنیتی)
s-HTTP
Secure HTTP
SSL  در اصطلاح به سیستم امن و رمزی انتقال داده اطلاق می شود، ssl را ابتدا  در تاریخ 1996 میلادی شرکت Netscape به منظور نقل و انتقال امن و رمزی اطلاعات ایجاد نمود و اکنون تقریبا تمام مرورگرهای استاندارد از جمله فایر فاکس، اینترنت اکسپلورر، اپرا، گوگل کروم و سافاری آن را پشتیبانی می کنند؛ همچنین در این رابطه شرکتهایی وجود دارند که گواهی ssl  ارائه می کنند.
پروتکل امن SSL
پروتکل امن SSL چیست؟
SSL یک پروتکل استاندارد و رایج امنیتی برپایه رمزگذاری است که در آن داده‌های رد و بدل شده بین سرویس دهنده (Server) و سرویس گیرنده (Client) توسط کلیدهای خاصی خصوصی و عمومی رمزنگاری (Encrypt) شده و در سمت دیگر رمزگشایی (Decrypt) می‌شود. امنیت در این پروتکل دو طرفه است؛ یعنی در هر دو طرف، فرایند رمزنگاری و رمزگشایی انجام می‌گیرد.
بسیاری از سرویس دهندگانی که اطلاعات و داده‌های حساس مانند اطلاعات کارت‌های بانکی (مثلاً در شبکه بانکی کشور)، کارت‌های شناسایی، رمزهای عبور مهم و ... را بین خود و سرویس گیرنده رد و بدل می‌کنند، از پروتکل‌های امنیتی مانند SSL استفاده می‌کنند.
وبسایت‌هایی که از پروتکل امن SSL جهت رمزگذاری داده‌ها استفاده می‌کنند، معمولاً از طریق پروتکل HTTPS (به جای حالت عادی و غیر امن آن یعنی HTTP) با سرویس گیرنده‌ها ارتباط برقرار می‌کنند. در مرورگرها، اینگونه وبسایت‌ها معمولاً با علامت قفل سبز (به معنای ارتباط امن سالم) نشان داده می‌شوند:

نمایش گ.اهی امنیت SSL در مرورگرهای مختلف

تشریح گواهی امنیت ssl در تصویر

شیوه رمزنگاری اطلاعات در ssl به چه صورت است؟
در یک بیان ساده، پس از برقراری اتصال امن، ssl اطلاعات را به وسیله دو کلید رمزنگاری می کند، کلید عمومی برای اشخاص سوم شخص قابل خواندن است اما کلید دوم تنها توسط ارسال کننده و دریافت کننده داده، قابل استفاده است.
چگونه از استفاده کردن یک سایت از پروتکل امن اطمینان حاصل کنیم؟
چند فاکتور در تعیین معتبر بودن گواهی یک سایت نقش دارند، اول از همه کلید کوچکی است که در مرورگرهای مختلف با کمی اختلاف در مکان و شکل، نشان داده می شود، برخی از مرورگرها در نسخه های جدید خود پس از برقراری یک اتصال امن، نوار آدرس را به رنگ سبز نیز نشان می دهند؛ فاکتور دیگر وجود عبارت https در ابتدای آدرس آن سایت است.
چرا در برخی از سایت ها، مرورگر تقاضای تایید اعتبار می کند؟
بعضا ممکن است با صفحاتی روبرو شده باشید که مرورگر نسبت به منقضی شدن اعتبار گواهی ارتباط امن آن، به شما هشدار دهد، این اتفاق به چند دلیل ممکن است رخ دهد، یکی اینکه گواهی آن سایت واقعا به پایان رسیده و تمدید نشده باشد، دوم اینکه تاریخ سیستم شما از زمان حقیقی، عقب تر یا حتی جلوتر باشد، دلیل سوم هم می تواند به مسائل فنی صفحه و ترکیب اشتباه داده های عادی با داده های رمزنگاری شده مربوط باشد که این عامل به مسائل فنی سایت ارتباط دارد.
چگونه برای سایت خود گواهی ssl تهیه کنیم؟
برای داشتن یک ارتباط امن در بستر HTTPS برای سایت خود، نیاز به گواهی معتبر ssl دارید، این گواهی از طریق نمایندگی ها و سرویس دهنده های هاست نیز قابل خریداری است، علاوه بر این به سروری با قابلیت پشتیانی از ssl و یک ip اختصاصی احتیاج خواهید داشت.

Secure Socket Layer

نحوه عملکرد داخلی پروتکل Secure Socket Layer 

همان طور که می دانید SSL می تواند از ترکیب رمزنگاری متقارن و نامتقارن استفاده کند. رمزنگاری کلید متقارن سریع تر از رمزنگاری کلید عمومی است و از طرف دیگر رمزنگاری کلید عمومی تکنیک های احراز هویت قوی تری را ارایه می کند. یک جلسه SSL (SSL Session) با یک تبادل پیغام ساده تحت عنوان SSL Handshake شروع می شود. این پیغام اولیه به سرویس دهنده این امکان را می دهد تا خودش را به سرویس دهنده دارای کلید عمومی معرفی نماید و سپس به سرویس گیرنده و سرویس دهنده این اجازه را می دهد که یک کلید متقارن را ایجاد نمایند که برای رمزنگاری ها و رمزگشایی سریع تر در جریان ادامه مبادلات مورد استفاده قرار می گیرد. گام هایی که قبل از برگزاری این جلسه انجام می شوند براساس الگوریتم RSA Key Exchange عبارتند از: 

۱- سرویس گیرنده، نسخه SSL مورد استفاده خود، تنظیمات اولیه درباره نحوه رمزگذاری و یک داده تصادفی را برای شروع درخواست یک ارتباط امن مبتنی بر SSL به سمت سرویس دهنده ارسال می کند. 

۲- سرویس دهنده نیز در پاسخ نسخه SSL مورد استفاده خود، تنظیمات رمزگذاری و داده تصادفی تولید شده توسط خود را به سرویس گیرنده می فرستد و همچنین سرویس دهنده گواهینامه خود را نیز برای سرویس گیرنده ارسال می کند و اگر سرویس گیرنده از سرویس دهنده، درخواستی داشت که نیازمند احراز هویت سرویس گیرنده بود، آن را نیز از سرویس گیرنده درخواست می کند. 

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

۴- سرویس گیرنده یک مقدار به نام Secret Premaster را برای شروع جلسه ایجاد می کند و آن را با استفاده از کلید عمومی (که اطلاعات آن معمولا در سرویس دهنده موجود است) رمزنگاری می کند و این مقدار رمز شده را به سرویس دهنده ارسال می کند. 

۵- اگر سرویس دهنده به گواهینامه سرویس گیرنده نیاز داشت می بایست در این گام برای سرویس دهنده ارسال شود و اگر سرویس گیرنده نتواند هویت خود را به سرویس دهنده اثبات کند، ارتباط در همین جا قطع می شود. 

۶- به محض این که هویت سرویس گیرنده برای سرویس دهنده احراز شد، سرویس دهنده با استفاده از کلید اختصاصی خودش مقدار Premaster Secret را رمزگشایی می کند و سپس اقدام به تهیه مقداری به نام Master Secret می نماید. 

۷- هم سرویس دهنده و هم سرویس گیرنده با استفاده از مقدار Master Secret کلید جلسه (Session Key) را تولید می کنند که در واقع کلید متقارن مورد استفاده در عمل رمزنگاری و رمزگشایی داده ها حین انتقال اطلاعات است و در این مرحله به نوعی جامعیت داده ها بررسی می شود. 

۸- سرویس گیرنده پیغامی را به سرویس دهنده می فرستد تا به او اطلاع دهد، داده بعدی که توسط سرویس گیرنده ارسال می شود به وسیله کلید جلسه رمزنگاری خواهد شد و در ادامه، پیغام رمز شده نیز ارسال می شود تا سرویس دهنده از پایان یافتن Handshake سمت سرویس گیرنده مطلع شود. 

۹- سرویس دهنده پیغامی را به سرویس گیرنده ارسال می کند تا او را از پایان Handshake سمت سرویس دهنده آگاه نماید و همچنین این که داده بعدی که ارسال خواهد شد توسط کلید جلسه رمز می شود. 

۱۰- در این مرحله SSL Handshake تمام می شود و از این به بعد جلسه SSL شروع می شود و هر دو عضو سرویس دهنده و گیرنده شروع به رمزنگاری و رمزگشایی و ارسال داده ها می کنند.

پروتکل SSL
آیا پروتکل SSL واقعاً امن است؟
در این پروتکل، همان‌طور که گفته شد، داده‌ها بین سرویس دهنده و گیرنده رمزگذاری می‌شوند؛ به همین دلیل، داده‌ها در طول انتقال از کانال غیر امن مانند اینترنت، اینترانت و ...، حفاظت شده باقی می‌مانند. هرچند دسترسی به این داده‌ها ممکن است، اما به دلیل آن‌که رمزگذاری شده اند، برای بدست آوردن داده‌های رمزگشایی شده اصلی، باید کلید مورد استفاده در آن نشست ارتباطی امن (Secure connection session) را دانست. از این رو، این پروتکل عملاً غیرقابل نفوذ است. البته در دنیای هک و امنیت، چیز غیرممکنی وجود ندارد! برای مثال، ممکن است طی فرایندهای خاص، بسیار پیچیده و مهندسی شده، حتی بدون داشتن کلید نیز روزی بتوان داده‌های اصلی را بدست آورد یا مثلاً ممکن است کلیدهای مورد استفاده در فرایند رمزگذاری و رمزنگاری، از سمت سرویس دهنده پروتکل امن، به سرقت رفته باشند.
از سوی دیگر، داده‌ها فقط و فقط در طول مسیر انتقال از کانال مورد نظر رمزگذاری شده اند؛ یعنی داده‌های اصلی، در سمت سرویس دهنده و گیرنده توسط پروتکل SSL رمزنگاری نمی‌شوند. به همین دلیل، درصورتی که بدافزاری در هر یک از این سمت‌ها قرار بگیرد، می‌تواند داده‌های اصلی را به راحتی بدزدد. البته تاکنون گزارشی از سرقت اطلاعات از طریق کانال امن SSL منتشر نشده است بنابراین می‌توان آن را یک پروتکل "واقعاً امن" دانست.

ارائه دهندگان پروتکل امن SSL

تعدادی از ارائه دهندگان پروتکل امن SSL:
شرکت‌های بسیاری اقدام به ارائه سرویس‌های پروتکل امن SSL کرده اند. با این حال، تعدادی از ارائه دهندگان، شرکت‌های زیر هستند:

Symantec
COMODO
Entrust
Digicert
Google Internet Authority (مخصوص سرویس‌های خود گوگل)
TURKTRUST (سرویس محبوب در ایران)

انواع گواهینامه دیجیتال امنیت SSL :
SSL انواع بسیار زیاد و متنوعی از لحاظ امنیت ، کاربرد و قیمت دارد اما به صورت کلی به 3 نوع گواهینامه دیجیتال تقسیم می شود:

گواهی دیجیتال نوع DV SSL یا Domain Validated SSL Certificate (گواهینامه تایید دامنه)
گواهی دیجیتال  نوع OV SSL یا Organization Validated SSL Certificate (گواهينامه تاييد نام شرکت)
گواهی دیجیتال نوع EV یا Extended Validated SSL Certificate (گواهينامه تاييد نام شرکت به همراه نوار تایید سبز رنگ و عنوان شرکت و یا سازمان)

گواهینامه های دیجیتال DV SSL و OV SSL به دو صورت Standard و WildCard SSL صادر می شوند.
انواع گواهی دیجیتال در بخش های مربوطه به صورت کامل شرح داده شده اند جهت اطلاع و توضیحات هر کدام لطفا بر روی نام گواهی دیجیتال کلیک نمایید تا به صفحه مربوطه راهنمایی شوید.


و در پایان چند نکته:
- اگرچه HTTPS و رمزنگاری SSL امن و قابل اطمینان است، اما به دلیل وجود محدودیتهایی، معمولا سرعت انتقال اطلاعات از این طریق نسبت به شیوه معمول یعنی HTTP پائین تر است، لذا برای افزایش کارایی، بهتر است تنها در صفحاتی از این پروتکل استفاده کنید که اطلاعات حساسی در آنها رد و بدل می شود.
- در استفاده از سرور HTTPS دقت داشته باشید که مخصوصا در مورد تصاویری که بارگذاری می شوند، آنها را با محتوایی که از قسمت HTTPS فراخوانی می شوند در یک صفحه قرار ندهید (یا لااقل به صورت آدرس کامل http://www قرار ندهید)، چرا که موجب می شود تا مرورگر کاربران برای هر تصویر، سوالی مبنی بر معتبر نبودن اتصال و ادامه دادن یا ندادن درخواست، از آنها داشته باشد و واضح است که این موضوع موجب نارضایتی کاربران خواهد شد.