SSH چیست و چه کاربردی دارد؟

4/5 - (4 امتیاز)

احتمالاً قبلاً در مورد SSH شنیده اید زیرا در مورد هر چیزی که به امنیت سایبری مربوط می شود، یک اصطلاح رایج اینترنتی است که اغلب مورد استفاده قرار می گیرد. با این حال، ممکن است که در وهله اول بخواهید بدانید که SSH چیست و چه کاربردی دارد. در مقاله مد نظر، قصد داریم به توضیحاتی دقیق در مورد SSH بپردازیم.

SSH (پوسته امن) که مخفف Secure Shell می باشد، یک پروتکل شبکه با الگوی الگوی کلاینت سرور است که به عنوان جایگزین ایمن برای پروتکل های پوسته راه دور ناامن طراحی شده است؛ SSH هم به پروتکل شبکه رمزنگاری اشاره دارد و هم به مجموعه ابزارهایی که آن پروتکل را پیاده سازی می کنند.

SSH چیست؟

SSH (پوسته امن) که مخفف Secure Shell یا Secure Socket Shell نیز شناخته می‌شود، یک پروتکل شبکه است که به عنوان جایگزین ایمن برای پروتکل های پوسته راه دور ناامن طراحی شده است.

SSH همچنین به مجموعه ابزارهایی که پیاده ساز پروتکل SSH هستند، اشاره دارد؛ Secure Shell احراز هویت کلید عمومی و رمز عبور قوی ؛ همچنین داده رمزگذاری شده بین دو کامپیوتری که به واسطه یک شبکه باز همچون اینترنت به هم متصل می شوند را مرتبط می سازد.

علاوه بر ارائه رمزگذاری قوی، SSH به طور گسترده توسط مدیران شبکه برای مدیریت سیستم ها و برنامه های کاربردی از راه دور استفاده می شود و آن‌ها را قادر می سازد تا از طریق شبکه به رایانه دیگری وارد شوند، دستورات را اجرا کنند و فایل ها را از یک رایانه به رایانه دیگر منتقل کنند.

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

SSH همچنین می تواند برای ایجاد تونل های امن سایر پروتکل های برنامه استفاده شود، به عنوان مثال، برای اجرای ایمن جلسات گرافیکی X Window System از راه دور؛ یک سرور SSH، به طور پیش فرض، به پورت 22 استاندارد پروتکل کنترل انتقال (TCP) گوش می دهد.

تاریخچه مختصر SSH

SSH توسط Tatu Ylönen در سال 1995 ایجاد شد. این پروتکل برای جلوگیری از حملات شناسایی رمز عبور در دانشگاه فناوری هلسینکی طراحی شده است. اولین نسخه از پروتکل که اکنون SSH-1 نامیده می شود، برای جایگزینی پروتکل های ناامن مانند rsh، rlogin و Telnet طراحی شده است. به عنوان یک نرم افزار رایگان شروع به کار کرد اما به زودی به نرم افزار اختصاصی تبدیل شد.

پس از اینکه SSH-1 Ylönen به یک ابزار محبوب در سراسر جهان تبدیل شد، گروه ضربت مهندسی اینترنت (IETF) گروهی را تشکیل داد که هدف آن ایجاد جانشین پروتکل بود. در سال 2006، SSH-2 به یک استاندارد جدید تبدیل شد که دارای پیشرفت های امنیتی مانند تبادل کلید Diffie-Helman بود.

جامعه منبع باز OSSH، یک نسخه پروتکل SSH بر اساس نسخه 1.2.12 SSH-1 را توسعه داد. توسعه‌دهندگان OpenBSD بعداً OSSH را برای ایجاد OpenSSH، محبوب‌ترین پیاده‌سازی SSH در جهان امروز، فورک کردند. از نسخه 7.6، OpenSSH فقط SSH-2 را پشتیبانی می کند. پشتیبانی از SSH-1 متوقف شده است.

SSH چقدر امن است؟

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

