حتما بارها کلمه SSL را شنیده اید؟ اما براستی SSL چیست؟ SSL محفف عبارت Secure Socket Layer به معنی «لایه امن پروتکل» است . لایه امن پروتکل با نام های دیگری مانند https ( پروتکل امن )، Hypertext transfer protocol over secure layer (پروتکل انتقال ابر داده از طریق لایه امنیتی) و … نیز نامیده می شود.
SSL به سیستم امن و رمزی انتقال داده گفته می شود. پروتکل امن ابتدا از سوی یک شرکتی به نام نت اسکیپ در سال 1996 برای نقل و انتقال امن و رمزی اطلاعات بوجود آمد . از این پروتکل امن اکنون بسیاری از جستجوگرها مانند فایر فاکس، اینترنت اکسپلورر، اپرا، گوگل کروم و سافاری آن را پشتیبانی می کنند؛ همچنین در این رابطه شرکت هایی وجود دارند که گواهی ssl صادر می کنند.
به عبارتی SSL یک پروتکل استاندارد و رایج امنیتی بر پایه رمزگذاری است که در آن داده های رد و بدل شده بین سرویس دهنده (Server) و سرویس گیرنده (Client) از سوی کلیدهای خاصی خصوصی و عمومی رمزنگاری (Encrypt) شده و در سمت دیگر رمزگشایی (Decrypt) میشود. امنیت در این پروتکل دو طرفه است؛ یعنی در هر دو طرف، فرایند رمزنگاری و رمزگشایی انجام میگیرد.
البته باید گفت از این پروتکل امن تنها در مرورگرها استفاده نمی شود، بلکه بسیاری از سرویس دهندگانی که اطلاعات و دادههای حساس مانند اطلاعات کارتهای بانکی (مثلاً در شبکه بانکی کشور)، کارتهای شناسایی، رمزهای عبور مهم و … را بین خود و سرویس گیرنده رد و بدل میکنند، از پروتکلهای امنیتی مانند SSL استفاده میکنند.
وبسایتهایی که از پروتکل امن SSL برای رمزگذاری دادهها استفاده میکنند، معمولاً از طریق پروتکل HTTPS به جای حالت عادی و غیر امن آن یعنی HTTP با سرویس گیرندهها ارتباط برقرار میکنند.
در یک بیان ساده، پس از برقراری اتصال امن، SSL اطلاعات را به وسیله دو کلید رمزنگاری می کند، کلید عمومی برای اشخاص سوم شخص قابل خواندن است اما کلید دوم تنها از سوی ارسال کننده و دریافت کننده داده، قابل استفاده است.
اما SSL چگونه عمل می کند؟ همانگونه که ابتدا گفته شد SSL می تواند از ترکیب رمزنگاری متقارن و نامتقارن استفاده کند. رمزنگاری کلید متقارن سریع تر از رمزنگاری کلید عمومی است و از طرف دیگر رمزنگاری کلید عمومی تکنیک های احراز هویت قوی تری را ارایه می کند.
یک جلسه SSL Session با یک تبادل پیغام ساده تحت عنوان SSL Handshake شروع می شود. این پیغام اولیه به سرویس دهنده این امکان را می دهد تا خودش را به سرویس دهنده دارای کلید عمومی معرفی کند و سپس به سرویس گیرنده و سرویس دهنده این اجازه را می دهد که یک کلید متقارن را ایجاد کند که برای رمزنگاری ها و رمزگشایی سریع تر در جریان ادامه مبادلات مورد استفاده قرار می گیرد.
همیشه این سوال مطرح می شود که آیا پروتکل SSL امن است؟ در SSL دادهها بین سرویس دهنده و گیرنده رمزگذاری میشوند؛ به همین دلیل، دادهها در طول انتقال از کانال غیر امن مانند اینترنت، اینترانت و …، حفاظت شده باقی میمانند. هرچند دسترسی به این دادهها ممکن است، اما به دلیل آنکه رمزگذاری شده اند، برای بدست آوردن دادههای رمزگشایی شده اصلی، باید کلید مورد استفاده در آن نشست ارتباطی امن (Secure connection session) را دانست. از این رو، این پروتکل عملاً غیرقابل نفوذ است. البته در دنیای هک و امنیت، چیز غیرممکنی وجود ندارد! برای مثال، ممکن است طی فرایندهای خاص، بسیار پیچیده و مهندسی شده، حتی بدون داشتن کلید نیز روزی بتوان دادههای اصلی را بدست آورد یا مثلاً ممکن است کلیدهای مورد استفاده در فرایند رمزگذاری و رمزنگاری، از سمت سرویس دهنده پروتکل امن، به سرقت رفته باشند.
از سوی دیگر، دادهها فقط و فقط در طول مسیر انتقال از کانال مورد نظر رمزگذاری شده اند؛ یعنی دادههای اصلی، در سمت سرویس دهنده و گیرنده توسط پروتکل SSL رمزنگاری نمیشوند. به همین دلیل، درصورتی که بدافزاری در هر یک از این سمتها قرار بگیرد، میتواند دادههای اصلی را به راحتی بدزدد. البته تاکنون گزارشی از سرقت اطلاعات از طریق کانال امن SSL منتشر نشده است بنابراین میتوان آن را یک پروتکل “واقعاً امن” دانست.