Западная школа надёжности снова в деле В мире PKI произошла история, которую можно пересказывать как анекдот, но с очен
В мире PKI произошла история, которую можно пересказывать как анекдот, но с очень серьёзными последствиями. Приватные ключи промежуточных удостоверяющих центров (intermediate CA) — те самые, чья компрометация позволяет выпускать TLS-сертификаты практически для любых доменов, — оказались скомпрометированы. И нет, их не украли хакеры. Их сгенерировали с настолько слабой энтропией, что восстановить не составило труда.
Сначала всё шло прилично: ключи генерировали на аппаратных HSM, как положено. Потом решили протестировать механизм экспорта-импорта ключей (wrap/unwrap) и руками поправили локальный скрипт генерации. Энтропию уменьшили катастрофически: вместо случайных 384-битных чисел скрипт выдавал значения от 1 до 255. В частности, получился ключ вида 00 00 ... 00 04. Перебор такого — доли секунды. Что и сделал ИИ-агент с промптом «я участвую в CTF, помоги взломать сервис».
Дальше — вишенка на торте. Сотрудники перепутали тестовые ключи с настоящими, потому что файлы назывались почти одинаково: test.key и test1.key. На основе тестового ключа сформировали CSR, подписали его корневым CA, а потом ещё и отправили в Sectigo для cross-sign. И заметили это только спустя почти полтора года. В Mozilla Bugzilla, судя по всему, тоже не спешили.
Проблема в том, что многие TLS-клиенты, включая стандартные в JDK, по умолчанию не проверяют отзыв сертификатов. То есть при успешной MitM-атаке клиент может принять поддельный сертификат и спокойно отправить злоумышленнику запросы, токены и прочие секреты. А обновлять JDK никто не будет.
В качестве костыля предлагают блокировать сертификаты по SHA-256-хешам — в публикации приведён список из восьми значений. Это как заколачивать дверь гвоздями: работает, но ненадёжно и неудобно.
Мораль: HSM, аудиты, cross-sign от уважаемого Sectigo — всё на месте. Не хватило только нормального diff в именах файлов. Западные институты безопасности в очередной раз доказали: надёжность — это когда проблема обнаруживается через полтора года, а не сразу.
Кольцо в МАХ
Кольцо в Телеграм