حملات Brute Force به سرورهای SSH یک سناریوی رایج است، مهاجمان سعی می کنند با استفاده از نام های کاربری و رمزهای عبور رایج به تعداد زیادی سرور SSH متصل شوند؛ هنگامی که آن‌ها به یک سرور دسترسی پیدا می کنند، از افزایش امتیاز برای دسترسی به حساب ریشه استفاده می کنند.

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

در حالی که کلیدهای SSH محافظت بهتری را ارائه می دهند، استفاده نادرست از آن‌ها می تواند دسترسی افراد مخرب به اطلاعات ممتاز را فراهم کند؛ این اطلاعات شامل حساب ها و منابعی مانند پایگاه های داده، روترها، سیستم های پرداخت و غیره می شود.

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

پوسته امن SSH

SSH چگونه کار می کند؟

Secure Shell برای جایگزینی برنامه های شبیه سازی ترمینال ناامن یا ورود به سیستم، مانند Telnet، rlogin (ورود از راه دور) و rsh (پوسته از راه دور) و برنامه های انتقال فایل مانند rcp (کپی از راه دور)  و پروتکل انتقال فایل (FTP)  ایجاد شده است و نیز SSH به فعال سازی عملکردهای اجرای جلسات ترمینال در سیستم های راه دور و ورود به سیستم می پردازد.

اساسی ترین کاربرد SSH اتصال به یک میزبان راه دور برای یک جلسه ترمینال است، شکل آن دستور به صورت زیر است:

ssh [email protected]

این دستور باعث می شود که کلاینت سعی کند با استفاده از شناسه کاربری UserName به سروری به نام server.example.com متصل شود. اگر این اولین باری است که در مورد اتصال بین میزبان محلی و سرور مذاکره می‌کنید، از کاربر خواسته می‌شود اثر انگشت کلید عمومی میزبان راه دور را دریافت کند و علی رغم اینکه قبلاً اتصالی وجود نداشته است، متصل شود:

از شما سؤالی پرسیده می شود که آیا مطمئن هستید که می خواهید به اتصال ادامه دهید (بله/خیر)؟

پاسخ مثبت به درخواست باعث ادامه جلسه می شود و کلید میزبان در فایل Know_hosts سیستم محلی ذخیره می شود. این یک فایل مخفی است که به طور پیش فرض در یک پوشه مخفی به نام /.ssh/known_hosts در فهرست اصلی کاربر ذخیره می شود. هنگامی که کلید میزبان در فایل Known_hosts ذخیره شد، سیستم کلاینت می‌تواند مستقیماً بدون نیاز به هیچ گونه تأییدیه، مستقیماً به آن سرور متصل شود. کلید میزبان اتصال را تأیید می کند.

پروتکل SSH چیست

پیاده سازی SSH

SSH یک پروتکل باز است. برای اکثر پلتفرم های محاسباتی پیاده سازی شده است. پیاده‌سازی OpenSSH منبع باز، رایج‌ترین پیاده‌سازی در لینوکس، یونیکس و سایر سیستم‌عامل‌های مبتنی بر توزیع نرم‌افزار برکلی (BSD)، از جمله macOS اپل است.

OpenSSH از سال 2015 برای اجرا در Windows PowerShell منتقل شد، در سال 2018، پشتیبانی اختیاری OpenSSH به ویندوز 10 افزوده شد. در حالی که SSH در اکثر سیستم‌عامل‌های شبه یونیکس به طور پیش‌فرض مستقیماً قابل دسترسی است، نسخه پورت‌شده OpenSSH مایکروسافت باید به‌صراحت در ویندوز فعال شود، برنامه تنظیمات PuTTY یکی دیگر از اجرای متن باز SSH است.

در حالی که در حال حاضر برای Windows، macOS و Unix/BSD در دسترس است، PuTTY در ابتدا برای اجرا در ویندوز نوشته شده بود، مدتهاست که یکی از گزینه های برتر برای استفاده از SSH در سیستم ویندوز بوده است.

اکثر پیاده سازی های مجموعه SSH شامل سه ابزار است:

  • ورود به سیستم (ورود امن)
  • ssh
  • scp (کپی امن)

SSH برای تأیید اعتبار رایانه راه دور از رمزنگاری کلید عمومی استفاده می کند و رایانه راه دور در صورت لزوم می تواند کاربر را تأیید کند؛ در حال حاضر چندین پیاده سازی SSH برای پلتفرم های مختلف و تحت انواع مجوزهای منبع باز و اختصاصی موجود است.

دستورات SSH

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

ابتدایی ترین شکل دستور SSH فراخوانی برنامه و نام میزبان مقصد یا آدرس پروتکل اینترنت (IP) است:

ssh server.example.org

دستور ذکر شده به مقصد، server.example.org متصل می شود، میزبان مقصد با درخواست رمز عبور برای شناسه کاربری حسابی که مشتری تحت آن در حال اجرا است، پاسخ خواهد داد؛ در بسیاری از موارد، شناسه کاربری برای میزبان راه دور متفاوت خواهد بود، در این صورت دستور باید با شناسه کاربر میزبان راه دور صادر شود، مانند این:

ssh [email protected]

SSH همچنین می تواند از خط فرمان برای صدور یک فرمان واحد در میزبان راه دور و سپس خروج استفاده شود؛ به عنوان مثال:

ssh example.org ls

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

علاوه بر فایل اجرایی ssh، SSH دارای دستورات اجرایی دیگری است که در خط فرمان برای توابع اضافی استفاده می شود، از جمله موارد زیر:

  • sshd: سرور SSH را راه‌اندازی می‌کند که منتظر درخواست‌های اتصال SSH ورودی می‌شود و سیستم‌های مجاز را قادر می‌سازد تا به میزبان محلی متصل شوند.
  • ssh-keygen: برنامه ای برای ایجاد یک جفت کلید احراز هویت جدید برای SSH است که می تواند برای خودکارسازی ورود، پیاده سازی SSO و احراز هویت هاست استفاده شود.
  • ssh-copy-id: برنامه ای است که برای خودکارسازی ورود بدون رمز عبور و SSO و همچنین نصب، کپی و پیکربندی یک کلید SSH روی سرور مورد استفاده قرار می گیرد.
  • ssh-agent: یک برنامه کمکی است که کلیدهای هویت و عبارات عبور آن‌ها را ردیابی می کند که SSH از آن یک کلید رمزگذاری می گیرد و کاربر را قادر می سازد تا از کلیدهای هویت برای ورود به سرورهای مختلف بدون نیاز به وارد کردن مجدد رمز عبور یا عبارت عبور استفاده کند.
  • ssh-add: برای افزودن یک کلید به عامل احراز هویت SSH و با ssh-agent برای پیاده سازی SSO با استفاده از SSH استفاده می شود.
  • scp: نسخه ای از rcp با امنیت SSH می باشد و برنامه ای است که برای کپی کردن فایل ها بین کامپیوترها استفاده می شود.
  • sftp: برنامه ای است که برای کپی فایل ها از یک کامپیوتر به کامپیوتر دیگر استفاده می شود و یک نسخه SSH ایمن شده از ftp، پروتکل اصلی انتقال فایل است. SFTP به مکانیسم ترجیحی برای به اشتراک گذاری فایل از طریق اینترنت تبدیل شده است و جایگزین FTP و FTP/S (FTP Secure) شده است که پروتکلی برای استفاده از FTP از طریق یک تونل SSL/TLS است.

پوسته امن SSH

تونل زنی SSH چیست؟

تونل زنی SSH که به عنوان ارسال پورت SSH نیز شناخته می شود، تکنیکی است که کاربر را قادر می سازد تا یک تونل امن بین یک میزبان محلی و یک میزبان راه دور باز کند.

ارسال پورت SSH، ترافیک شبکه را به یک آدرس پورت/IP خاص هدایت می‌کند تا یک میزبان راه دور مستقیماً توسط برنامه‌های میزبان محلی قابل دسترسی باشد. مقصد ممکن است روی سرور SSH راه دور باشد، یا آن سرور ممکن است برای ارسال به یک میزبان راه دور دیگر پیکربندی شده باشد.

