SSH چیست و چگونه کار می‌کند؟ آشنایی با کاربردهای اس‌اس‌اچ

SSH چیست
خرید هاست
میزبانی وب

SSH چیست؟

SSH یا Secure Socket Shell، نوعی پروتکل شبکه می‌باشد که کاربران (به ویژه مدیران سیستم) با استفاده از آن می‌توانند به شکلی امن از راه دور به سیستم خود دسترسی داشته باشند. SSH همچنین با ارائه قابلیت‌های امنیتی مانند رمزنگاری داده‌ها و احراز هویت (با رمز عبور و کلید عمومی)، امنیت دو کامپیوتری که از طریق یک شبکه‌ مانند اینترنت به هم متصل می‌شوند را تامین می‌کند. مدیران سیستم با وجود اس‌اس‌اچ می‌توانند با اطمینان خاطر بالایی سیستم‌ها و برنامه‌های خود را از راه دور مدیریت و از طریق شبکه به رایانه دیگری متصل شوند. SSH همچنین این امکان را به شما می‌دهد تا دستوراتی را از راه دور اجرا و فایل‌هایی را به کامپیوتر دیگری منتقل کنید. SSH به صورت پیش‌فرض از پورت شماره ۲۲ استفاده می‌کند اما به منظور افزایش امنیت بهتر است آن را تغییر دهید. همانطور که اشاره شد، SSH اطلاعات را رمزنگاری می‌کند و در نتیجه بیشتر مناسب شبکه‌های ناامن بوده و می‌توانیم آن را جایگزین مناسبی برای پروتکل‌های ارتباطی محافظت نشده (مانند telnet، rlogin) و روش‌های انتقال فایل ناامن (مانند FTP) در نظر بگیریم. البته اس‌اس‌اچ تنها پروتکل امنیتی شبکه نبوده و پروتکل‌هایی رمزنگاری مانند 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” دارند. اما اس‌اس‌اچ پروتکلی است که کاربران با استفاده از آن می‌توانند از راه دور و به شکلی امن به سیستم مورد نظر خود دسترسی پیدا کنند. در ادامه با مهم‌ترین تفاوت‌های این دو پروتکل معروف آشنا می‌شوید:

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

مقایسه Telnet و SSH

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

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

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

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

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


SSH Tunneling چیست؟

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


منابع: Hostinger، phoenixnap و Javatpoint

خرید سرور اختصاصی

اشتراک گذاری

برچسب‌ها

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

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

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

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

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

دسته‌بندی

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