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 برای مقابله با حملات استفاده شود
پرسشهای متداول
واژگان کلیدی
• 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 که فرایند احراز هویت کاربر را مدیریت میکند.
هیچ نظری موجود نیست:
ارسال یک نظر