Some checks failed
Published content check / validate (push) Failing after 3s
Обновить правила репозитория и подписи исходников в 99 заметках, не затрагивая пользовательские незакоммиченные файлы. Сделать Forgejo Actions содержательным: проверять опубликованный commit, а не пустое рабочее дерево после checkout.
72 lines
14 KiB
Markdown
72 lines
14 KiB
Markdown
---
|
||
date: 2026-08-04
|
||
tags:
|
||
- mincifry
|
||
- nuc
|
||
- tls
|
||
- certificates
|
||
- gost
|
||
- cryptography
|
||
aliases:
|
||
- ГОСТ-TLS что это
|
||
- КриптоПро и сертификаты Минцифры
|
||
- Кузнечик Магма Стрибог в HTTPS
|
||
- Сертификат с шифрованием по ГОСТ
|
||
link: 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-блоке «Кузнечика» и «Стрибога» найдена скрытая структура (работы Лео Перрена, 2016–2019), а 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-блок (таблицу подстановки) «Пи», происхождение которой разработчики объясняли случайным выбором. Французский криптограф Лео Перрен с соавторами показал (серия работ 2016–2019), что эта таблица обладает скрытой алгебраической структурой (так называемый 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 для обычных публичных сайтов нет; это прогнозный ориентир, а не свершившийся факт.
|
||
|
||
## 📚 См. также
|
||
|
||
- [[nuc/00-overview|Обзор раздела: сертификаты Минцифры (НУЦ)]] — что такое НУЦ и почему его корень не признан браузерами
|
||
- [[nuc/embedded-trust|Где доверие НУЦ уже встроено]] — «Яндекс Браузер» как носитель и корня, и ГОСТ-поддержки
|
||
- [[nuc/safe-usage|Изоляция доверия]] — как работать с гос-стеком, не отдавая ему основную систему
|
||
- [[nuc/nuc-root-mitm-threat-model|Модель угроз корня НУЦ]] — риски перехвата, общие для обоих видов сертификатов
|
||
- 🔗 [Минцифры: о сертификатах безопасности](https://digital.gov.ru/activity/kiberbezopasnost/sertifikaty-bezopasnosti) — официальная страница, включая ГОСТ-вариант
|
||
- 🔗 [Chromium-Gost на GitHub](https://github.com/deemru/chromium-gost) — открытая сборка Chromium с поддержкой ГОСТ-TLS через КриптоПро CSP
|
||
- 🔗 [Léo Perrin, «Partitions in the S-Box of Streebog and Kuznyechik»](https://eprint.iacr.org/2019/092) — работа о скрытой структуре S-блока (IACR ePrint 2019/092)
|
||
|
||
---
|
||
|
||
> [!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ
|
||
> При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: [исходник этой заметки](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main/nuc/gost-tls.md) · [весь репозиторий](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main).
|