SSH چیست

SSH چیست؟


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

پروتکل SSH معمولاً از پورت ۲۲ استفاده می‌کند، اما برای افزایش امنیت، توصیه می‌شود شماره پورت را تغییر دهید. از آنجایی که اطلاعات در SSH رمزنگاری می‌شوند، این پروتکل انتخاب مناسبی برای محیط‌های ناامن (مانند اینترنت عمومی) محسوب می‌شود و می‌تواند جایگزینی ایمن برای پروتکل‌های قدیمی و غیرایمن مانند Telnet، Rlogin و حتی FTP باشد. البته SSH تنها پروتکل امنیتی موجود نیست و گزینه‌هایی مانند SSL، IPsec، S/MIME و PGP نیز در دنیای شبکه برای رمزنگاری ارتباطات مورد استفاده قرار می‌گیرند.

تاریخچه SSH

اولین نسخه پروتکل SSH به نام SSH-1 در سال ۱۹۹۵ توسط Tatu Ylönen که در آن زمان محقق دانشگاه صنعتی هلسینکی بود، طراحی شد. این دانشمند علوم کامپیوتری کمی بعد شرکت SSH Communications Security راه‌اندازی کرد که امروزه یکی از فعال‌ترین شرکت‌ها در حوزه SSH و امنیت سایبری می‌باشد. با گذشت زمان، نقص‌ها و حفره‌های امنیتی‌های مختلفی در SSH-1 یافت شد و امروزه این نسخه کاملا منسوخ شده و امنیت چندانی ندارد. SSH-2 نسخه فعلی این پروتکل امنیتی می‌باشد که در سال ۲۰۰۶ توسط کارگروه مهندسی اینترنت (IETF) به عنوان نسخه استاندارد SSH مورد پذیرش قرار گرفت. SSH-2 از کلید تبادل دیفی-هلمن (Diffie-Hellman) استفاده می‌کند و با SSH-1 نیز سازگار نیست. SSH-2 در مجموع نسبت به SSH-1 از امنیت بسیار بیشتری برخوردار است. اس‌اس‌اچ در مجموع بسیاری از مشکلات پروتکل‌ها و ابزارهای قدیمی مانند Rlogin، Rcp و Telnet را برطرف کرد.

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

SSH نیز به مانند بسیاری از پروتکل‌ها بر اساس مدل کلاینت-سرور (Client-Server) عمل کرده و در آن اتصالی میان کلاینت و سرور SSH برقرار می‌شود. سرور SSH همیشه منتظر می‌ماند تا کلاینت‌ها برای اتصال درخواست بدهند. کلاینت SSH آغاز کننده فرآیند اتصال بوده که البته قبل از اتصال و ارسال دستورات SSH به سرور باید فرآیند احراز هویت را پشت سر بگذارد و در مجموع نیز بیشتر تنظیمات اتصال توسط کلاینت SSH انجام می‌شود. پروتکل SSH برای اطمینان از حفظ حریم خصوصی و یکپارچگی اطلاعاتی که میان کلاینت و سرور ردوبدل می‌شوند، از رمزنگاری متقارن و الگوریتم‌های هشینگ (Hashing) قدرتمند استفاده می‌کند.

احراز هویت مبتنی بر کلید

وقتی میان کلاینت و سرور اتصال برقرار می‌شود، در اصطلاح می‌گویند کلاینت با سرور یک سشن SSH را آغاز کرده است. اس‌اس‌اچ تا حد زیادی از داده‌ها در برابر حملات سایبری مانند حمله مرد میانی (man-in-the-middle attack) محافظت می‌کند. سرورهای ریموت معمولا از لینوکس استفاده می‌کنند زیرا این سیستم عامل از امنیت و عملکردی بالایی برخوردار بوده و بسیاری از سرورهای مبتنی بر لینوکس سالیان است بدون خرابی یا حتی راه‌اندازی مجدد در حال کار کردن هستند. اکثر سشن‌های SSH تنها شامل ۲ مرحله احراز هویت و اجرای دستورات می‌شوند و به دلیل مسائل امنیتی توصیه می‌شود از احراز هویت با کلید عمومی استفاده کنید. در زیر مراحل ایجاد یک سشن اس‌اس‌اچ را مشاهده می‌کنید:

