Eight Bits of Trust: eMudhra's CA keys cracked in milliseconds
Восемь промежуточных сертификатов удостоверяющего центра eMudhra имели приватные ключи, сводящиеся к одному байту: значения 4, 56, 115, 155, 156, 230, 66 и 237. Это ключи на кривой P-384, где приватный ключ — просто число d, а публичный — это d × G. Вместо случайного 384-битного числа (около 10¹¹⁵ вариантов) ключи содержали 47 нулевых байтов и один значащий. Перебор занимает максимум 255 шагов и меньше секунды на ноутбуке — все 16 сертификатов (8 ключей, каждый продублирован eMudhra и Sectigo) были восстановлены мгновенно.
Сертификаты выданы в апреле 2025 года, шесть для TLS (DV, OV, EV по два поколения) и два для подписи кода, все кросс-подписаны корнем Sectigo AAA Certificate Services в мае 2025. 17 октября исследователь сообщил Apple, Google, Microsoft, Mozilla и eMudhra; Chrome и Firefox заблокировали их в тот же вечер, 20 октября Mozilla объявила публично и удалила корень eMudhra, Chrome подтвердил удаление в Root Store v43. Структурно сертификаты выглядели корректно — публичный ключ от d = 4 является валидной точкой кривой, и обнаружить проблему можно только перебором.
Проблема не локализуется: устройства с замороженной прошивкой — роутеры, принтеры, телевизоры — будут доверять этим сертификатам до июля 2039 года. По версии eMudhra, причиной стал баг в скрипте церемонии, создавший слабую пару ключей на HSM, а человеческая ошибка привела к использованию не тех ключей в CSR. Восстановить приватные ключи удалось даже одним запросом к ИИ-агенту.