پس از چهار ماه توسعه
تغییرات اصلی:
- تغییرات امنیتی:
- در ssh-agent، هنگام استفاده از کلیدهای FIDO که برای احراز هویت SSH ایجاد نشده اند (شناسه کلید با رشته "ssh:" شروع نمی شود)، اکنون بررسی می کند که پیام با استفاده از روش های استفاده شده در پروتکل SSH امضا شود. این تغییر اجازه نمیدهد ssh-agent به میزبانهای راه دوری که دارای کلیدهای FIDO هستند هدایت شود تا توانایی استفاده از این کلیدها برای تولید امضا برای درخواستهای احراز هویت وب را مسدود کند (مورد معکوس، زمانی که مرورگر بتواند درخواست SSH را امضا کند، در ابتدا مستثنی میشود. به دلیل استفاده از پیشوند "ssh:" در شناسه کلید).
- تولید کلید مقیم ssh-keygen شامل پشتیبانی از افزونه credProtect است که در مشخصات FIDO 2.1 توضیح داده شده است، که با نیاز به یک PIN قبل از انجام هر عملیاتی که ممکن است منجر به استخراج کلید مقیم از توکن شود، حفاظت بیشتری را برای کلیدها فراهم می کند.
- بالقوه شکستن تغییرات سازگاری:
- برای پشتیبانی از FIDO/U2F، توصیه می شود از کتابخانه libfido2 حداقل نسخه 1.5.0 استفاده کنید. قابلیت استفاده از نسخههای قدیمیتر تا حدی پیادهسازی شده است، اما در این حالت، عملکردهایی مانند کلیدهای ساکن، درخواست پین و اتصال چندین توکن در دسترس نخواهند بود.
- در ssh-keygen، دادههای احراز هویت لازم برای تأیید تأیید امضای دیجیتال به فرمت اطلاعات تأیید اضافه شده است، که به صورت اختیاری هنگام تولید یک کلید FIDO ذخیره میشود.
- API مورد استفاده در هنگام تعامل OpenSSH با لایه برای دسترسی به نشانه های FIDO تغییر کرده است.
- هنگام ساخت یک نسخه قابل حمل OpenSSH، اکنون automake برای تولید اسکریپت پیکربندی و فایل های ساخت همراه آن مورد نیاز است (اگر از یک فایل کد tar ساخته شده است، پیکربندی مجدد مورد نیاز نیست).
- اضافه شدن پشتیبانی از کلیدهای FIDO که به تأیید پین در ssh و ssh-keygen نیاز دارند. برای تولید کلید با پین، گزینه “verify-required” به ssh-keygen اضافه شده است. در صورت استفاده از چنین کلیدهایی، قبل از انجام عملیات ایجاد امضا، از کاربر خواسته می شود تا با وارد کردن یک کد پین، اقدامات خود را تأیید کند.
- در sshd، گزینه “verify-required” در تنظیمات authorized_keys پیاده سازی می شود که نیاز به استفاده از قابلیت هایی برای تایید حضور کاربر در حین عملیات با توکن دارد. استاندارد FIDO چندین گزینه برای چنین تأییدی ارائه می دهد، اما در حال حاضر OpenSSH فقط از تأیید مبتنی بر پین پشتیبانی می کند.
- sshd و ssh-keygen برای تأیید امضای دیجیتالی که با استاندارد FIDO Webauthn مطابقت دارند، پشتیبانی اضافه کردهاند، که امکان استفاده از کلیدهای FIDO در مرورگرهای وب را فراهم میکند.
- در ssh در تنظیمات CertificateFile،
ControlPath، IdentityAgent، IdentityFile، LocalForward و
RemoteForward اجازه می دهد تا مقادیر را از متغیرهای محیطی مشخص شده در قالب "${ENV}" جایگزین کنید. - ssh و ssh-agent پشتیبانی از متغیر محیطی $SSH_ASKPASS_REQUIRE اضافه کرده اند که می تواند برای فعال یا غیرفعال کردن تماس ssh-askpass استفاده شود.
- در ssh در ssh_config در دستورالعمل AddKeysToAgent، قابلیت محدود کردن مدت اعتبار یک کلید اضافه شده است. پس از اتمام محدودیت تعیین شده، کلیدها به طور خودکار از ssh-agent حذف می شوند.
- در scp و sftp، با استفاده از پرچم "-A"، اکنون می توانید به صراحت اجازه تغییر مسیر به scp و sftp را با استفاده از ssh-agent بدهید (تغییر مسیر به طور پیش فرض غیرفعال است).
- اضافه شدن پشتیبانی برای جایگزینی '%k' در تنظیمات ssh، که نام کلید میزبان را مشخص می کند. از این ویژگی می توان برای توزیع کلیدها در فایل های جداگانه استفاده کرد (به عنوان مثال، "UserKnownHostsFile ~/.ssh/known_hosts.d/%k").
- به استفاده از عملیات "ssh-add -d -" برای خواندن کلیدهایی از stdin که قرار است حذف شوند اجازه دهید.
- در sshd، شروع و پایان فرآیند هرس اتصال در لاگ منعکس می شود که با استفاده از پارامتر MaxStartups تنظیم می شود.
توسعه دهندگان OpenSSH همچنین از کار افتادن آتی الگوریتم هایی با استفاده از هش SHA-1 به خاطر
برای هموار کردن انتقال به الگوریتمهای جدید در OpenSSH، نسخه بعدی تنظیمات UpdateHostKeys را بهطور پیشفرض فعال میکند، که بهطور خودکار مشتریان را به الگوریتمهای قابل اعتمادتر منتقل میکند. الگوریتم های پیشنهادی برای مهاجرت عبارتند از rsa-sha2-256/512 بر اساس RFC8332 RSA SHA-2 (پشتیبانی شده از OpenSSH 7.2 و به طور پیش فرض استفاده می شود)، ssh-ed25519 (پشتیبانی از OpenSSH 6.5) و ecdsa-sha2-nistp256/384 مبتنی بر ecdsa-sha521-nistp5656/5.7 در RFCXNUMX ECDSA (پشتیبانی از OpenSSH XNUMX).
منبع: opennet.ru