تونل‌های SSH ابزارهای قدرتمندی برای مدیران فناوری اطلاعات و همچنین عوامل مخرب هستند، زیرا می‌توانند از فایروال سازمانی بدون شناسایی عبور کنند. در نتیجه، ابزارهایی برای جلوگیری از استفاده غیرمجاز از تونل های SSH از طریق فایروال شرکتی وجود دارد.

توضیح اصطلاح های موجود در SSH

~ یا $HOME: دایرکتوری خانگی کاربر در یک سیستم یونیکس یا یونیکس مانند.

لایه احراز هویت: لایه ای که مسئول انجام احراز هویت SSH است.

Client: یک برنامه مشتری برای ایجاد ارتباط با سرور.

Client machine: کامپیوتری که یک کلاینت SSH را اجرا می کند.

لایه اتصال: لایه پروتکل SSH که کانال های ارتباطی را مدیریت می کند.

کامپیوتر محلی: کامپیوتری که یک کلاینت SSH را در آن مکان اجرا می کند.

کاربر محلی: کاربری که به SSH از طریق رایانه محلی دسترسی دارد.

کلید خصوصی: بخشی از جفت کلید عمومی-خصوصی برای احراز هویت کاربر به عنوان یک راز در ماشین محلی نگهداری می شود.

کلید عمومی: بخشی از جفت کلید عمومی-خصوصی برای احراز هویت کاربر که در طول فرآیند احراز هویت در سرور SSH کپی شده است.

کامپیوتر راه دور: کامپیوتری که یک سرور SSH را اجرا می کند که کلاینت های SSH به آن متصل می شوند.

کاربر راه دور: کاربری که به SSH از طریق یک کامپیوتر راه دور دسترسی دارد.

سرور یک برنامه: سرور SSH برای برقراری ارتباط با مشتریان SSH.

ماشین سرور: کامپیوتری که یک سرور SSH را اجرا می کند.

SCP Secure Copy: یک ابزار CLI که از SSH برای انتقال امن فایل استفاده می کند.

 

SSH یا Secure shell

پروتکل انتقال فایل امن SFTP: پروتکلی که از SSH برای ایمن سازی انتقال فایل های شبکه استفاده می کند، نباید با FTPS که از TLS/SSL استفاده می کند، اشتباه گرفته شود.

لایه انتقال: لایه پروتکل SSH که بر کل جلسه SSH مشرف است.

SSH:  بیان‌گر پروتکل SSH با حروف بزرگ.

ssh: نشان‌دهنده‌ی برنامه سمت کاربر ssh که با حروف کوچک.

SSHD: نمایانگر Daemon این سرویس در لینوکس.

SSH1: نسخه‌ی اولیه‌ی پروتکل SSH می باشد.

 SSH2: نسخه‌ی غیر رایگان و تجاری این پروتکل.

OPEN SSH: نسخه‌ی Open Source این پروتکل.

 

SSH برای چه مواردی استفاده می شود؟

SSH که در همه مراکز داده وجود دارد به طور پیش فرض با هر سرور یونیکس، لینوکس و مک ارسال می شود. اتصالات SSH برای ایمن سازی انواع مختلف ارتباطات بین یک ماشین محلی و یک میزبان راه دور، از جمله دسترسی از راه دور ایمن به منابع، اجرای دستورات از راه دور، تحویل وصله های نرم افزاری و به روز رسانی ها و سایر وظایف اداری یا مدیریتی استفاده شده است.

علاوه بر ایجاد یک کانال امن بین کامپیوترهای محلی و راه دور، SSH برای مدیریت روترها، سخت افزار سرور، پلتفرم های مجازی سازی، سیستم عامل ها (OSes) و مدیریت داخلی سیستم ها و برنامه های کاربردی انتقال فایل استفاده می شود.

Secure Shell برای انجام آپلود و خروج،  اتصال به سرورها، ایجاد تغییرات یا مستقیماً از طریق ترمینال  یا با استفاده از ابزارها استفاده می شود. کلیدهای SSH را می توان برای خودکارسازی دسترسی به سرورها استفاده کرد و اغلب در اسکریپت ها، سیستم های پشتیبان گیری و ابزارهای مدیریت پیکربندی استفاده می شود.