۱- کلاینت برای برقراری اتصال با سرور درخواستی را به سمت آن ارسال می‌کند.

۲. سرور با ارسال یک کلید عمومی رمزنگاری شده به درخواست کلاینت پاسخ می‌دهد.

۳. پس از احراز هویت کلاینت، میان سرور و کلاینت کانالی امن ایجاد می‌شود.

۴. کاربر از طریق کلاینت SSH خود به سیستم عامل سرور میزبان متصل می‌شود.

SSH چه کاربردها و مزایایی دارد؟

مزایای ssh

SSH به صورت پیش‌فرض در سرورهای یونیکس، لینوکس و مک مورد استفاده قرار می‌گیرد و در نتیجه می‌توان گفت که SSH یکی از مهم‌ترین پروتکل‌های هر دیتاسنتری است. اتصالات پروتکل اس‌اس‌اچ باعث افزایش امنیت ارتباطات میان ماشین‌های محلی و هاست‌های ریموت (Remote Host) شده و دارای کاربردهای متعددی است. در ادامه با مهم‌ترین کاربردها و مزایای این پروتکل حرفه‌ای آشنا می‌شوید:

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

معایب SSH کدامند؟

  • مستعد حملات سایبری مانند بروت‌فورس
  • نداشتن رابط گرافیکی بومی
  • نیاز به داشتن دانش فنی
  • پیچیدگی پیکربندی

OpenSSH چیست؟

openssh

OpenSSH پروژه متن‌باز و رایگان مرتبط با پروتکل SSH است. Tatu Ylönen اولین نسخه رایگان SSH را ایجاد کرد اما نسخه‌های بعدی که توسط وی روانه بازار شدند، رایگان نبودند و علاوه‌براین کاربران نمی‌توانستند بدون مجوز تغییراتی را در آن ایجاد کنند. اما گروهی از توسعه‌دهندگان از روی کدهای نسخه رایگان اصلی اس‌اس‌اچ، نسخه‌ای به نام OpenSSH را ایجاد کردند که امروزه به عنوان بخشی از پروژه OpenBSD (نوعی سیستم عامل مبتنی بر یونیکس) توسعه داده می‌شود. تمام سیستم عامل‌های اصلی مانند ویندوز، مک‌او‌اس و همچنین اکثر توزیع‌های لینوکس از OpenSSH پشتیبانی می‌کنند. در هنگام انجام تنظیمات OpenSSH باید بسیار دقت کنید زیرا یک اشتباه کوچک ممکن است سیستم شما را در برابر حملات سایبری آسیب‌پذیر کند.

تکنیک‌های رمزنگاری SSH

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

رمزنگاری متقارن (Symmetric Encryption)

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

رمزنگاری نامتقارن (Asymmetric encryption)

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

هشینگ (Hashing)

هشینگ یک طرفه (One-way hash) یکی دیگر از تکنیک‌های امنیتی SSH است که نحوه عملکرد تابع آن با تکنیک‌های رمزنگاری متقارن و نامتقارن تفاوت دارد زیرا قرار نیست در فرآیند هشینگ رمزگشایی صورت بگیرد. توابع هش برای هر پیام ورودی، مقداری منحصربه‌فرد با طول مشخص ایجاد می‌کند که هیچ نظم خاصی ندارد و به همین دلیل هکر‌ها نمی‌توانند هیچ گونه سوءاستفاده‌ای از آن بکنند. برای ایجاد هش رمزنگاری شده تنها نیاز به یک ورودی داریم اما امکان ندارد از هش یا خروجی ایجاد شده به ورودی اولیه دست پیدا کنیم. پروتکل SSH از HMAC (احراز هویت مبتنی بر هش) برای تأیید درستی پیام‌ها استفاده می‌کند و این تضمین را به کاربر می‌دهد که پیام‌ها و یا دستورات دریافت شده به هیچ وجه دستکاری نمی‌شوند. در این تکنیک هر پیام ارسالی باید دارای یک MAC باشد که شامل ۳ مولفه کلید متقارن، شماره توالی بسته و محتوای پیام می‌شود.

مقایسه SSL و SSH

مقایسه ssh و ssl

 

