Перейти к содержимому
ecdsa.com

Слабый ключ

Ключ, который взломать проще, чем обещает его длина: из-за дефектного генератора, нехватки энтропии, структурного изъяна или повтора на разных устройствах.
Другие написанияweak keysROCADebian weak keysshared primes

Большинство реальных инцидентов связано с нехваткой энтропии. Пакет OpenSSL в Debian (CVE-2008-0166, 2006–2008) инициализировал генератор случайных чисел почти одним только идентификатором процесса, поэтому для каждого типа и размера ключа существовало лишь около 32 768 ключей; списки блокировки этих ключей до сих пор поставляются с некоторыми инструментами SSH. Устройства, которые генерировали ключи сразу после загрузки, получали повторяющиеся или общие с другими устройствами простые числа: в 2012 году Хенингер и соавторы факторизовали ключи RSA примерно у 0,5 % TLS-хостов, вычислив НОД для миллионов модулей.

Структурные изъяны: уязвимость ROCA (CVE-2017-15361) позволяла факторизовать ключи RSA из библиотеки Infineon из-за особой структуры их простых чисел; она затронула смарт-карты, TPM и эстонскую ID-карту. В 2022 году обнаружилось, что одна коммерческая библиотека генерирует настолько близкие простые числа, что метод Ферма мгновенно раскладывает модуль на множители (CVE-2022-26320). На эллиптических кривых слабые ключи возникают из-за смещённых nonce и некачественной случайности, а не из-за самого ключа.

Проверки, которые может выполнить проверяющая сторона или CA: списки блокировки по отпечаткам (Debian), тест ROCA по отпечатку, пакетное вычисление НОД с известными модулями, факторизация методом Ферма для близких простых чисел, открытая экспонента не меньше 65537 и минимальные размеры ключей. Инструмент проверки слабых ключей выполняет эти тесты локально.

Стандарты и ссылки

Все термины