کلیدهای SSH که به گونه‌ای طراحی شده‌اند که راحت باشند و در سراسر مرزهای سازمانی کار کنند، یک ورود به سیستم (SSO) را ارائه می‌کنند تا کاربران بتوانند هر بار بدون تایپ رمز عبور، بین حساب‌های خود حرکت کنند.

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

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

 

SSH چیست

قابلیت ها و کاربردهای Secure Shell

توابعی که SSH فعال می کند شامل موارد زیر است:

  • دسترسی از راه دور ایمن به سیستم‌ها یا دستگاه‌های شبکه دارای SSH برای کاربران و همچنین فرآیندهای خودکار
  • جلسات انتقال فایل امن و تعاملی
  • انتقال خودکار و ایمن فایل
  • صدور ایمن دستورات در دستگاه ها یا سیستم های راه دور
  • مدیریت ایمن اجزای زیرساخت شبکه

SSH را می توان به صورت تعاملی برای فعال کردن جلسات ترمینال استفاده کرد و باید جایگزین برنامه Telnet که از لحاظ امنیتی ضعیف تر می باشد؛ استفاده شود: SSH همچنین برای ایجاد دسترسی از راه دور و ایمن برنامه ها و سیستم ها به منابع و داده ها معمولاً در اسکریپت‌ها و سایر نرم‌افزارها استفاده می‌شود.

SSH در مقایسه با Telnet

Telnet یکی از اولین پروتکل های برنامه کاربردی اینترنت بود و از دیگر برنامه ها FTP می باشد، برای شروع و حفظ یک جلسه شبیه سازی ترمینال در یک میزبان راه دور استفاده می شود.

SSH و Telnet از نظر عملکردی مشابه هستند، با تفاوت اصلی این که پروتکل SSH از رمزنگاری کلید عمومی برای تأیید اعتبار نقاط پایانی هنگام تنظیم یک جلسه ترمینال و همچنین برای رمزگذاری دستورات جلسه و خروجی استفاده می کند.

در حالی که Telnet عمدتاً برای شبیه سازی ترمینال استفاده می شود، SSH می تواند برای انجام شبیه سازی ترمینال مشابه دستور rlogin و همچنین برای صدور دستورات از راه دور مانند rsh، انتقال فایل ها با استفاده از پروتکل SSH File Transfer Protocol (SFTP) و تونل زدن سایر موارد مانند برنامه های کاربردی استفاده شود.

SSH در مقابل SSL/TLS

پروتکل امنیت لایه حمل و نقل (TLS) که پروتکل لایه سوکت های امن (SSL) را به روز می کند، برای ایجاد امنیت برای انتقال شبکه در لایه انتقال طراحی شده است، پروتکل SSH نیز در لایه انتقال یا درست بالای آن عمل می کند، اما تفاوت های مهمی بین این دو پروتکل وجود دارد.

در حالی که هر دو به جفت کلید عمومی/خصوصی برای احراز هویت هاست متکی هستند، فقط سرور با یک جفت کلید تحت TLS احراز هویت می شود، SSH از یک جفت کلید جداگانه برای احراز هویت هر اتصال استفاده می کند: یک جفت کلید برای اتصال از یک ماشین محلی به یک ماشین راه دور و یک جفت کلید دوم برای تأیید اعتبار اتصال از ماشین راه دور به ماشین محلی!

تفاوت دیگر بین SSH و TLS این است که TLS امکان رمزگذاری اتصالات را بدون احراز هویت یا احراز هویت بدون رمزگذاری را فراهم می کند، SSH همه اتصالات را رمزگذاری و احراز هویت می کند.

SSH به متخصصان IT و امنیت اطلاعات (infosec) مکانیزمی امن برای مدیریت کلاینت های SSH از راه دور ارائه می دهد. SSH به جای نیاز به احراز هویت رمز عبور برای راه اندازی ارتباط بین سرویس گیرنده و سرور SSH، خود دستگاه ها را احراز هویت می کند. این کار کارکنان فناوری اطلاعات را قادر می‌سازد تا با سیستم‌های راه دور ارتباط برقرار کنند و پیکربندی‌های SSH را تغییر دهند، از جمله افزودن یا حذف جفت‌های کلید میزبان در فایل Known_hosts!

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

