Уязвимост в PuTTY, позволяваща възстановяване на закрития ключ на потребителя

В PuTTY, клиенте за SSH протокол популярном на Windows, е открито опасно уязвимост (CVE-2024-31497), която позволява възстановяване на частния ключ на потребителя, генериран с ECDSA алгоритъм с елиптична крива NIST P-521 (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-битовия ключ са използвали вектор за инициализация (nonce), базиран на 512-битова произволна последователност, вероятно смятайки, че 512 бита ентропия ще бъдат достатъчни и останалите 9 бита нямат съществено значение. В резултат на това, при всички частни ключове, създадени в PuTTY с алгоритъм ecdsa-sha2-nistp521, първите 9 бита от вектора за инициализация винаги са били нулеви.

За ECDSA и DSA качеството на генератора на псевдослучайни числа и пълното покритие с произволни данни на параметъра, използван при изчисляване на модула, са от съществено значение, тъй като разкриването дори на няколко бита с информация за вектора за инициализация е достатъчно, за да се проведе атака на последователно възстановяване на целия частен ключ. За успешно възстановяване на ключа е достатъчно наличието на публичен ключ и анализ на десетки цифрови подписа, генерирани с проблемния ключ за известни данни на атакуващия. Атаката се свежда до решаването на HNP (Hidden Number Problem).

Необходими цифрови подписи могат да се получат, например, чрез свързване на потребителя с SSH-сервер на нападателя или с Git-сервер, който използва SSH като транспорт. Необходимите за атаката подписи също могат да бъдат извлечени, ако ключът е бил използван за удостоверяване на произволни данни, например git-коммити, при използване на SSH-агента Pageant за пренасочване на трафика към хоста на разработчика. Получаването на необходимите данни за възстановяване на ключа по време на MITM атака е изключено, тъй като подписите в SSH не се предават в открит вид.

Отбелязва се, че подобно използване на непълни вектори за инициализация е било приложимо и в PuTTY, и за други видове елиптични криви, но за алгоритми различни от ECDSA P-521, настъпилите изтичания на информация не са достатъчни за реализиране на работеща атака за възстановяване на ключа. Ключовете ECDSA с друг размер и ключовете Ed25519 не подлежат на атака.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster