todo/nuc/gost-tls.md
loop-uh 08b4491545
Some checks failed
Published content check / validate (push) Failing after 3s
Завершить переезд базы знаний на Forgejo
Обновить правила репозитория и подписи исходников в 99 заметках, не затрагивая пользовательские незакоммиченные файлы. Сделать Forgejo Actions содержательным: проверять опубликованный commit, а не пустое рабочее дерево после checkout.
2026-08-07 08:27:28 +03:00

14 KiB
Raw Permalink Blame History

date tags aliases link
2026-08-04
mincifry
nuc
tls
certificates
gost
cryptography
ГОСТ-TLS что это
КриптоПро и сертификаты Минцифры
Кузнечик Магма Стрибог в HTTPS
Сертификат с шифрованием по ГОСТ
https://digital.gov.ru/activity/kiberbezopasnost/sertifikaty-bezopasnosti

🧬 ГОСТ-TLS и КриптоПро: чем «вариант с шифрованием по ГОСТ» глубже обычного корня НУЦ

[!info] О чём заметка У НУЦ (Национального удостоверяющего центра Минцифры) есть два вида TLS-сертификатов: обычный — на международной криптографии, просто от не признанного мировыми браузерами корня, — и «вариант с шифрованием по ГОСТ» (по официальной странице Минцифры, доступен на Госуслугах с 2025 года). Здесь разобрано, что такое ГОСТ-TLS технически, почему обычный браузер его не открывает даже с установленным корнем, какое ПО для него требуется и почему это более глубокий уровень зависимости, чем сам по себе государственный корень. Общий контекст — в nuc/00-overview.

TL;DR

  • Обычный сертификат НУЦ — та же криптография, что во всём мире (RSA/ECDSA, AES): проблема только в доверии к издателю. ГОСТ-сертификат меняет и саму криптографию: подпись ГОСТ Р 34.10-2012, хэш «Стрибог», шифры «Кузнечик»/«Магма».
  • Chrome и Firefox таких алгоритмов не знают в принципе: сайт с чисто ГОСТ-TLS у них не откроется даже с установленным корнем НУЦ — браузер и сервер не сойдутся в алгоритмах на рукопожатии.
  • Для ГОСТ-TLS нужен отечественный стек: криптопровайдер КриптоПро CSP (проприетарный, сертифицирован ФСБ) плюс браузер с его поддержкой — Chromium-Gost (сборка от КриптоПро) или «Яндекс Браузер» с установленным КриптоПро CSP.
  • К ГОСТ-алгоритмам есть публичные криптографические вопросы: в S-блоке «Кузнечика» и «Стрибога» найдена скрытая структура (работы Лео Перрена, 20162019), а ISO после этого не приняла эти алгоритмы в международные стандарты.
  • Итог: обычный корень НУЦ — «доверься нашему нотариусу»; ГОСТ-TLS — «пользуйся нашим нотариусом, нашими шифрами и нашим закрытым ПО». Это и есть строительный блок полностью автономного HTTPS для сценария изоляции рунета.

Два вида сертификатов НУЦ — разница принципиальная

Обычные сертификаты НУЦ, которые с марта 2022 раздают юрлицам через Госуслуги, устроены как любой западный TLS-сертификат: те же алгоритмы подписи и шифрования, тот же формат. Их единственное отличие — издатель, которому мировые браузеры не доверяют; отсюда вся история с nuc/check-remove и её nuc/nuc-root-mitm-threat-model.

ГОСТ-вариант — другая история. Это 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 живёт в ведомственном сегменте — личные кабинеты ФНС, госзакупки, электронная отчётность, — куда без этого стека просто не попасть.

[!note] «Открытый браузер» поверх закрытой криптографии Исходники Chromium-Gost опубликованы, но криптографические операции выполняет не браузер, а КриптоПро CSP — закрытый код, проверяемый только государственным сертификационным процессом. Пользователь ГОСТ-TLS доверяет не открытому проекту, а связке «открытая обёртка + закрытое ядро».

Вопросы к самим алгоритмам

К «Кузнечику» и «Стрибогу» есть претензии не только политические. Оба стандарта используют один и тот же S-блок (таблицу подстановки) «Пи», происхождение которой разработчики объясняли случайным выбором. Французский криптограф Лео Перрен с соавторами показал (серия работ 20162019), что эта таблица обладает скрытой алгебраической структурой (так называемый TKlog), вероятность случайного возникновения которой ничтожна, — то есть S-блок был сгенерирован не так, как заявлялось. Наличие скрытой структуры — не доказанный бэкдор, но это ровно тот тип находки, после которого доверие к «случайным» константам рушится: на фоне этих работ ISO в начале 2020-х отклонила включение «Кузнечика» и «Стрибога» в международные стандарты. Российские регуляторы алгоритмы при этом не отозвали и продолжают требовать их в госсекторе.

[!warning] Что это значит практически Пользуясь ГОСТ-TLS, ты работаешь с шифрами, у которых есть публично задокументированная необъяснённая структура в ключевом компоненте, с реализацией в закрытом коде и с доверием, замкнутым на национальный сертификационный процесс. Для отчётности юрлица в ФНС это неизбежная данность; переносить такой стек на личное устройство и личный трафик — уже добровольный выбор, и лучше делать его в nuc/safe-usage (отдельная виртуалка или устройство), а не в основной системе — тем более что КриптоПро CSP встраивается в систему глубоко и удаляется хуже, чем nuc/check-remove.

Зачем это государству: полный стек для автономного HTTPS

Обычный корень НУЦ всё ещё зависит от мировой экосистемы: алгоритмы международные, реализации — OpenSSL и браузерные, совместимость с любым софтом. ГОСТ-TLS замыкает цепочку целиком внутри страны: свой УЦ, свои алгоритмы, свой сертифицированный криптопровайдер, свои браузеры. В сценарии жёсткой изоляции рунета (пятый сценарий в nuc/mincifry-nuc-certs-danger-june-2026#Пять сценариев ответа российских властей) именно такой стек позволяет строить «HTTPS без Запада» — и расширение ГОСТ-варианта с ведомственных систем на публичные сервисы было бы заметным маркером движения в эту сторону. На август 2026 обязательного ГОСТ-TLS для обычных публичных сайтов нет; это прогнозный ориентир, а не свершившийся факт.

📚 См. также


[!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: исходник этой заметки · весь репозиторий.