Кража приватных ключей и взлом сервера: в PuTTY обнаружена критическая уязвимость

Разработчики PuTTY предупреждаюто критической уязвимости, затрагивающей версии от 0.68 до 0.80. Недостаток может позволить злоумышленнику полностью восстановить приватные ключи NIST-P521.

Уязвимость CVE-2024-31497возникает из-за сбоев в генерации криптографических одноразовых номеров ECDSA ( Cryptographic nonce ), что и позволяет восстановить приватные ключи. Открытие ошибки приписывают исследователям Фабиану Боймеру и Маркусу Бринкманну из Рурского университета в Бохуме

Первые 9 бит каждого одноразового номера ECDSA равны нулю, что позволяет полностью восстановить секретный ключ примерно по 60 подписям с использованием самых современных методов.

Атакующему, владеющему несколькими десятками подписанных сообщений и публичным ключом, хватит данных для восстановления приватного ключа и подделки подписей, что может привести к несанкционированному доступу к серверам и сервисам, использующим данный ключ.

Проблема также коснулась других продуктов, интегрированных с уязвимыми версиями 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 проблема была устранена. Разработчики продуктов использовали технику RFC 6979 для генерации всех типов ключей DSA и ECDSA, отказавшись от предыдущего метода.

Пользователям TortoiseSVN рекомендуется использовать Plink из последнего релиза PuTTY 0.81 при доступе к SVN-репозиториям через SSH до выпуска обновления.

Ключи ECDSA NIST-P521, использовавшиеся в любом из уязвимых компонентов, следует считать скомпрометированными и немедленно отозвать, удалив их из файлов “~/.ssh/authorized_keys” и аналогичных на других SSH-серверах.

Public Release.