SSL (Secure Socket Layer)

Secure Socket Layer که به اختصار به آن SSL می گوئیم به معني لايه اتصال امن  یک پروتکل (مجموعه اي از قوانين)امن و راه حلی برای ارتباط ایمن میان سیستم های سرویس دهنده Server و سرویس گیرنده Client می باشد .
امروزه اينترنت به يکي از ارکان ارتباطي بين افراد و سازمان ها تبديل شده است. بسياري از ما روزانه اطلاعاتي از اين طريق مي گيريم يا مي فرستيم. اين اطلاعات از نظر اهميت با هم تفاوت زيادي دارند. برخي از اين اطلاعات مانند اخبار يک سايت اهميت امنيتي چنداني ندارند، اما در طرف ديگر اسناد شخصي مثل ايميل ها، رمز حساب هاي بانکي و ... قرار دارند که دوست نداريم به دست ديگران بيافتند.
همان طور که می دانیم، اطلاعاتی که به طور معمول در صفحات وب رد و بدل می شوند در بستر پروتکل HTTP یا Hyper Text Transfer Protocol انتقال می یابند، این پروتکل استانداردی تعریف شده است که با آن متن ساده یا plain text را منتقل می کنند، از طرفی این داده ها به دلیل رمزنگاری نشدن، برای افراد سوم شخص قابل خواندن هستند، مثلا اگر پسورد خود را در بستر این پروتکل به سروری منتقل کنید، ممکن است از طریق سرویس دهنده اینترنت، قابل روئیت باشد (با استفاده از برنامه هایی تحت عنوان sniffer)، لذا http از لحاظ امنیتی برای کارهایی که به اطلاعات حساس از جمله حسابهای بانکی و رمزهای مشتریان مربوط می شود اصلا مناسب نیست، از این رو بانک ها و فروشگاههای اینترنتی و در کل سایتهایی که امنیت کاربران برایشان اهمیت زیادی دارد، از پروتکلی دیگر به نام HTTPS یا Hyper Text Transfer Protocol Secure بدین منظور استفاده می کنند.
اگر شما به آدرس URL سایتی مثل گوگل نگاه کنید می بینید که با HTTPS شروع شده است. S انتهای این پروتکل به معنای این است که اتصال بین دستگاه شما و سایت امن است. اتصالات امن معمولا با استفاده از گواهینامه ایجاد می شوند.
مزیت استفاده از پروتکل امنیتی SSL بالابردن امنیت پروتکل های لایه ی کاربردی از مدل TCP/IP  می باشد که بر اساس یک الگوریتم بر روی داده های خام محرمانه رمز گذاری صورت می گیرد تا بتوان آنها را از کانال ارتباطی غیر امن یعنی اینترنت عبور داد.

پروتکل HTTPS چیست و چه فرقی با HTTP دارد :

HTTPS پروتکلی است که در بستر آن امکان رمزنگاری (encrypt) اطلاعات فراهم می شود، به لحاظ تخصصی در HTTP پورت ۸۰ مورد استفاده قرار می گیرد، در حالی که در HTTPS این پورت ۴۴۳ است؛ از طرفی همانطور که گفتیم در HTTP داده ها به صورت متن ساده یا plain text هستند اما در HTTPS رمزنگاری داده ها به وسیله SSL انجام می شود.
پروتکل امنیتی (SSL) یکی از پروتکل‌های استاندارد جهت انتقال داده‌ها بین سرویس دهنده (Server) و سرویس گیرنده (Client) به صورت رمزنگاری شده است.

نحوه رمزگذاری :

اطلاعات در اينترنت - درست مثل فرستادن يک نامه- به صورت فايل هاي متني جابجا مي شوند. همان طور که يک نامه از زماني که در صندوق پست گذاشته مي شود تا زماني که به صاحبش مي رسد در دست افراد مختلفي قرار مي گيرد، به همان صورت نيز اطلاعات ما توسط سيستم هاي زيادي دست به دست مي شود تا به سايت يا شخص مورد نظر مي رسد. اگر اطلاعات به صورت عادي فرستاده شوند، هر کدام از سيستم هاي بين راه مي توانند آنها را ببينند. پس براي جلوگيري از خوانده شدن و سرقت احتمالي، بايد آنها را رمزگذاري کرد.
SSL از یک کلید خصوصی برای به رمز درآوردن اطلاعاتی که بر روی یک ارتباط SSL منتقل می‌شوند استفاده می‌نماید. امروزه تمام مرورگرهای مدرن از این پروتکل پشتیبانی می‌نمایند. هم‌چنین بسیاری از وب‌سایت‌ها برای فراهم کردن بستری مناسب جهت حفظ کردن اطلاعات محرمانهٔ کاربران (مانند شمارهٔ کارت اعتباری) از این پروتکل استفاده می‌نمایند. طبق آنچه در استاندارد آمده‌است. URLهایی که نیاز به یک ارتباط از نوع SSL دارند با:https به جای:http شروع می‌شوند. SSL یک پروتکل مستقل از لایه برنامه‌است (Application Independent) بنابراین، پروتکل‌هایی مانند FTP, HTTP و شبکه راه دور قابلیت استفاده از آن را دارند. با این وجود SSL برای پروتکل‌های FTP, HTTP و آی‌پی‌سک بهینه شده‌است. در ssl ازدوکلیدعمومی وخصوصی استفاده می‌شودهمچنین در ssl ازدوحالت متقارن ونامتقارن نیز می‌توان نام بردکه می‌تواند همان بحث کلید عمومی واختصاصی باشد به اینصورت که دررمزنگاری متقارن ازدو کلیدعمومی توسط serverوclient استفاده می‌شود که در این صورت مطالب رمزنگاری شده ازامنیت برخوردارنخواهدشدزیراکلید مشترک مابین (سرورومشتری) توسط اشخاص سوم شخص می‌تواند استراق سمع یاهک شودبنابراین ازحالت نامتقارن استفاده می‌شوددر رمزنگاری نامتقارن ازدوکلیدBوAاستفاده می‌شودیعنی اگر مطالب باکلیدA رمزنگاری شوددیگر باهمان کلیدرمزگشایی نخواهد شدفقط باکلیدB که متناظرباکلیدA می‌باشدرمزگشایی خواهدشد..
در یک بیان ساده، پس از برقراری اتصال امن، ssl اطلاعات را به وسیله دو کلید رمزنگاری می کند، کلید عمومی برای اشخاص سوم شخص قابل خواندن است اما کلید دوم تنها توسط ارسال کننده و دریافت کننده داده، قابل استفاده است.
شرکت های اعطا کننده ی گواهینامه های امنیتی SSL هویت هر کدام از طرفین را برای دیگری تائید می کنند و تضمین کنند که در صورتی که اطلاعات به سرقت رفت برای هکر قابل استفاده نباشد (اطلاعات رمزگذاری شده باشد.)

اطلاعات معمولاً کي و کجا دزديده مي شوند :

زماني که آدرس يک سايت را در مرورگر وارد مي کنيم اطلاعات بين کامپيوتر ما و کامپيوتري که سايت روي آن قرار دارد (سرور) در حال رد و بدل هستند. پس اگر بتوانيم به طريقي ارتباط بين کامپيوتر خود و کامپيوتر سرور را امن کنيم اطلاعات ما دزديده نخواهند شد.

تاثیر استفاده از پروتکل امنیتی SSL بر رتبه های گوگل :

در صورتی که سئو سایت برای شما اهمیت دارد و سایت خود را بهینه سازی کرده اید استفاده از پروتکل SSL  برای شما می تواند در بهبود نتایج جستجو مفید باشد.
گوگل به طور واضح استفاده از این پروتکل را یک مزیت اعلام کرده ، برای این منظور در نظر داشته باشید که برای استفاده از SSL  بر روی دامنه های IR احتمالا با مشکل مواجه خواهید شده ، چرا که این دامنه در حال حاضر تحریم می باشد. و جهت تهیه اس اس ال باید حتما پسوند دامنه ir را به عرضه کننده اطلاع دهید.
ولی اگر از دامنه های دیگری همچون .Com استفاده می کنید می توانید با هزینه ای مشخص در سال سایت خود را مجهز به پروتکل امنیتی SSL / Https کنید …

آیا پروتکل SSL واقعاً امن است :


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

کدام سایت ها به گواهینامه SSL نیاز دارند :

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

ملزومات ارتباط بر پايه SSL :

براي داشتن ارتباطات امن مبتني بر SSL عموماً به دو نوع گواهي ديجيتال SSL ، يکي براي سرويس دهنده و ديگري براي سرويس گيرنده و يک مرکز صدور و اعطاي گواهينامه ديجيتال (Certificate authorities) نياز است. وظيفه CA اين است که هويت طرفين ارتباط، نشاني ها، حساب هاي بانکي و تاريخ انقضاي گواهينامه را بداند و براساس آن ها هويت ها را تعيين نمايد.