پروتکل‌های SSH و SSL به احراز هویت و رمزنگاری داده‌هایی که میان کلاینت و سرور منتقل می‌شوند، کمک می‌کنند اما با وجود تشابهاتی که دارند، بازهم دو هدف بسیار متفاوت را دنبال می‌کنند. بنابراین درک تفاوت میان SSH و SSL بسیار مهم است. SSL برای رمزنگاری داده‌هایی که میان مرورگر وب و وب‌‌سرور منتقل می‌شوند، مورد استفاده قرار می‌گیرد و وب‌سایت‌هایی که از SSL استفاده می‌کنند در ابتدای آدرس URL خود “HTTPS” دارند. اما اس‌اس‌اچ پروتکلی است که کاربران با استفاده از آن می‌توانند از راه دور و به شکلی امن به سیستم مورد نظر خود دسترسی پیدا کنند. در ادامه با مهم‌ترین تفاوت‌های این دو پروتکل معروف آشنا می‌شوید:

  SSH SSL
شماره پورت ۲۲ ۴۴۳
نحوه عملکرد رمزنگاری ارتباط میان دو کامپیوتر رمزنگاری ارتباط میان مرورگر و سرور
نام کامل Secure Socket Shell Secure Socket Layer
مبتنی بر تونلینگ (Tunneling) گواهینامه‌های دیجیتال
نوع پروتکل پروتکل رمزنگاری شبکه پروتکل امنیتی
نحوه رمزنگاری استفاده از کلیدهای خصوصی و عمومی و یا رمزعبور و نام کاربری استفاده از کلیدهای خصوصی و عمومی
مناسب برای ارسال امن دستورات از طریق اینترنت محافظت از داده‌های حساس مانند اطلاعات بانکی

مقایسه Telnet و SSH

Telnet یک پروتکل استاندارد TCP/IP است که در سال ۱۹۶۹ ایجاد شد که هنوز هم برخی افراد و شرکت‌ها از آن استفاده می‌کنند. Telnet و SSH هر دو پروتکل‌هایی هستند که با استفاده از آنها می‌توان از راه دور به یک سیستم دسترسی داشت و آن را مدیریت کرد. امنیت مهم‌ترین تفاوت این دو پروتکل است و SSH با آمدن خود بسیاری از آسیب‌پذیری‌های امنیتی Telnet را برطرف کرد. در جدول زیر مهم‌ترین تفاوت‌های این دو پروتکل را مشاهده می کنید:

  SSH Telnet
میزان استفاده از پهنای باند بالا پایین
سیستم عامل سازگار با انواع سیستم عامل‌ها لینوکس و ویندوز
رمزنگاری تمام داده‌ها را رمزنگاری می‌کند بدون رمزنگاری
امنیت امنیت بالا امنیت بسیار کمتری از SSH دارد
شماره پورت ۲۲ ۲۳
احراز هویت با استفاده از کلید عمومی بدون احراز هویت
مناسب برای شبکه‌های عمومی شبکه‌های خصوصی
RFC ۴۲۵۳ ۸۵۴
امکان انتقال فایل امکان انتقال فایل با استفاده از پروتکل SCP ندارد
محبوبیت از محبوبیت بالایی برخوردار است به دلیل امنیت پایین چندان مورد استفاده قرار نمی‌گیرد
حریم خصوصی اطلاعاتی استفاده از نام کاربری و رمز عبور کامپیوتر را مستعد حملات سایبری می‌کند   داده‌ها به راحتی قابل رهگیری نیستند
نوع پروتکل TCP, UDP, SCTP TCP, UDP

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

آیا SSH قابل هک شدن است؟

جواب مثبت است. SSH با وجود امنیت بالا، بازهم در برابر حملات سایبری آسیب‌پذیر است. SSH یکی از پر استفاده‌ترین پروتکل‌ها در حوزه فناوری اطلاعات است و به همین دلیل هکرها تمایل زیادی به هک کردن آن دارند. هکرها معمولا برای بدست آوردن کلیدهای SSH از حمله بروت‌فورس استفاده می‌کنند.

 

SSH Tunneling چیست؟

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

 

منابع: Hostinger، phoenixnap و Javatpoint

اشتراک گذاری

برچسب‌ها
SSH Connectionssh keySSH چیستکانفیگ SSH

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

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

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.
You need to agree with the terms to proceed

خرید سرور مجازی

🔥 پربازدیدترین مطالب

دسته‌بندی

جدید‌ترین‌ها