
Подписанная научная статья и живая демонстрация восстановления ключа для ветки NOSSL клиента InfiniteWP, которая выводит свой ключ подписи из 31 бита секрета поверх публичного префикса.
knell
Отметка времени записи (archive.org): https://archive.org/details/knell-thirty-one-bits
InfiniteWP Client 1.13.10 — плагин управления WordPress, установленный примерно на 200 000 сайтов — имеет вторую ветку аутентификации, NOSSL, которую панель подключения выбирает, задавая один параметр запроса, даже на хостах, которые могли бы использовать RSA. После выбора ветка становится постоянной, а её ключ подписи генерируется как MD5 от публичного ключа панели, объединённого с единственным результатом rand(): не более 2^31 вариантов секрета поверх префикса, который может знать кто угодно. Подпись покрывает только действие и ID сообщения; параметры никогда не подписываются, а перехваченные запросы воспроизводятся с изменёнными параметрами. Подтверждено вживую на нашем собственном экземпляре: из одного перехваченного запроса и публичного ключа панели ключ был восстановлен офлайн за 291,9 секунды, и поддельная команда, изменяющая состояние, была принята — неограниченная, постоянная подделка канала управления сайтом. В статье не утверждается, что все 200 000 установок подключены через NOSSL; долю подключённых установок внешне измерить невозможно. Это первая известная публикация данной конструкции.
gpg --import knell-public.asc
gpg --verify paper-infinitewp-FINAL-2026-11-04.md.asc
Ожидается: Good signature from "knell", ключ 133883AB9F6EDE5B9BA6B82E27BEDAF0CE152F25
Отпечаток: 1338 83AB 9F6E DE5B 9BA6 B82E 27BE DAF0 CE15 2F25