PuTTY، یک کلاینت محبوب SSH در پلتفرم ویندوز، دارای یک آسیبپذیری خطرناک (CVE-2024-31497) است که اجازه میدهد کلید خصوصی کاربر با استفاده از الگوریتم NIST P-521 Elliptic Curve ECDSA (ecdsa-sha2-nistp521) دوباره ایجاد شود. برای انتخاب یک کلید خصوصی، کافی است تقریباً 60 امضای دیجیتال تولید شده توسط کلید مشکل ساز را تجزیه و تحلیل کنید.
این آسیبپذیری از نسخه PuTTY 0.68 شروع میشود و همچنین بر محصولاتی که شامل نسخههای آسیبپذیر PuTTY هستند، برای مثال، FileZilla (3.24.1 - 3.66.5)، WinSCP (5.9.5 - 6.3.2)، TortoiseGit (2.4.0.2 -) تأثیر میگذارد. 2.15.0) و TortoiseSVN (1.10.0 - 1.14.6). مشکل در PuTTY 0.81، FileZilla 3.67.0، WinSCP 6.3.3 و TortoiseGit 2.15.0.1 رفع شد. پس از نصب بهروزرسانی، به کاربران توصیه میشود که کلیدهای جدید تولید کرده و کلیدهای عمومی قدیمی را از فایلهای authorized_keys خود حذف کنند.
این آسیبپذیری ناشی از بیدقتی توسعهدهندگان است، که از یک بردار اولیه (غیر) مبتنی بر یک دنباله تصادفی 521 بیتی برای تولید یک کلید 512 بیتی استفاده کردند، احتمالاً معتقد بودند که آنتروپی 512 بیت کافی است و 9 بیت باقیمانده کافی است. اهمیت اساسی ندارند. در نتیجه، در تمام کلیدهای خصوصی ایجاد شده در PuTTY با استفاده از الگوریتم ecdsa-sha2-nistp521، 9 بیت اول بردار مقداردهی اولیه همیشه مقادیر صفر می گرفتند.
برای ECDSA و DSA، کیفیت مولد اعداد شبه تصادفی و پوشش کامل پارامتر مورد استفاده در محاسبه مدول توسط دادههای تصادفی از اهمیت اساسی برخوردار است، زیرا تعیین حتی چند بیت با اطلاعات مربوط به بردار اولیه برای حمل کافی است. یک حمله برای بازیابی متوالی کل کلید خصوصی. برای بازیابی موفقیت آمیز یک کلید، کافی است یک کلید عمومی داشته باشید و ده ها امضای دیجیتال تولید شده با استفاده از کلید مشکل ساز برای داده های شناخته شده توسط مهاجم را تجزیه و تحلیل کنید. این حمله به حل مشکل HNP (مشکل شماره پنهان) ختم می شود.
امضاهای دیجیتال لازم را می توان به دست آورد، به عنوان مثال، زمانی که کاربر به سرور SSH مهاجم یا به سرور Git متصل می شود که از SSH به عنوان انتقال استفاده می کند. امضاهای مورد نیاز برای حمله همچنین میتوانند در صورت استفاده از کلید برای تأیید دادههای دلخواه، بهعنوان مثال، commitهای git هنگام استفاده از عامل Pageant SSH برای هدایت ترافیک به میزبان توسعهدهنده، مشخص شوند. به دست آوردن اطلاعات لازم برای بازیابی کلید در طول حمله MITM غیرممکن است، زیرا امضاها در SSH به صورت متن واضح منتقل نمی شوند.
اشاره شده است که استفاده مشابه از بردارهای اولیه سازی ناقص در PuTTY برای انواع دیگر منحنی های بیضوی مورد استفاده قرار گرفت، اما برای الگوریتم هایی غیر از ECDSA P-521، نشت اطلاعات به دست آمده برای اجرای یک حمله بازیابی کلید کاری کافی نیست. کلیدهای ECDSA در اندازه های دیگر و کلیدهای Ed25519 مستعد حمله نیستند.
منبع: opennet.ru