اوپن‌اس‌اس‌اچ

اپن‌اس‌اس‌اچ نام دسته‌ای از نرم‌افزارهای رایانه‌ای است که امکان رمزنگاری کردن نشست ارتباطی در یک شبکه رایانه‌ای را با استفاده از پروتکل SSH فراهم می‌کند. این پروژه، به عنوان جایگزینی متن‌باز برای مجموعه نرم‌افزاری Secure Shell، محصول شرکت SSH Communications Security ایجاد شده است. پروژه اوپن‌اس‌اس‌اچ یکی از زیر مجموعه‌های پروژه اوپن‌بی‌اس‌دی است و اولین بار در سال ۱۹۹۹ بنیان نهاده شده و در همان سال وارد درخت کد منبع اوپن‌بی‌اس‌دی شد. خبر اعلان این پروژه اولین بار در ۲۵ اکتبر ۱۹۹۹ منتشر شد.
اوپن‌اس‌اس‌اچ جایگزینی است برای برنامه‌های سنتی یونیکس نظیر telnet, rlogin و ftp که به منظور برقراری ارتباط راه دور با یک میزبان دیگر استفاده می‌شوند. این برنامه‌ها، تمامی اطلاعات نظیر نام کاربری و کلمه عبور را به صورت رمزنشده بر روی شبکه منتقل می‌کنند. این کار فرصتی را برای مهاجمین فراهم می‌کند تا بتوانند اطلاعات ارسالی را به سرقت ببرند. اوپن‌اس‌اس‌اچ در عوض، تمام اطلاعات را به شکل رمزنگاری بر روی شبکه ارسال می‌کند. اوپن‌اس‌اس‌اچ امکاناتی به منظور تونل‌زنی در ارتباطات و همین‌طور چندین روش گوناگون به منظور احراز هویت کاربران را هم فراهم می‌کند. اوپن‌اس‌اس‌اچ از تمامی نسخه‌های پروتکل اس‌اس‌اچ پشتیبانی می‌کند.
این برنامه دو نسخه متفاوت دارد که توسط دو تیم مختلف توسعه داده می‌شود. یک نسخه مخصوص سیستم‌عامل اوپن‌بی‌اس‌دی است. تیم دیگر، اوپن‌اس‌اس‌اچ را برای سیستم‌عامل‌های دیگر پورت می‌کند. نسخه‌های پورتابل این نرم‌افزار، در نسخه خود حرف p را دارند تا با نسخه مخصوص اوپن‌بی‌اس‌دی متمایز باشد. نسخه پورتابل این برنامه به صورت گسترده توسط پروژه‌های متن‌باز و غیر متن‌باز دیگر استفاده می‌شود. بر طبق آمار منتشر شده توسط وبسایت رسمی این پروژه که بر اساس یک آمارگیری در سال ۲۰۰۸ بدست آمده‌اند، پروژه اوپن‌اس‌اس‌اچ با داشتن بیش از ۸۰ درصد سهم، پر استفاده‌ترین پیاده‌سازی از پروتکل SSH است.
تاریخچه
اوپن‌اس‌اس‌اچ از نسخه ۱٫۲٫۱۲ برنامه ssh اولیه مشتق شده است که توسط Tatu Ylönen توسعه می‌یافت. این نسخه، آخرین نسخه آزاد از این برنامه بود که پروژه اوپن‌بی‌اس‌دی می‌توانست از آن استفاده کند. قسمت‌هایی از آن نسخه اولیه که توسط Tatu Ylönen نوشته شده بود، هنوز هم در اوپن‌اس‌اس‌اچ و تحت همان پروانه باقی مانده‌اند. ssh اولیه پس از آن نسخه، شروع به استفاده از پروانه‌های نرم‌افزاری محدودکننده کرد. پروانه‌های محدودکننده اولیه، مانع ایجاد یک نسخه از ssh برای سیستم‌عامل مایکروسافت ویندوز و داس می‌شدند. پروانه‌های بعدی از آن هم محدودتر شدند و مانع می‌شدند تا ssh در محصولات تجاری استفاده شود و این پروانه شرکت‌ها را وادار می‌کرد تا یک نسخه تجاری از این برنامه را از Datafellows خریداری کنند.
در اوایل سال ۱۹۹۹، شخصی به نام Björn Grönvall شروع به کار کردن و برطرف کردن مشکلات نسخه ۱٫۲٫۱۲ این برنامه کرد. نسخه‌ای که او بر روی آن کار می‌کرد OSSH نام گرفت و تنها از نسخه ۱٫۳ پروتکل SSH پشتیبانی می‌کرد.
توسعه‌دهندگان اوپن‌بی‌اس‌دی دو ماه قبل از انتشار نسخه ۲٫۶ این سیستم‌عامل، از پروژه OSSH اطلاع یافتند و تصمیم گرفتند پشتیبانی از پروتکل SSH را در نسخه ۲٫۶ اوپن‌بی‌اس‌دی بگنجانند. آنها OSSH را منشعب کردند و شروع به رفع کردن خطاها و مشکلات امنیتی آن کردند. در نهایت نام اوپن‌اس‌اس‌اچ برای این نسخه انتخاب شد. در همان هنگامی که توسعه‌دهندگان اوپن‌بی‌اس‌دی تازه‌کار بر روی اوپن‌اس‌اس‌اچ را آغاز کرده بودند، دیگر پروژه‌های متن‌باز هم به این برنامه علاقه نشان دادند و عده‌ای شروع به پورت کردن آن بر روی سیستم‌عامل لینوکس کردند. از آنجایی که کدهای منبع برنامه ssh اولیه پیچیده بودند و وابستگی‌های سیستم‌عاملی زیادی داشتند، توسعه‌دهندگان اوپن‌بی‌اس‌دی تصمیم گرفتند تیم توسعه اوپن‌اس‌اس‌اچ را به دو دسته تقسیم کنند.
پس از انتشار نسخه ۲٫۶ اوپن‌بی‌اس‌دی، یکی از توسعه‌دهندگان به نام Markus Friedl تصمیم گرفت پیاده‌سازی نسخه ۲ پروتکل SSH را آغاز کند. پس از اتمام پیاده‌سازی نسخه ۲٫۰ اوپن‌اس‌اس‌اچ به همراه اوپن‌بی‌اس‌دی ۲٫۷ در تاریخ ۱۵ ژوئن ۲۰۰۰ منتشر شد.
تاریخچه انتشار:
اپن‌اس‌اس‌اچ نسخه ۶٫۰: ۲۲ آوریل ۲۰۱۲
اپن‌اس‌اس‌اچ نسخه ۵٫۹: ۶ سپتامبر ۲۰۱۱
اپن‌اس‌اس‌اچ نسخه ۵٫۸: ۴ فوریه ۲۰۱۱
اپن‌اس‌اس‌اچ نسخه ۵٫۷: ۲۴ ژانویه ۲۰۱۱
اپن‌اس‌اس‌اچ نسخه ۵٫۶: ۲۳ اوت ۲۰۱۰
اپن‌اس‌اس‌اچ نسخه ۵٫۵: ۱۶ آوریل ۲۰۱۰
اپن‌اس‌اس‌اچ نسخه ۵٫۴: ۱۶ آوریل ۲۰۱۰
اپن‌اس‌اس‌اچ نسخه ۵٫۴: ۸ مارس ۲۰۱۱
پشتیبانی از نسخه یک پروتکل اس‌اس‌اچ به صورت پیش‌فرض حذف شد.
اضافه شدن پشتیبانی از اعتبارسنجی PKCS11 بر روی اس‌اس‌اچ ۱
اضافه شدن گواهینامه مبتنی بر اعتبار سنجی
اضافه شدن حالت نت‌کت برای پروتکل اس‌اس‌اچ نسخه ۱
اضافه شدن امکان لغو کلیدهای عمومی در sshd و ssh
اپن‌اس‌اس‌اچ نسخه ۵٫۳: ۱ اکتبر ۲۰۰۹
اپن‌اس‌اس‌اچ نسخه ۵٫۲: ۲۳ فوریه ۲۰۰۹
اپن‌اس‌اس‌اچ نسخه ۵٫۱: ۲۱ ژولای ۲۰۰۸
اپن‌اس‌اس‌اچ نسخه ۵٫۰: ۳ آوریل ۲۰۰۸
اپن‌اس‌اس‌اچ نسخه ۴٫۹: ۳۰ مارس ۲۰۰۸
اضافه‌شدن پشتیبانی از chroot برای sshd
اپن‌اس‌اس‌اچ نسخه ۴٫۷: ۴ سپتامبر ۲۰۰۷
اپن‌اس‌اس‌اچ نسخه ۴٫۶: ۹ مارس ۲۰۰۷
اپن‌اس‌اس‌اچ نسخه ۴٫۵: ۷ نوامبر ۲۰۰۶
اپن‌اس‌اس‌اچ نسخه ۴٫۴: ۲۷ سپتامبر ۲۰۰۶
اپن‌اس‌اس‌اچ نسخه ۴٫۳: ۱ فوریه ۲۰۰۶
اپن‌اس‌اس‌اچ نسخه ۴٫۲: ۱ سپتامبر ۲۰۰۵
اپن‌اس‌اس‌اچ نسخه ۴٫۱: ۲۶ می‌۲۰۰۵
اپن‌اس‌اس‌اچ نسخه ۴٫۰: ۹ مارس ۲۰۰۵
اپن‌اس‌اس‌اچ نسخه ۳٫۹: ۱۷ اوت ۲۰۰۴
اپن‌اس‌اس‌اچ نسخه ۳٫۸: ۲۴ فوریه ۲۰۰۴
اپن‌اس‌اس‌اچ نسخه ۳٫۷٫۱: ۱۶ سپتامبر ۲۰۰۳
اپن‌اس‌اس‌اچ نسخه ۳٫۷: ۱۶ سپتامبر ۲۰۰۳
اپن‌اس‌اس‌اچ نسخه ۳٫۶٫۱: ۱ آوریل ۲۰۰۳
اپن‌اس‌اس‌اچ نسخه ۳٫۶: ۳۱ مارس ۲۰۰۳
اپن‌اس‌اس‌اچ نسخه ۳٫۵: ۱۴ اکتبر ۲۰۰۲
اپن‌اس‌اس‌اچ نسخه ۳٫۴: ۲۶ ژوئن ۲۰۰۲
توسعه و ساختار
اپن‌اس‌اس‌اچ به عنوان بخشی از سیستم‌عامل اپن‌بی‌اس‌دی توسعه داده شده است. بجای اعمال تغییرات برای دیگر سیستم عامل‌ها به صورت مستقیم در کد اپن‌اس‌اس‌اچ، زیرسازه قابل حمل مجزائی توسط «تیم قابلیت‌حمل» نگهداری می‌شود و «انتشارهای قابل‌حمل» توسط آن به صورت دوره‌ای ایجاد می‌شوند. این زیرسازه قابل اعتماد می‌باشد بخشی از آن به این دلیل می‌باشد که اپن‌اس‌اس‌اچ نیازمند به اجرای اعتبارسنجی می‌باشد، قابلیتی که پیاده‌سازی‌های بسیار متفاوتی را دارا می‌باشد. از چنین مدلی برای پروژه‌های دیگر اپن‌بی‌اس‌دی نظیر اپن‌ان‌تی‌پی‌دی استفاده می‌شود.
بسته اپن‌اس‌اس‌اچ شامل ابزار زیر می‌باشد:
ssh، جایگزینی برای ابزار آرلوگین، ریموت‌شل و تل‌نت که اجازه دسترسی به پوسته را برای سیستم راه‌دور مهیا می‌کند.
scp، جایگزینی برای ابزار ریموت کپی
sftp، جایگزینی برای ابزار اف‌تی‌پی برای انتقال فایل بین کامپیوترها
sshd، سرویس سرور اس‌اس‌اچ
ssh-keygen، ابزاری برای بررسی و تولید کلیدهای RSA, DSA که برای مجوزدهی کاربر و میزبان استفاده می‌شود.
ssh-agent و ssh-add، ابزاری برای آسان کردن عمل مجوزدهی بوسیله نگهداری کلیدهای آماده و اجتناب از واردکردن کلیدواژه در هر بار استفاده آنها
ssh-keyscan، ابزرای برای جستجوی لیستی از میزبان‌ها و جمع‌آوری کلیدهای عمومی آنها
سرور اپن‌اس‌اس‌اچ می‌تواند اعتبارسنجی کاربران با استفاده از روش‌های استاندارد پشتبانی شده توسط پروتکل اس‌اس‌اچ با استفاده از کلمه‌عبور، کلید عمومی اعتبارسنجی، استفاده از کلیدهایی برای هر کاربر، اعتبارسنجی مبتنی بر میزبان که نسخه ایمنی از ابزار ریموت‌لوگین می‌باشد، فرم محاوره‌پرسش و پاسخ صفحه‌کلیدی که روشی چالش‌برانگیز مبتنی بر سوال و جواب می‌باشد که اغلب برای اعتبارسنجی کلمات عبور ساده مورد استفاده قرار می‌گیرد که اما می‌تواند برای ایجاد اعتبارسنج‌هایی قوی‌تر همانند توکن امنیتی استفاده شود و Kerberos/GSSAPI انجام دهد.
سرور از روش‌های اعتبارسنجی بومی سیستم‌عامل استفاده می‌کند. این امر می‌تواند شامل استفاده از سیستم اعتبار سنجی بی‌اس‌دی یا PAM برای فعالسازی اعتبارسنجی‌هایی مضاعف بواسطه روش‌هایی چون کلمات‌عبور یکباره شود. هرچند، این امر عوارض جانبی‌ای نیز دربر خواهد داشت مانند زمانی که از PAM برای اپن‌اس‌اس‌اج استفاده می‌شود باید توسط مجوز کاربری ریشه که عموما برای اجرای PAM مورد نیاز است، اجرا شود. اپن‌اس‌اس‌اچ نسخه ۳٫۷ منتشر شده در ۱۶ سپتامبر ۲۰۰۳ به PAM امکان غیرفعال شدن در زمان اجرا را می‌دهد، و بدینگونه کاربران عادی می‌توانند نمونه‌هایی از ابزار sshd را اجرا نمایند.
ویژگی‌ها
اپن‌اس‌اس‌اچ قادر به عبور پورت‌های پروتکل تی‌سی‌پی از سیستم راه‌دور بر روی تونل‌های امن خود می‌باشد. از این توانایی برای ارتباطات مضاعف ترکیبی در پروتکل تی‌سی‌پی بر روی یک ارتباط اس‌اس‌اچ استفاده می‌شود که بعنوان ابزاری برای مخفی نگاه داشتن ارتباطات و پروتکل‌های رمزنگاری که بغیر از این ایمن نخواهند بود استفاده می‌شود و همچنین برای دور زدن دیواره‌های آتش مورد استفاده قرار می‌گیرد. بدین منظور در سیستم‌های ویندو اکس این تونل می‌تواند به صورت خودکار در زمان استفاده از اپن‌اس‌اس‌اچ برای ارتباط به میزبان راه‌دور ایجاد و از طریق آن، دیگر پروتکل‌ها همانند HTTP و VNC به آسانی هدایت شوند.
در ادامه، برخی ابزار دیگر شرکت‌ها شامل پشتیبانی برای ایجاد تونل از طریق اس‌اس‌اچ می‌باشند. این ابزارها شامل DistCC, CVS, rsync و Fetchmail می‌باشند. در برخی از سیستم‌عامل‌ها، سیستم‌فایل راه‌دور می‌تواند توسط ابزاری نظیر sshfs با استفاده از FUSE بر روی سیستم محلی مونت شود.
پروکسی سرور ادهاک ساکس را نیز می‌توان با استفاده از اپن‌اس‌اس‌اچ ایجاد کرد. در این روش امکان پروکسی کردن قابل انعطاف‌تری را نسبت به روش معمولی هدایت پورت ایجاد خواهد کرد.
در ابتدای نسخه ۴٫۳، لایه ۲٫۳ اواس‌آی در اپن‌اس‌اس‌اچ پیاده‌سازی شد. این قابل‌انعطاف‌ترین ویژگی تونل کردن در اپن‌اس‌اس‌اچ می‌باشد که به برنامه‌ها امکان این را می‌دهد که به صورت ناپیدا به منابع شبکه راه‌دور بدون تغییرات ضروری برای استفاده از SOCKS دسترسی یابند.
واژه‌نامه
کتاب‌شناسی