🧬 ГОСТ-TLS и КриптоПро: чем «вариант с шифрованием по ГОСТ» глубже обычного корня НУЦ
О чём заметка
У НУЦ (Национального удостоверяющего центра Минцифры) есть два вида TLS-сертификатов: обычный — на международной криптографии, просто от не признанного мировыми браузерами корня, — и «вариант с шифрованием по ГОСТ» (по официальной странице Минцифры, доступен на Госуслугах с 2025 года). Здесь разобрано, что такое ГОСТ-TLS технически, почему обычный браузер его не открывает даже с установленным корнем, какое ПО для него требуется и почему это более глубокий уровень зависимости, чем сам по себе государственный корень. Общий контекст — в обзоре раздела.
TL;DR
- Обычный сертификат НУЦ — та же криптография, что во всём мире (RSA/ECDSA, AES): проблема только в доверии к издателю. ГОСТ-сертификат меняет и саму криптографию: подпись ГОСТ Р 34.10-2012, хэш «Стрибог», шифры «Кузнечик»/«Магма».
- Chrome и Firefox таких алгоритмов не знают в принципе: сайт с чисто ГОСТ-TLS у них не откроется даже с установленным корнем НУЦ — браузер и сервер не сойдутся в алгоритмах на рукопожатии.
- Для ГОСТ-TLS нужен отечественный стек: криптопровайдер КриптоПро CSP (проприетарный, сертифицирован ФСБ) плюс браузер с его поддержкой — Chromium-Gost (сборка от КриптоПро) или «Яндекс Браузер» с установленным КриптоПро CSP.
- К ГОСТ-алгоритмам есть публичные криптографические вопросы: в S-блоке «Кузнечика» и «Стрибога» найдена скрытая структура (работы Лео Перрена, 2016–2019), а ISO после этого не приняла эти алгоритмы в международные стандарты.
- Итог: обычный корень НУЦ — «доверься нашему нотариусу»; ГОСТ-TLS — «пользуйся нашим нотариусом, нашими шифрами и нашим закрытым ПО». Это и есть строительный блок полностью автономного HTTPS для сценария изоляции рунета.
Два вида сертификатов НУЦ — разница принципиальная
Обычные сертификаты НУЦ, которые с марта 2022 раздают юрлицам через Госуслуги, устроены как любой западный TLS-сертификат: те же алгоритмы подписи и шифрования, тот же формат. Их единственное отличие — издатель, которому мировые браузеры не доверяют; отсюда вся история с ручной установкой корня и её рисками перехвата.
ГОСТ-вариант — другая история. Это TLS, в котором заменена сама криптографическая начинка на российские государственные стандарты: подпись по ГОСТ Р 34.10-2012, хэш-функция «Стрибог» (ГОСТ Р 34.11-2012), симметричные шифры «Кузнечик» и «Магма» (ГОСТ Р 34.12-2015). Для TLS определены отдельные ГОСТ-шифронаборы (cipher suites), и сервер с таким сертификатом договаривается с клиентом именно о них.
Проще говоря: обычный сертификат НУЦ — это привычный замок, на который у государства свой ключ-мастер; ГОСТ-TLS — это замок другой конструкции, к которому подходят только отечественные ключи и отечественные отмычки.
Почему обычный браузер это не открывает — и при чём тут КриптоПро
TLS-соединение начинается с рукопожатия: клиент присылает список поддерживаемых шифронаборов, сервер выбирает общий. У Chrome и Firefox ГОСТ-наборов в списке нет вообще — поэтому с сервером «только ГОСТ» соединение обрывается на первом же шаге, и установка корня НУЦ здесь ничего не меняет: корень решает вопрос доверия, а не набора алгоритмов.
Чтобы ГОСТ-TLS заработал, в системе нужен криптопровайдер, реализующий ГОСТ-алгоритмы, — на практике это почти всегда КриптоПро CSP, проприетарный коммерческий продукт, сертифицированный ФСБ. Поверх него нужен браузер, умеющий отдавать TLS-рукопожатие этому провайдеру: Chromium-Gost — открытая сборка Chromium от самой КриптоПро — либо «Яндекс Браузер», который поддерживает ГОСТ-TLS при установленном КриптоПро CSP. Исторически ГОСТ-TLS живёт в ведомственном сегменте — личные кабинеты ФНС, госзакупки, электронная отчётность, — куда без этого стека просто не попасть.
«Открытый браузер» поверх закрытой криптографии
Исходники Chromium-Gost опубликованы, но криптографические операции выполняет не браузер, а КриптоПро CSP — закрытый код, проверяемый только государственным сертификационным процессом. Пользователь ГОСТ-TLS доверяет не открытому проекту, а связке «открытая обёртка + закрытое ядро».
Вопросы к самим алгоритмам
К «Кузнечику» и «Стрибогу» есть претензии не только политические. Оба стандарта используют один и тот же S-блок (таблицу подстановки) «Пи», происхождение которой разработчики объясняли случайным выбором. Французский криптограф Лео Перрен с соавторами показал (серия работ 2016–2019), что эта таблица обладает скрытой алгебраической структурой (так называемый TKlog), вероятность случайного возникновения которой ничтожна, — то есть S-блок был сгенерирован не так, как заявлялось. Наличие скрытой структуры — не доказанный бэкдор, но это ровно тот тип находки, после которого доверие к «случайным» константам рушится: на фоне этих работ ISO в начале 2020-х отклонила включение «Кузнечика» и «Стрибога» в международные стандарты. Российские регуляторы алгоритмы при этом не отозвали и продолжают требовать их в госсекторе.
Что это значит практически
Пользуясь ГОСТ-TLS, ты работаешь с шифрами, у которых есть публично задокументированная необъяснённая структура в ключевом компоненте, с реализацией в закрытом коде и с доверием, замкнутым на национальный сертификационный процесс. Для отчётности юрлица в ФНС это неизбежная данность; переносить такой стек на личное устройство и личный трафик — уже добровольный выбор, и лучше делать его в изолированной среде (отдельная виртуалка или устройство), а не в основной системе — тем более что КриптоПро CSP встраивается в систему глубоко и удаляется хуже, чем обычный корень.
Зачем это государству: полный стек для автономного HTTPS
Обычный корень НУЦ всё ещё зависит от мировой экосистемы: алгоритмы международные, реализации — OpenSSL и браузерные, совместимость с любым софтом. ГОСТ-TLS замыкает цепочку целиком внутри страны: свой УЦ, свои алгоритмы, свой сертифицированный криптопровайдер, свои браузеры. В сценарии жёсткой изоляции рунета (пятый сценарий в большой статье о сертификатах Минцифры) именно такой стек позволяет строить «HTTPS без Запада» — и расширение ГОСТ-варианта с ведомственных систем на публичные сервисы было бы заметным маркером движения в эту сторону. На август 2026 обязательного ГОСТ-TLS для обычных публичных сайтов нет; это прогнозный ориентир, а не свершившийся факт.
📚 См. также
- Обзор раздела: сертификаты Минцифры (НУЦ) — что такое НУЦ и почему его корень не признан браузерами
- Где доверие НУЦ уже встроено — «Яндекс Браузер» как носитель и корня, и ГОСТ-поддержки
- Изоляция доверия — как работать с гос-стеком, не отдавая ему основную систему
- Модель угроз корня НУЦ — риски перехвата, общие для обоих видов сертификатов
- 🔗 Минцифры: о сертификатах безопасности — официальная страница, включая ГОСТ-вариант
- 🔗 Chromium-Gost на GitHub — открытая сборка Chromium с поддержкой ГОСТ-TLS через КриптоПро CSP
- 🔗 Léo Perrin, «Partitions in the S-Box of Streebog and Kuznyechik» — работа о скрытой структуре S-блока (IACR ePrint 2019/092)
🤖 Эти статьи открыты — можно обучать на них ИИ
При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: исходник этой заметки · весь репозиторий.