Старики-разбойники: как сломали rsa-ключи certificate authority из 1999 года
Помните Netscape Navigator? Браузер, на котором кто-то из нас впервые увидел интернет. Так вот, в его дистрибутиве 1999 года прятались корневые сертификаты удостоверяющих центров с 512-битными RSA-ключами. И вот в 2026 году кто-то их факторизовал. На обычном десктопе. За два дня.
Меня это зацепило не из-за практической угрозы — Netscape 4.51 не запускает даже мой ностальгирующий коллега. Зацепило другое: это напоминание о том, как выглядели «стандарты безопасности», когда SSL ещё был молодым и никто толком не понимал, какие ключи будут считаться достаточно длинными через тридцать лет.
Что за историю рассказывает мэттью макферрин
Автор статьи — Мэттью Макферрин — занимается криптографией и недавно увлёкся вопросом: насколько маленькие RSA-ключи можно факторизовать сегодня? RSA-факторинг — это разложение большого числа обратно на множители. Именно на сложности этой задачи держится безопасность RSA.
Современный Web PKI использует минимум 2048 бит, и это уже на грани того, что могут сломать большие организации с серьёзными ресурсами. А 1024-битные ключи депрекейтнули больше десяти лет назад, хотя я не слышал о публичных случаях их факторинга.
Но что насчёт совсем маленьких ключей?
Охота на старые корневые сертификаты
Корневые сертификаты CA встраиваются в дистрибутивы браузеров. Netscape делал это с 1994 года, Internet Explorer — чуть позже. Это была эпоха экспортных ограничений на криптографию, и стандартов толком не было.
Макферрин нашёл архивы Netscape и Internet Explorer на archive.org, скачал их и с помощью Claude Code извлёк все корневые сертификаты. Результат — веб-страница с древними корнями PKI.
Глядя на эту коллекцию, он обнаружил цель: Netscape 4.51 (март 1999) содержал 512-битные RSA-сертификаты от канадского CA E-Certify. Два корня: один для SSL, другой для S/MIME. Причём RSA-155 тоже факторизовали в 1999 году — значит, эти ключи уже тогда были на грани.
ФАКТОРИНГ RSA-512 НА ДЕСКТОПЕ
──────────────────────────────
1999: E-Certify выпускает 512-битные ключи
↓
2026: Макферрин берёт Ryzen 9 5950X
↓
├── RSA Gold Server (SSL) → 32 часа
└── RSA Gold Client (S/MIME) → 29 часов
Итого: ~3 дня на обычном десктопе
Как прошла факторизация
Инструмент — CADO-NFS, один из лучших открытых алгоритмов для факторизации больших чисел. Железо — Ryzen 9 5950X, топовый десктопный процессор 2020 года. Факторинг двух ключей занял 61 час суммарно.
Результат — приватные ключи E-Certify. С их помощью можно выпускать любые сертификаты от имени этого CA. Если бы кто-то получил их в 1999–2003 годах, он мог бы организовать атаку «человек посередине» на пользователей Netscape того времени.
Бонус: VeriSign Test CA из Internet Explorer 3.02 тоже с 512-битным ключом. Его факторизовали примерно за час на GPU-кластере ещё в своё время. Так что это был не первый случай, но он красиво иллюстрирует проблему.
Почему это важно, если netscape никто не использует
Здесь начинается самое интересное.
Во-первых, это археология доверия. PKI построена на идее, что корневые CA заслуживают доверия. Мы устанавливаем их сертификаты в систему и автоматически доверяем всему, что они подписывают. Но эти CA создавали люди, которые понятия не имели, что 512 бит станет смешным.
Во-вторых, принцип «завтра будет лучше» не всегда работает. Стандарты депрекейта ключей появились позже. Но что будет с нашими 2048-битными ключами через тридцать лет? Квантовые компьютеры уже на горизонте — алгоритм Шора может сломать RSA целиком.
В-третьих, это упражнение в реализации. Макферрин не просто поиграл с числами — он поднял тестовый сервер, работающий по старому TLS, чтобы продемонстрировать работоспособность скомпрометированных ключей. Забавно, что SSL Labs даёт этому сайту отличную оценку.
ЦЕПОЧКА ДОВЕРИЯ: ТОГДА И СЕЙЧАС
────────────────────────────────
1999 2026
┌─────────────┐ ┌─────────────┐
│ E-Certify │ │ СОВРЕМЕННЫЙ│
│ 512-бит RSA│ ──X──> │ Root CA │
│ «Доверяй │ сломано │ 2048+ RSA │
│ мне!» │ │ Аудит, │
└─────────────┘ │ политики... │
└─────────────┘
Идея та же. Разница в деталях.
Практический вывод
Меня не пугает факт компрометации E-Certify. Меня заставляет задуматься другое: мы до сих пор полагаемся на систему, которая требует слепого доверия к десяткам корневых CA по всему миру.
Когда Chrome или Firefox устанавливаются, в них встроены сотни корневых сертификатов от государственных и коммерческих CA. Любой из них может выпустить сертификат для вашего домена. Теоретически — даже без взлома ключей. На практике были случаи, когда CA делали это по запросу спецслужб или просто ошибались.
Факторинг RSA-512 из Netscape — это не уязвимость. Это иллюстрация того, как быстро вычислительная мощность делает «невозможное» тривиальным. Если вы администрируете инфраструктуру:
- Следите за депрекейтом RSA-2048 — он произойдёт раньше, чем кажется
- Переходите на эллиптические кривые (ECDSA, Ed25519) — они устойчивы к атаке Шора
- Мониторьте Certificate Transparency — это ваш ранний индикатор нелегитимных сертификатов
А Netscape 4.51 пусть остаётся в музеях. Там ему самое место.
Ссылки
- Оригинальная статья Мэттью Макферрина — первоисточник и детали эксперимента
- Репозиторий ancientroots на GitHub — архив древних корневых сертификатов
- CADO-NFS — открытый инструмент для факторизации больших чисел
- SSL Labs — сервис проверки TLS-конфигурации
Дмитрий Полухин — продуктовый дизайнер. Пишу про разработку, AI и дизайн интерфейсов. Обо мне, контакты и профили.