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

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

Найбільш відомими проектами, які зачіпають запропонований метод атаки, є OpenJDK/OracleJDK (CVE-2019-2894) та бібліотека libgcrypt (CVE-2019-13627), що застосовується у GnuPG. Проблемі також схильні MatrixSSL, Крипто++, wolfCrypt, еліптичний, 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, арка.

Вразливості не схильні 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

Додати коментар або відгук