مزیت قابل توجه ارائه شده توسط SSH نسبت به پیشینیان خود، استفاده از رمزگذاری برای اطمینان از انتقال امن اطلاعات بین میزبان و مشتری است، Host به سرور راه دوری که می‌خواهید به آن دسترسی داشته باشید اشاره دارد، در حالی که کلاینت رایانه‌ای است که برای دسترسی به میزبان استفاده می‌کنید؛ سه فناوری رمزگذاری مختلف توسط SSH استفاده می شود:

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

 

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

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

برخلاف تصور عمومی، رمزگذاری نامتقارن برای رمزگذاری کل جلسه SSH استفاده نمی شود، در عوض، در طول الگوریتم تبادل کلید رمزگذاری متقارن استفاده می شود؛ قبل از شروع یک اتصال ایمن، هر دو طرف جفت‌های کلید عمومی-خصوصی موقت تولید می‌کنند و کلیدهای خصوصی مربوطه خود را برای تولید کلید مخفی مشترک به اشتراک می‌گذارند.

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

 

  • هش کردن: هش یک طرفه شکل دیگری از رمزنگاری است که در Secure Shell Connections استفاده می شود، توابع هش یک طرفه متفاوت با رمزگذاری متقارن و نامتقارن میباشد، یعنی هرگز رمزگشایی نخواهد شد؛ این توابع یک مقدار منحصر به فرد از طول ثابت برای هر ورودی ایجاد می کنند که هیچ روند واضحی را برای بهره برداری نشان نمی دهد و باعث می شود که آنها عملاً معکوس شوند.

تولید هش رمزنگاری از یک ورودی داده شده آسان است، اما تولید ورودی از هش غیرممکن است، این بدان معناست که اگر یک کلاینت ورودی صحیح را داشته باشد، می‌تواند هش رمزنگاری را ایجاد کند و مقدار آن را برای بررسی اینکه آیا ورودی صحیح را دارد یا خیر، مقایسه کند.

SSH برای تأیید صحت و درستی پیام ها از هش استفاده می کند، این کار با استفاده از HMAC یا کدهای احراز هویت پیام مبتنی بر هش انجام می شود؛ این عمل تضمین می کند که دستور دریافت شده به هیچ وجه دستکاری نمی شود.

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

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

 

سؤالات متداول

در سیستم عامل ویندوز نمی‌توان به طور مستقیم به SSH متصل شد. برای این منظور باید از یک برنامه‌ی واسط به نام “putty” که متن باز است؛ استفاده کنید که می‌توانید به صورت رایگان آن را دانلود کنید. پس از آن که putty را دانلود و نصب کردید، پورت SSH و آدرس IP را وارد کنید. پورت SSH نیز به صورت پیش‌فرض 22 است. به این ترتیب می‌توانید در ویندوز به پروتکل SSH در سرور متصل شوید.

پس از هر سری اتصالی که بواسطه SSH ایجاد می شود؛ کلیدی در دستگاه کاربر ساخته می شود که با نگهداری در پوشه ای به اسم known-hosts با گذشت زمان تعداد این کلید ها افزایش می یابد و باعث می شود که برای ورود به سیستم به عنوان نفوذ امنیتی شناسایی شود. حتی با خروج کامل سیستم نیز  این داده ها مهم در قالب Plain Text داخل هارد بمانند و خطرساز شوند.

به همین دلیل است که مدیران سیستم ها  باید  برای مدیریت این کلیدها برنامه‌ای داشته باشند. در غیر این‌صورت، نمی‌توانند تشخیص دهند که در چه زمانی و  چه افرادی به منابع دسترسی داشتند!

 

کلام آخر

آگاهی از نحوه عملکرد SSH می تواند به کاربران کمک کند تا جنبه های امنیتی این فناوری را درک کنند، اکثر مردم این فرآیند را بسیار پیچیده می دانند، اما بسیار ساده تر از آن چیزی است که اکثر مردم فکر می کنند؛

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

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

آدرس ایمیل خود را را با خیال راحت وارد کنید، چون نمایش داده نخواهد شد