Перейти к содержанию

OpenSSL с ГОСТ в НАЙС.ОС

OpenSSL — основной интерфейс работы с ГОСТ-криптографией в НАЙС.ОС. Через него создают ключи, выпускают запросы на сертификаты, подписывают файлы, проверяют подписи, шифруют данные и работают с криптографическими контейнерами.

Быстрый старт: подпись за несколько команд

Выполняйте в отдельном учебном каталоге:

umask 077
mkdir -p ~/gost-lab/first-signature
cd ~/gost-lab/first-signature
printf 'НАЙС.ОС: проверка ГОСТ\n' > message.txt

openssl genpkey -algorithm gost2012_256 \
  -pkeyopt paramset:TCA -out private.pem
openssl pkey -in private.pem -pubout -out public.pem

openssl dgst -md_gost12_256 -sign private.pem \
  -out message.sig message.txt
openssl dgst -md_gost12_256 -verify public.pem \
  -signature message.sig message.txt

Ожидаемый итог проверки — Verified OK. Теперь убедитесь, что изменение сообщения нарушает подпись:

cp message.txt modified.txt
printf 'изменение\n' >> modified.txt
openssl dgst -md_gost12_256 -verify public.pem \
  -signature message.sig modified.txt

На изменённых данных проверка завершается ошибкой: это и есть смысл защиты целостности.

Навигация по руководствам

Задача Статья
Проверка и профили OpenSSL Настройка
Принципы ENGINE и Provider Engine/Provider
Наборы параметров Paramset, OID
Полный жизненный цикл ключа Ключи
PEM, DER, PKCS#8 Форматы
Стрибог, gostsum, MAC Хэши и MAC
Подпись и отрицательные тесты Подпись
CSR, X.509, самоподписанные сертификаты PKI
SAN, KeyUsage, CA Расширения сертификатов
PFX/PKCS#12 Контейнеры
КриптоПро CSP и собственные OID Совместимость
Кузнечик и Магма Шифрование
TLS-клиент и тестовый сервер TLS
CMS, S/MIME CMS
Команды конфигурации ENGINE CRYPT_PARAMS и другие
Хранение и защита закрытых ключей Защита ключей
Вызовы из приложений EVP
Ошибки и диагностика Устранение неполадок
Сквозные лабораторные испытания Контрольные примеры

Соглашения в примерах

  • *.key или private.pem — закрытый ключ, хранится с правами 0600.
  • *.pub или public.pem — открытый ключ, может распространяться.
  • *.csr — запрос на выпуск сертификата, не является сертификатом.
  • *.crt/*.pem — сертификат или цепочка X.509.
  • *.p12/*.pfx — контейнер с ключами и сертификатами, часто защищённый паролем.
  • *.sig — бинарная электронная подпись; не является сертификатом.

Используйте параметры, согласованные с принимающей стороной: ГОСТ-совместимость определяется алгоритмом, кривой, OID, кодировкой и форматом контейнера вместе.

Разработчики upstream OpenSSL и gost-engine выпускают обновления, поэтому доступные операции расширяются по мере обновления пакетов НАЙС.ОС. Для воспроизводимых процедур фиксируйте название команды, параметры, тестовый файл и ожидаемый результат, а не только имя алгоритма.

Последовательное обучение

Чтобы освоить криптографическую подсистему НАЙС.ОС не по отдельным командам, а на единой инфраструктуре ключей и сертификатов, пройдите практический курс ГОСТ: ключи → подпись → корневой УЦ → промежуточный УЦ → серверный/клиентский сертификаты → PFX → КриптоПро → ротация.