انتشار OpenSSH 8.0

پس از پنج ماه توسعه ارایه شده رهایی OpenSSH 8.0، یک پیاده سازی باز از کلاینت و سرور برای کار بر روی پروتکل های SSH 2.0 و SFTP.

تغییرات اصلی:

  • پشتیبانی آزمایشی از روش تبادل کلید که در برابر حملات brute-force بر روی یک کامپیوتر کوانتومی مقاوم است به ssh و sshd اضافه شده است. کامپیوترهای کوانتومی در حل مشکل تجزیه یک عدد طبیعی به فاکتورهای اول، که زیربنای الگوریتم‌های رمزگذاری نامتقارن مدرن است و نمی‌توان آن را به طور موثر بر روی پردازنده‌های کلاسیک حل کرد، بسیار سریع‌تر عمل می‌کنند. روش پیشنهادی بر اساس الگوریتم است NTRU Prime (تابع ntrup4591761)، توسعه یافته برای سیستم های رمزنگاری پس کوانتومی، و روش تبادل کلید منحنی بیضوی X25519.
  • در sshd، دستورالعمل های ListenAddress و PermitOpen دیگر از نحو قدیمی "host/port" پشتیبانی نمی کنند، که در سال 2001 به عنوان جایگزینی برای "host:port" برای ساده کردن کار با IPv6 پیاده سازی شد. در شرایط مدرن، نحو "[::6]:1" برای IPv22 ایجاد شده است، و "میزبان/پورت" اغلب با نشان دادن زیرشبکه (CIDR) اشتباه گرفته می شود.
  • کلیدهای ssh، ssh-agent و ssh-add now پشتیبانی می کنند ECDSA در توکن های PKCS#11؛
  • در ssh-keygen، اندازه کلید RSA پیش‌فرض مطابق با توصیه‌های جدید NIST به 3072 بیت افزایش یافته است.
  • ssh اجازه می دهد تا از تنظیم "PKCS11Provider=none" برای لغو دستورالعمل PKCS11Provider مشخص شده در ssh_config استفاده شود.
  • sshd هنگام تلاش برای اجرای دستورات مسدود شده توسط محدودیت "ForceCommand=internal-sftp" در sshd_config، نمایش گزارشی از موقعیت‌هایی ارائه می‌دهد که اتصال قطع می‌شود.
  • در ssh، هنگام نمایش درخواست تأیید پذیرش کلید میزبان جدید، به جای پاسخ «بله»، اکنون اثر انگشت صحیح کلید پذیرفته می شود (در پاسخ به دعوت نامه برای تأیید اتصال، کاربر می تواند هش مرجع به طور جداگانه از طریق کلیپ بورد دریافت شده است تا به صورت دستی آن را مقایسه نکنید).
  • ssh-keygen افزایش خودکار شماره توالی گواهی را هنگام ایجاد امضای دیجیتال برای چندین گواهی در خط فرمان فراهم می کند.
  • یک گزینه جدید "-J" به scp و sftp اضافه شده است که معادل تنظیمات ProxyJump است.
  • در ssh-agent، ssh-pkcs11-helper و ssh-add، پردازش گزینه خط فرمان "-v" برای افزایش محتوای اطلاعات خروجی اضافه شده است (در صورت مشخص شدن، این گزینه به پردازش های فرزند منتقل می شود. به عنوان مثال، هنگامی که ssh-pkcs11-helper از ssh-agent فراخوانی می شود).
  • گزینه "-T" به ssh-add اضافه شده است تا مناسب بودن کلیدها در ssh-agent برای انجام عملیات ایجاد و تایید امضای دیجیتال را آزمایش کند.
  • sftp-server از پسوند پروتکل "lsetstat at openssh.com" پشتیبانی می کند، که پشتیبانی از عملیات SSH2_FXP_SETSTAT را برای SFTP اضافه می کند، اما بدون دنبال کردن پیوندهای نمادین.
  • گزینه "-h" به sftp برای اجرای دستورات chown/chgrp/chmod با درخواست هایی که از پیوندهای نمادین استفاده نمی کنند اضافه شده است.
  • sshd تنظیم متغیر محیطی $SSH_CONNECTION را برای PAM فراهم می کند.
  • برای sshd، یک حالت تطبیق "Match final" به ssh_config اضافه شده است که شبیه "Match canonical" است، اما برای فعال کردن عادی سازی نام میزبان نیازی ندارد.
  • اضافه شدن پشتیبانی از پیشوند '@' به sftp برای غیرفعال کردن ترجمه خروجی دستورات اجرا شده در حالت دسته ای.
  • هنگامی که محتوای یک گواهی را با استفاده از دستور نمایش می دهید
    "ssh-keygen -Lf /path/certificate" اکنون الگوریتمی را که توسط CA برای اعتبارسنجی گواهی استفاده می‌شود، نمایش می‌دهد.

  • پشتیبانی بهبود یافته از محیط Cygwin، به عنوان مثال ارائه مقایسه بدون حساس به حروف کوچک و بزرگ نام گروه و کاربر. فرآیند sshd در پورت Cygwin به cygsshd تغییر یافته است تا از تداخل با پورت OpenSSH مایکروسافت جلوگیری شود.
  • قابلیت ساخت با شاخه آزمایشی OpenSSL 3.x اضافه شد.
  • حذف شد آسیب پذیری (CVE-2019-6111) در اجرای ابزار scp، که به فایل‌های دلخواه در فهرست هدف اجازه می‌دهد تا هنگام دسترسی به سروری که توسط مهاجم کنترل می‌شود، روی سمت کلاینت بازنویسی شوند. مشکل این است که هنگام استفاده از scp، سرور تصمیم می گیرد که کدام فایل ها و دایرکتوری ها را برای مشتری ارسال کند و مشتری فقط صحت نام اشیاء برگشتی را بررسی می کند. بررسی سمت مشتری فقط به مسدود کردن سفرهای فراتر از دایرکتوری فعلی (../") محدود می شود، اما انتقال فایل هایی با نام هایی متفاوت از موارد درخواستی اولیه را در نظر نمی گیرد. در مورد کپی بازگشتی (-r)، علاوه بر نام فایل ها، می توانید نام زیر شاخه ها را نیز به روشی مشابه دستکاری کنید. به عنوان مثال، اگر کاربر فایل‌ها را در فهرست اصلی کپی کند، سرور تحت کنترل مهاجم می‌تواند فایل‌هایی با نام‌های .bash_aliases یا .ssh/authorized_keys به جای فایل‌های درخواستی تولید کند و توسط ابزار scp در کاربر ذخیره می‌شود. دایرکتوری خانه

    در نسخه جدید، ابزار scp برای بررسی مطابقت بین نام فایل های درخواستی و فایل های ارسال شده توسط سرور به روز شده است که در سمت کلاینت انجام می شود. این ممکن است مشکلاتی را در پردازش ماسک ایجاد کند، زیرا کاراکترهای بسط ماسک ممکن است در سمت سرور و سرویس گیرنده متفاوت پردازش شوند. در صورتی که چنین تفاوت‌هایی باعث شود مشتری از پذیرش فایل‌ها در scp خودداری کند، گزینه «-T» برای غیرفعال کردن بررسی سمت کلاینت اضافه شده است. برای اصلاح کامل مشکل، نیاز به یک کار مجدد مفهومی از پروتکل scp است که خود قبلاً قدیمی است، بنابراین توصیه می شود به جای آن از پروتکل های مدرن تری مانند sftp و rsync استفاده کنید.

منبع: opennet.ru

اضافه کردن نظر