۱۳۹۳/۱۲/۰۸

بررسی پروتکل رمزنگاری SSH (Secure Shell)

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

ساختار پروتکل SSH

SSH از سه لایه اصلی تشکیل شده است:

• Transport Layer Protocol: مسئول رمزنگاری، احراز هویت سرور و تبادل کلید.

• User Authentication Protocol: برای احراز هویت کاربر با روش‌هایی مانند رمز عبور، کلید عمومی یا احراز هویت چندعاملی.

• Connection Protocol: مدیریت کانال‌ها، انتقال داده، اجرای دستورات و تونل‌زنی.

الگوریتم‌های رمزنگاری در SSH

• رمزنگاری متقارن: AES، ChaCha20، 3DES

• رمزنگاری نامتقارن: RSA، DSA، ECDSA، Ed25519

• هش و کد احراز هویت پیام: SHA-1، SHA-2، HMAC

• تبادل کلید: Diffie-Hellman، Curve25519

روش‌های احراز هویت SSH

• Password Authentication: کاربر با وارد کردن رمز عبور احراز هویت می‌شود.

• Public Key Authentication: کاربر با ارائه کلید عمومی که در سرور ثبت شده احراز هویت می‌شود.

• Keyboard-Interactive: ارسال مجموعه سوالات به کاربر (برای MFA یا OTP).

• GSSAPI: احراز هویت با پروتکل‌های Kerberos.

تفاوت SSH با SSL/TLS و IPsec

• کاربرد اصلی: SSH برای دسترسی ریموت و اجرای دستورات طراحی شده، TLS برای انتقال داده امن در وب و IPsec برای امن‌سازی ترافیک شبکه.

• لایه عملیاتی: SSH در لایه برنامه (Application Layer) عمل می‌کند، TLS نیز در همین لایه اما با مدل متفاوت در حالی که IPsec در لایه شبکه فعال است.

• احراز هویت: در SSH معمولا احراز هویت دوطرفه با کلید انجام می‌شود؛ TLS اغلب فقط سمت سرور را احراز می‌کند؛ IPsec بر پایه Security Association کار می‌کند.

• ارتباط تعاملی: SSH برخلاف SSL و IPsec قابلیت اجرای دستورات تعاملی و مدیریت کانال‌های متعدد را دارد.

• تونل‌زنی: همه آن‌ها از تونل‌زنی پشتیبانی می‌کنند اما SSH برای پورت فورواردینگ بسیار محبوب است.

کاربردهای SSH

• اتصال امن به سرورها (Shell Access)

• انتقال امن فایل‌ها (SCP، SFTP)

• تونل‌زنی و Port Forwarding

• اجرای دستورات خودکار در DevOps

• استفاده در Git برای انتقال سورس‌کد

مزایای SSH

• امنیت بالا با رمزنگاری دوسویه

• پشتیبانی از احراز هویت چندمرحله‌ای

• قابلیت مدیریت ریموت و انتقال فایل

• متن‌باز بودن در نسخه‌هایی مانند OpenSSH

امنیت SSH

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

• فقط از SSH-2 استفاده شود

• پورت پیش‌فرض (22) تغییر یابد

• احراز هویت با کلید عمومی به‌جای رمز عبور فعال شود

• از ابزارهایی مانند Fail2Ban برای مقابله با حملات استفاده شود

پرسش‌های متداول

آیا SSH فقط برای لینوکس است؟
خیر، SSH روی ویندوز (با ابزارهایی مانند PuTTY یا OpenSSH) نیز قابل استفاده است.

فرق بین SCP و SFTP چیست؟
هر دو برای انتقال فایل استفاده می‌شوند اما SFTP قابلیت‌های بیشتری مانند مرور دایرکتوری دارد.

آیا می‌توان SSH را برای کنترل موبایل استفاده کرد؟
بله، اپلیکیشن‌هایی مانند Termius برای اتصال SSH از موبایل وجود دارند.

اگر کلید خصوصی لو برود چه باید کرد؟
بلافاصله کلید عمومی متناظر را از سرور حذف و کلید جدیدی تولید و ثبت کنید.

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

واژگان کلیدی

• AES / ChaCha20 / 3DES: الگوریتم‌های رمزنگاری متقارن برای رمزنگاری ترافیک در SSH.

• Brute-force Attack: حمله‌ای برای حدس رمز عبور با امتحان ترکیب‌های مختلف.

• Connection Protocol: لایه‌ای در SSH که مدیریت کانال‌ها و انتقال اطلاعات را بر عهده دارد.

• Diffie-Hellman / Curve25519: روش‌های تبادل کلید امن در ابتدای اتصال SSH.

• GSSAPI: رابط برنامه‌نویسی برای احراز هویت، معمولا با Kerberos استفاده می‌شود.

• MAC (Message Authentication Code): کد صحت پیام برای اطمینان از عدم تغییر داده‌ها.

• OpenSSH: پیاده‌سازی متن‌باز و رایج SSH که توسط پروژه OpenBSD توسعه داده شده است.

• Port Forwarding: انتقال ترافیک شبکه از طریق تونل SSH برای ایجاد دسترسی امن به منابع دیگر.

• Public Key Authentication: شیوه‌ای از احراز هویت که با کلید عمومی و خصوصی انجام می‌شود.

• RSA / DSA / ECDSA / Ed25519: الگوریتم‌های رمزنگاری نامتقارن برای احراز هویت در SSH.

• SCP (Secure Copy Protocol): روش ساده برای انتقال امن فایل از طریق SSH.

• SFTP (SSH File Transfer Protocol): پروتکل انتقال فایل مبتنی بر SSH با قابلیت‌های بیشتر.

• SSH (Secure Shell): پروتکل رمزنگاری‌شده برای اتصال ایمن به سیستم‌های راه‌دور و انتقال داده.

• Transport Layer Protocol: لایه‌ای در ساختار SSH که مسئول رمزنگاری و تبادل کلید است.

• User Authentication Protocol: بخشی از SSH که فرایند احراز هویت کاربر را مدیریت می‌کند.



هیچ نظری موجود نیست:

ارسال یک نظر