Работа с ГОСТ TLS в реальных проектах: костыли, решения и опыт
2026
Статья эксперта по тестированию на проникновение компании Innostage Максима Теплых посвящена практическим проблемам работы с протоколом ГОСТ TLS и способам их решения в задачах анализа защищённости и пентеста. Автор отмечает, что, несмотря на широкое распространение технологии (госсайты, мобильные приложения, системы КИИ), для разработчиков и тестировщиков она создаёт серьёзные трудности из-за отсутствия готовых инструментов отладки, аналогичных Burp Suite или OWASP ZAP.
ГОСТ TLS все чаще встречается в наших проектах, и для работы с ним регулярно приходится искать обходные решения. При этом крупные вендоры, занимающиеся отечественной криптографии, не предлагают базовых рекомендаций и подходящих решений для отладки. Вопрос, как будет развиваться ситуация с появлением отечественных стандартов 5G, также использующих ГОСТ, остаётся открытым.
Проблема и существующие решения
Главная причина неработоспособности стандартных инструментов — не отсутствие поддержки криптографии (Bouncy Castle и OpenSSL умеют работать с ГОСТ-алгоритмами “Кузнечик” и “Стрибог”), а невозможность корректно обрабатывать и преобразовывать сертификаты ГОСТ (с иными OID, параметрами ключей и полями DN). Burp Suite и ZAP не могут генерировать самоподписанные копии для MITM-атак (ssl-split) из-за несоответствия структуры сертификатов. Простое решение — попросить доступ к стендам без ГОСТ — часто неприменимо, а использование браузеров с поддержкой ГОСТ через msspi (например, Chromium-Gost) неудобно и ограничено.
Предлагаемые “костыли”
Возможны четыре варианта организации работы через перехват трафика, основанные на передаче задачи шифрования/расшифровки внешнему инструменту, а стандартным прокси (Burp/ZAP) оставляя работу с plaintext-данными.
Вариант 0 (stunnel). Самый простой способ — использовать утилиту stunnel из состава КриптоПро CSP. Она создаёт туннель до целевого сайта с поддержкой ГОСТ TLS, открывая на локальном порту незашифрованный доступ. Минус — настройка под каждый сайт, неприменимость для мобильных приложений.
Вариант 1 (nginx + openssl engine). Базовый подход — сборка модуля gost-engine для OpenSSL и настройка nginx как reverse-прокси. Это решение не требует перенастройки под каждый сайт, работает с любыми портами и поддерживает HTTP/1.1 (и частично HTTP/2).
Вариант 2 (nginx + msspi). Используется бинарный патч для nginx от КриптоПро, позволяющий работать через msspi. Преимущество — поддержка TLS 1.3 и возможность сертификации. Недостатки — затраты на лицензии, ограничения на обновление веб-сервера.
Вариант 3 (собственная разработка). Для тех, кто готов разрабатывать свой инструмент, автор ссылается на реализации msspi для Go и библиотеку Bouncy Castle с поддержкой ГОСТ.
Преимущества подхода и выводы
Основное преимущество использования nginx + openssl — универсальность. Многие утилиты и библиотеки (Python requests, curl) после сборки с поддержкой ГОСТ также начинают работать корректно. В статье приведены примеры кода. Автор отмечает, что крупные вендоры не предлагают базовых рекомендаций и инструментов для отладки, а все описанные решения — это практические “костыли”, проверенные в реальных проектах. Вопрос остаётся открытым с учётом внедрения ГОСТ в стандарты 5G.
Это краткая аннотация статьи, полную версию читайте в первоисточнике.
Первоисточник: Хабр (блог Innostage), 2026
Эксперт: Максим Теплых, Innostage