تعدادی از ارائه دهندگان پروتکل امن SSL :

شرکت‌های بسیاری اقدام به ارائه سرویس‌های پروتکل امن SSL کرده اند. با این حال، تعدادی از ارائه دهندگان، شرکت‌های زیر هستند:
Symantec
COMODO
Entrust
Digicert
Google Internet Authority  (مخصوص سرویس‌های خود گوگل)

حساب هاي بانکي :

در ايران همه بانک هاي ارائه دهنده خدمات بانکداري الکترونيک، از پروتکل اس اس ال استفاده مي کنند. گفتيم که براي اطمينان از اين موضوع کافي است در صفحات خدمات اينترنتي بانک خود که اطلاعات مهم (مثل حساب کاربري يا رمز ورود) را درج و ارسال مي کنيد، به آدرس نگاه کنيد. بايد https در ابتداي آدرس وجود داشته باشد. علاوه براين توصيه مي شود با مراجعه به بانک تان، نحوه استفاده امن از خدمات اينترنتي شان را سؤال کنيد.

تاثیر گواهینامه SSL روی سرعت لود شدن صفحات :

شاید نگران این موضوع باشید که استفاده از SSL موجب کند شدن و دیر لود شدن صفحات سایت شما می شود. خوشبختانه رمزگذاری روی سرعت وب سایت شما تاثیر قابل توجهی ندارد. در اکثر موارد HTTPS به HTTP/2 اشاره دارد که در واقع یک استاندارد از پروتکل HTTP است. این پروتکل طراحی شده است تا از طریق فشرده سازی اطلاعات و کاهش فرآیندهای مورد استفاده ۵۰ درصدی زمان بارگذاری صفحات را کاهش دهد. در اینجا چیزی که شما باید بدانید این است که وب از سال ۱۹۹۱ میلادی از HTTP استفاده می کرده و سپس برای بهبود عملکرد به HTTP/2 ارتقاء پیدا کرده است.
برای اثبات این موضوع که نصب گواهینامه SSL روی سرعت سایت شما تاثیری ندارد می توانید سرعت سایت هایی مانند فیس بوک را که دارای گواهینامه SSL است را چک کنید و به سرعت آنها توجه کنید. البته ممکن است گاهی اوقات سرعت تحت تاثیر قرار بگیرد اما بسیار ناچیز است چون ما در مورد تاخیر میلی ثانیه ای صحبت می کنیم. گاهی اوقات این تاخیر ناشی از فاصله سرور است که شما نمی توانید به طور معمول به این موضوع کمکی کنید

انواع گواهینامه دیجیتال امنیت SSL :


SSL انواع بسیار زیاد و متنوعی از لحاظ امنیت ، کاربرد و قیمت دارد اما به صورت کلی به ۳ نوع گواهینامه دیجیتال تقسیم می شود:
گواهی دیجیتال نوع DV SSL یا Domain Validated SSL Certificate  (گواهینامه تایید دامنه)
گواهی دیجیتال  نوع OV SSL یا Organization Validated SSL Certificate  (گواهينامه تاييد نام شرکت)
گواهی دیجیتال نوع EV یا Extended Validated SSL Certificate  (گواهينامه تاييد نام شرکت به همراه نوار تایید سبز رنگ و عنوان شرکت و یا سازمان)
گواهینامه های دیجیتال DV SSL و OV SSL به دو صورت Standard و WildCard SSL صادر می شوند.

گواهینامه های SSL تمام اطلاعات را رمزگذاری نمی کنند :

HTTPS به این معناست که اتصال شما امن است اما به این معنا نیست که سرور وب هم امن است. تصور کنید که در یک تونل رانندگی می کنید. تونل از وسیله نقلیه شما محافظت می کند و اجازه نمی دهد که از طرف بالا و اطراف ماشین شما دچار حادثه شود. با این حال وقتی شما به مقصد می رسید ممکن است مشکلاتی برای شما رخ دهد. همین موضوع هم در مورد داده ها صادق است. داده های شما رمزنگاری می شود تا در طول مسیر انتقال به سرقت برده نشوند اما هنگامی که این اطلاعات در یک سرور ذخیره می شود SSL دیگر معنایی ندارد.