OpenSSH 10.6 منتشر شد؛ گامی دیگر در مسیر امنیت بیشتر SSH
پروژه OpenSSH نسخه 10.6 را منتشر کرد. این نسخه که در تاریخ ۶ اکتبر ۲۰۲۶ در دسترس قرار گرفته، مجموعهای از اصلاحات امنیتی، قابلیتهای جدید، بهبودهای مرتبط با احراز هویت و چندین اصلاح فنی را در اختیار کاربران قرار میدهد.
OpenSSH یکی از مهمترین پیادهسازیهای متنباز پروتکل SSH است و در طیف گستردهای از سیستمهای یونیکسی و BSD، از جمله OpenBSD و نسخه قابلحمل OpenSSH در سایر سیستمعاملها، مورد استفاده قرار میگیرد.
مهمترین نکات OpenSSH 10.6 چیست؟
در نسخه 10.6 چند موضوع بیش از سایر تغییرات جلب توجه میکنند:
– اصلاح چند مشکل امنیتی در “ssh”، “sshd” و “sftp”
– فعال شدن الگوریتم امضای ترکیبی Post-Quantum مبتنی بر ML-DSA و Ed25519
– فعال بودن هشدار مربوط به استفاده از الگوریتمهای تبادل کلید غیرپساکوانتومی
– مقابله با یک حمله Side-Channel مرتبط با فشردهسازی SSH
– سختگیری بیشتر در بررسی نامهای کاربری
– بهبود امنیت احراز هویت GSSAPI
– بهبود حفاظت از کلیدهای FIDO
– کنترل بهتر SSH Agent و سوکتهای مربوط به Agent Forwarding
– افزایش پیشفرض تعداد دورهای KDF برای کلیدهای خصوصی OpenSSH
– بهبودهای متعدد در SFTP، SCP، ChannelTimeout و SSH Forwarding
– اصلاحات مرتبط با سازگاری و عملکرد در سیستمهای مختلف، از جمله NetBSD.
امنیت؛ مهمترین بخش OpenSSH 10.6
یکی از مهمترین دلایل اهمیت این نسخه، مجموعه اصلاحات امنیتی آن است.
مقابله با نشت اطلاعات از طریق فشردهسازی SSH
یکی از تغییرات مهم OpenSSH 10.6 مربوط به غیرفعال کردن LZ77 dictionary coder است.
پژوهشی با عنوان «Crossing the Streams: SSH Plaintext Recovery via a Common Compression Context in Multiplexed Channels» نشان داده است که در شرایط خاص، استفاده از دیکشنری مشترک فشردهسازی میان کانالهای یک نشست SSH میتواند اطلاعاتی درباره دادههای محرمانه را از طریق Side-Channel در اختیار مهاجم قرار دهد.
OpenSSH برای کاهش این ریسک، این بخش از فشردهسازی را غیرفعال کرده است. در نتیجه ممکن است کارایی گزینه “Compression” در برخی شرایط کاهش پیدا کند، اما امنیت نشست SSH در برابر این کلاس از حملات افزایش مییابد.
توسعهدهندگان همچنین توصیه میکنند در صورت امکان، فشردهسازی در سطح خود برنامه انجام شود؛ زیرا در این حالت در معرض همین نوع حمله قرار نمیگیرد.
سختگیری بیشتر در نام کاربری
یکی دیگر از اصلاحات امنیتی OpenSSH 10.6 مربوط به نام کاربریهایی است که مستقیماً در خط فرمان “ssh” وارد میشوند.
در این نسخه، وجود کاراکترهای “$” و “\” در نام کاربری واردشده از خط فرمان مجاز نیست.
دلیل این تغییر، جلوگیری از سناریوهایی است که در آن یک نام کاربری کنترلشده توسط ورودی نامطمئن بتواند در شرایط خاص، از طریق گزینههایی مانند “ProxyCommand” یا “Match exec” باعث ایجاد Injection در محیط Shell شود.
البته این محدودیت برای نام کاربریهایی که در فایل پیکربندی و از طریق گزینه “User” تعریف شدهاند اعمال نمیشود.
توسعهدهندگان OpenSSH همچنان تأکید کردهاند که نباید خط فرمان ابزارهایی مانند “ssh” را مستقیماً در معرض ورودی کنترلنشده و غیرقابل اعتماد قرار داد.
بهبود امنیت GSSAPI
در نسخه 10.6 نحوه مدیریت اعتبارنامههای GSSAPI نیز اصلاح شده است.
در گذشته، در شرایط خاص ممکن بود اعتبارنامهای که مربوط به یک تلاش ناموفق برای احراز هویت GSSAPI بود، باقی بماند و پس از موفق شدن یک روش احراز هویت دیگر، در دسترس قرار گیرد.
OpenSSH 10.6 اعتبارنامههای GSSAPI را تنها پس از موفقیت احراز هویت نگهداری میکند و همچنین وضعیت مربوط به GSSAPI را پیش از شروع احراز هویت مجدداً تنظیم میکند.
حرکت جدیتر به سمت رمزنگاری پساکوانتومی
یکی از جذابترین بخشهای OpenSSH 10.6، پشتیبانی رسمیتر از یک الگوریتم امضای ترکیبی Post-Quantum است:
“ssh-mldsa44-ed25519”
این روش ترکیبی از ML-DSA و Ed25519 استفاده میکند و با هدف فراهم کردن امنیت در برابر تهدیدات آینده رایانش کوانتومی طراحی شده است.
در نسخههای آزمایشی قبلی، این الگوریتم با پسوند توسعهدهنده “@openssh.com” ارائه میشد؛ اما در OpenSSH 10.6 این پسوند دیگر استفاده نمیشود.
بنابراین اگر از کلیدهایی استفاده میکنید که بر اساس پیادهسازی آزمایشی قبلی ایجاد شدهاند، باید توجه داشته باشید که این کلیدها ممکن است نیاز به ایجاد مجدد داشته باشند.
هشدار برای الگوریتمهای غیرپساکوانتومی
در سمت سرور نیز گزینه جدیدی با نام:
“WarnWeakCrypto”
برای “sshd_config” اضافه شده است.
این گزینه بهصورت پیشفرض فعال است و زمانی که کلاینت از یک روش تبادل کلید استفاده کند که در برابر تهدیدات کوانتومی ایمن محسوب نمیشود، پیام هشدار ثبت میکند.
این تغییر را میتوان بخشی از روند تدریجی OpenSSH برای آمادهسازی زیرساختهای SSH در برابر نسل آینده حملات رمزنگاری دانست.
امنیت بیشتر برای کلیدهای FIDO
OpenSSH 10.6 در زمینه کلیدهای سختافزاری FIDO نیز تغییر مهمی دارد.
در این نسخه، هنگام استفاده از کلیدهای Resident Key ذخیرهشده روی FIDO Token، الزامات مربوط به تأیید کاربر، مانند PIN یا احراز هویت بیومتریک، بهتر حفظ میشود.
این کار با بررسی سیاست “credProtect” مربوط به Credential انجام میشود و باعث میشود سطح حفاظتی تعیینشده برای کلید سختافزاری در هنگام استفاده توسط OpenSSH بهتر رعایت شود.
کنترل بهتر SSH Agent
در OpenSSH 10.6 گزینه جدیدی با نام:
“AgentSocketPath”
به “sshd” اضافه شده است.
این گزینه امکان کنترل بهتر محل قرارگیری Socket مربوط به “SSH_AUTH_SOCK” را در زمان Agent Forwarding فراهم میکند.
همچنین “ssh-agent” گزینه جدید “-A” را برای تعیین محل Socket ارائه میدهد.
این تغییر به مدیران سیستم اجازه میدهد بین حالتهای مختلف استفاده از Socket، از جمله مسیر اختصاصی کاربر و مسیرهای اشتراکی، کنترل دقیقتری داشته باشند. برای Socketهای اشتراکی نیز نام تصادفی برای زیرشاخه ایجاد میشود تا سطح جداسازی و امنیت بهتر شود.
تغییر در MaxAuthTries و احراز هویت با کلید عمومی
OpenSSH 10.6 نحوه شمارش درخواستهای بررسی کلید عمومی را نیز بهبود داده است.
در این نسخه، تستهایی که صرفاً بررسی میکنند آیا سرور یک کلید عمومی خاص را قبول میکند یا خیر، از تلاشهای واقعی احراز هویت جدا میشوند.
گزینه جدید:
“PubkeyOptions max-pk-ok:nnnn”
امکان تعیین تعداد این بررسیها را فراهم میکند.
مقدار پیشفرض ۶ است و این تغییر میتواند برای سیستمهایی که تعداد زیادی کلید در “ssh-agent” یا روی دیسک دارند مفید باشد؛ زیرا کلاینت فرصت بیشتری برای بررسی کلیدهای موجود قبل از رسیدن به محدودیت احراز هویت خواهد داشت.
بهبود ChannelTimeout
در OpenSSH 10.6 گزینه “ChannelTimeout” اکنون از زمانهای کسری نیز پشتیبانی میکند.
همچنین چند مشکل مربوط به اولویتبندی و اعمال Timeout برای انواع مختلف کانالها اصلاح شده است.
این موضوع بهخصوص در محیطهایی که از SSH برای ایجاد نشستهای متعدد، Forwarding یا سرویسهای طولانیمدت استفاده میکنند، اهمیت دارد.
بهبود SFTP و SCP
در بخش انتقال فایل نیز تغییرات قابل توجهی انجام شده است.
در “sftp” اعتبارسنجی مسیرهایی که سرور برمیگرداند سختگیرانهتر شده تا از شرایطی که ممکن است یک عملیات Recursive Copy را به خارج از مسیر هدف هدایت کند جلوگیری شود.
همچنین قابلیت ایجاد Directory در “sftp” با گزینه “-p” برای “mkdir” و “lmkdir” اضافه شده است.
در “scp” نیز چندین مشکل امنیتی و رفتاری اصلاح شده است؛ از جمله جلوگیری از دریافت نام فایلهایی که شامل Null Byte هستند.
افزایش تعداد دورهای KDF
OpenSSH 10.6 همچنین مقدار پیشفرض تعداد دورهای KDF برای فرمت کلید خصوصی OpenSSH را از ۲۴ به ۳۲ افزایش میدهد.
در عین حال، یک سقف بسیار بالا برای تعداد دورهای قابل قبول نیز تعیین شده است تا یک کلید مخرب با تعداد بسیار زیاد دورهای KDF نتواند باعث شود سرویس مدت غیرمنطقی برای پردازش آن صرف کند.
این تغییرات در کنار هم به مقاومتر شدن فرآیند پردازش کلیدهای خصوصی کمک میکنند.
نکته مهم برای کاربران NetBSD
برای کاربران NetBSD یک تغییر جالب نیز در بخش Portability این نسخه دیده میشود.
در OpenSSH 10.6، workaround قدیمی مربوط به:
“NetBSD BROKEN_READ_COMPARISON”
حذف شده است.
طبق توضیحات پروژه، این workaround دیگر ضروری نبوده و حتی میتوانست در برخی شرایط باعث مصرف CPU در مرحله پیش از احراز هویت شود.
این موضوع نشان میدهد که توسعه OpenSSH همچنان سازگاری با سیستمهای BSD و بهخصوص NetBSD را بهعنوان بخشی از پشتیبانی Portable خود دنبال میکند.
OpenSSH و آینده امنیت SSH
انتشار OpenSSH 10.6 فقط یک بهروزرسانی معمولی نیست؛ بلکه چند روند مهم را همزمان نشان میدهد.
از یک طرف، پروژه در حال سختتر کردن بخشهای مختلف SSH در برابر حملات مدرن است؛ از Side-Channel و Injection گرفته تا مدیریت اعتبارنامه و کلیدهای سختافزاری.
از طرف دیگر، حرکت به سمت Post-Quantum Cryptography نشان میدهد که OpenSSH قصد دارد زیرساخت SSH را پیش از فراگیر شدن تهدیدات کوانتومی برای این تغییر آماده کند.
همچنین توسعهدهندگان OpenSSH اعلام کردهاند که اخیراً تعداد زیادی گزارش امنیتی، از جمله گزارشهایی که با کمک مدلهای هوش مصنوعی پیدا شدهاند، دریافت کردهاند. تیم OpenSSH اشاره کرده است که اگرچه بسیاری از این گزارشها پس از بررسی، اثر امنیتی واقعی ندارند، اما برخی مشکلاتی که ابتدا توسط ابزارهای هوش مصنوعی شناسایی شدهاند، بعدها بهصورت مستقل توسط پژوهشگران دیگر نیز کشف شدهاند.
به همین دلیل، پروژه تصمیم گرفته است در شرایط فعلی انتشارهای خود را با فاصله زمانی کوتاهتری انجام دهد تا اصلاحات امنیتی سریعتر به دست کاربران برسد.
آیا باید OpenSSH را به 10.6 ارتقا دهیم؟
برای مدیران سیستم، سرورها و زیرساختهای حساس، بررسی و اعمال بهروزرسانیهای OpenSSH اهمیت زیادی دارد.
با توجه به اینکه OpenSSH 10.6 شامل چندین اصلاح امنیتی است، مدیران سیستم بهتر است نسخه OpenSSH موجود روی سرورها و تجهیزات خود را بررسی کنند و در صورت فراهم بودن شرایط سازگاری، فرآیند بهروزرسانی را در برنامه نگهداری سیستم قرار دهند.
البته در محیطهای Production بهتر است قبل از ارتقای گسترده، نسخه جدید در محیط آزمایشی بررسی شود؛ بهخصوص اگر از تنظیمات خاص SSH، احراز هویت GSSAPI، FIDO، Agent Forwarding، Forwardingهای پیچیده یا اسکریپتهایی استفاده میکنید که به رفتار دقیق SSH وابسته هستند.
جمعبندی
OpenSSH 10.6 را میتوان یکی از انتشارهای مهم اخیر این پروژه دانست؛ نسخهای که علاوه بر اصلاحات متعدد، تمرکز قابل توجهی روی امنیت آینده SSH دارد.
مهمترین موارد عبارتاند از:
امنیت بیشتر در SFTP و SSH، مقابله با Side-Channel ناشی از فشردهسازی، سختگیری بیشتر در ورودیهای کاربر، حفاظت بهتر از GSSAPI و FIDO، پشتیبانی رسمیتر از الگوریتم ترکیبی Post-Quantum، هشدار درباره رمزنگاریهای غیرپساکوانتومی و بهبود سازگاری با سیستمهای مختلف از جمله NetBSD.
برای کاربران OpenBSD و سایر سیستمهای BSD نیز این انتشار اهمیت ویژهای دارد؛ زیرا OpenSSH همچنان یکی از اجزای کلیدی زیرساخت مدیریتی و امنیتی این سیستمها محسوب میشود.
برای دریافت جزئیات کامل تغییرات و بررسی مستندات رسمی، نسخه جدید OpenSSH و Release Notes آن را مطالعه کنید.
منبع: OpenBSD Journal / Undeadly و Release Notes رسمی OpenSSH.
