Новая техника атаки по сторонним каналам, позволяющая восстановить ключи ECDSA

Исследователи из университета им. Масарика раскрыли сведения о уязвимостях в различных реализациях алгоритма создания цифровой подписи ECDSA/EdDSA, позволяющих восстановить значение приватного ключа на основе анализа утечек сведений об отдельных битах, всплывающих при применении методов анализа по сторонним каналам. Уязвимости получили кодовое имя Minerva.

Наиболее известными проектами, которые затрагивает предложенный метод атаки, являются OpenJDK/OracleJDK (CVE-2019-2894) и библиотека Libgcrypt (CVE-2019-13627), применяемая в GnuPG. Проблеме также подвержены MatrixSSL, Crypto++, wolfCrypt, elliptic, jsrsasign, python-ecdsa, ruby_ecdsa, fastecdsa, easy-ecc и смарт-карты Athena IDProtect. Не протестированы, но как потенциально уязвимые также заявлены карты Valid S/A IDflex V, SafeNet eToken 4300 и TecSec Armored Card, которые используют типовой модуль ECDSA.

Проблема уже устранена в выпусках libgcrypt 1.8.5 и wolfCrypt 4.1.0, остальные проекты пока не сформировали обновления. Проследить за исправлением уязвимости в пакете libgcrypt в дистрибутивах можно на данных страницах: Debian, Ubuntu, RHEL, Fedora, openSUSE/SUSE, FreeBSD, Arch.

Уязвимости не подвержены OpenSSL, Botan, mbedTLS и BoringSSL. Ещё не протестированы Mozilla NSS, LibreSSL, Nettle, BearSSL, cryptlib, OpenSSL в режиме FIPS, Microsoft .NET crypto,
libkcapi из ядра Linux, Sodium и GnuTLS.

Проблема вызвана возможностью определения значений отдельных битов во время выполнения умножения на скаляр при операциях с эллиптической кривой. Для выделения информации о битах используются косвенные методы, такие как оценка задержки при выполнении вычислений. Для атаки необходимо наличие непривилегированного доступа к хосту, на котором выполняется генерация цифровой подписи (не исключается и удалённая атака, но она сильно усложнена и требует большого объёма данных для анализа, поэтому может рассматриваться как маловероятная). Для загрузки доступен используемый для атаки инструментарий.

Несмотря на незначительный размер утечки, для ECDSA определения даже нескольких битов с информацией о векторе инициализации (nonce) достаточно для совершения атаки по последовательному восстановлению всего закрытого ключа. По заявлению авторов метода, для успешного восстановления ключа достаточно анализа от нескольких сотен до нескольких тысяч цифровых подписей, сгенерированных для известных атакующему сообщений. Например, для определения закрытого ключа, используемого на смарт-карте Athena IDProtect на базе чипа Inside Secure AT90SC, при использовании эллиптической кривой secp256r1 было проанализировано 11 тысяч цифровых подписей. Общее время атаки составило 30 минут.

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

Добавить комментарий