برنامه نویسی

SSH چیست؟

SSH چیست؟

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

    1. کاربر: حسابی که می خواهید به آن دسترسی داشته باشید
    2. میزبان: کامپیوتر/سروری که می خواهید به آن دسترسی داشته باشید (آدرس IP یا نام دامنه را ارائه دهید)
    3. اگر احراز هویت رمز عبور فعال نباشد، کلید خصوصی
          ssh {user}@{host} # given that password policy is enabled
          ssh -i your_private-key.pem {user}@{host} # If password policy is not enabled then key is required
    

درک تکنیک های مختلف رمزگذاری

  • مزیت قابل توجه ارائه شده توسط SSH نسبت به telnet، استفاده از رمزگذاری برای اطمینان از انتقال امن اطلاعات بین میزبان و مشتری است. سه فناوری رمزگذاری مختلف توسط SSH استفاده می شود:
    1. رمزگذاری متقارن
    2. رمزگذاری نامتقارن
    3. هش کردن

به خاطر این آموزش، درمورد یک روش هش برای رمزگذاری بحث نمی کنیم.


رمزگذاری متقارن

توضیحات تصویر

  • رمزگذاری متقارن شکلی از رمزگذاری است که در آن یک کلید مخفی هم برای رمزگذاری و هم برای رمزگشایی یک پیام توسط مشتری و میزبان استفاده می شود. در واقع، هر کسی که کلید را در اختیار دارد می‌تواند پیامی را که منتقل می‌شود رمزگشایی کند.
  • رمزگذاری متقارن اغلب نامیده می شود کلید مشترک یا راز مشترک رمزگذاری معمولاً فقط یک کلید یا گاهی اوقات یک جفت کلید وجود دارد که با استفاده از کلید دیگر می توان یک کلید را به راحتی محاسبه کرد.
  • کلیدهای متقارن برای رمزگذاری کل ارتباطات در طول یک جلسه SSH استفاده می شوند. هم کلاینت و هم سرور، کلید مخفی را با استفاده از یک روش توافق شده استخراج می کنند، و کلید حاصل هرگز برای هیچ شخص ثالثی فاش نمی شود.
  • کلید متقارن با استفاده از الگوریتم تبادل کلید مانند AES (استاندارد رمزگذاری پیشرفته)، CAST128،
    باد ماهی.

رمزگذاری نامتقارن

توضیحات تصویر

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

مزایا و معایب رمزگذاری متقارن

طرفداران

  • سریع
  • کارآمد برای داده های بزرگ

منفی

  • اشتراک گذاری کلید سخت است (چون کلید باید در سمت مشتری و سرور یکسان باشد، در حالی که اشتراک گذاری هر هکری می تواند اطلاعات کلیدی را بدزدد و به داده های شما دسترسی پیدا کند).

مزایا و معایب رمزگذاری نامتقارن

طرفداران

  • کارآمد برای داده های کوچک
  • امنیت: بدون هر دو کلید، هکر تنها می تواند به داده های بی فایده دسترسی داشته باشد.
  • شفافیت: کلیدهای عمومی را می توان به صورت باز توزیع کرد، زیرا از دست دادن آنها به یک خطر امنیتی تبدیل نمی شود.

منفی

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

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


چگونه SSH با این تکنیک های رمزگذاری کار می کند؟

  • روش کار SSH با استفاده از مدل مشتری-سرور برای احراز هویت دو سیستم راه دور و رمزگذاری داده هایی است که بین آنها ارسال می شود.
  • کلاینت باید اتصال SSH را با شروع دست دادن TCP با سرور، اطمینان از اتصال متقارن ایمن، بررسی اینکه آیا هویت نمایش داده شده توسط سرور با رکوردهای قبلی (معمولاً در یک فایل ذخیره کلید RSA ثبت شده) مطابقت دارد، و ارائه اطلاعات کاربری مورد نیاز کاربر، شروع کند. برای احراز هویت اتصال
  • SSH به طور پیش فرض بر روی پورت TCP 22 کار می کند (اگرچه پورت SSH را می توان در صورت نیاز تغییر داد). میزبان (سرور) به پورت 22 (یا هر درگاه اختصاص داده شده SSH) برای اتصالات ورودی گوش می دهد. در صورت موفقیت آمیز بودن تأیید، اتصال امن را با تأیید اعتبار مشتری و باز کردن محیط پوسته صحیح سازماندهی می کند.

می توانید مفهوم پشت الگوریتم ریاضی تکنیک رمزگذاری نامتقارن را پیدا کنید:

https://www.youtube.com/watch?v=Pq8gNbvfaoM

مذاکره رمزگذاری جلسه

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

در اینجا نحوه عملکرد الگوریتم در سطح بسیار ابتدایی آمده است:

  • هم کلاینت و هم سرور روی یک عدد اول بسیار بزرگ توافق دارند که البته هیچ عامل مشترکی با هم ندارند. این مقدار عدد اول به عنوان مقدار دانه نیز شناخته می شود.
  • در مرحله بعد، دو طرف بر روی یک مکانیسم رمزگذاری مشترک برای تولید مجموعه دیگری از مقادیر با دستکاری مقادیر دانه به شیوه‌ای الگوریتمی خاص توافق می‌کنند. این مکانیسم ها که به نام مولدهای رمزگذاری نیز شناخته می شوند، عملیات بزرگی را روی دانه انجام می دهند. نمونه ای از چنین ژنراتوری است AES (استاندارد رمزگذاری پیشرفته).
  • هر دو طرف به طور مستقل عدد اول دیگری را تولید می کنند. این به عنوان یک کلید خصوصی مخفی برای تعامل استفاده می شود.
  • این کلید خصوصی تازه تولید شده، با شماره مشترک و الگوریتم رمزگذاری (به عنوان مثال AES)، برای محاسبه یک کلید عمومی که در رایانه دیگر توزیع می شود، استفاده می شود.
  • سپس طرفین از کلید خصوصی شخصی خود، کلید عمومی مشترک دستگاه دیگر و عدد اول اصلی برای ایجاد یک کلید مشترک نهایی استفاده می کنند. این کلید به طور مستقل توسط هر دو رایانه محاسبه می شود اما کلید رمزگذاری یکسانی را در هر دو طرف ایجاد می کند.
  • اکنون که هر دو طرف یک کلید مشترک دارند، می توانند به طور متقارن کل جلسه SSH را رمزگذاری کنند. از همین کلید می توان برای رمزگذاری و رمزگشایی پیام ها استفاده کرد (بخوانید: بخش رمزگذاری متقارن).

اکنون که جلسه رمزگذاری متقارن ایمن برقرار شده است، کاربر باید احراز هویت شود.

احراز هویت کاربر

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

اگر می‌پرسید چقدر طول می‌کشد تا کامپیوتر یک هش را محاسبه کند و یک کاربر را احراز هویت کند، خوب، این اتفاق در
کمتر از یک ثانیه
در واقع حداکثر زمان صرف انتقال داده ها از طریق اینترنت می شود.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا