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

Контрольные примеры и проверка ГОСТ после обновлений

Эта статья описывает воспроизводимый приёмочный набор для НАЙС.ОС. Результаты испытаний можно хранить в собственном эксплуатационном журнале без секретов и содержимого закрытых ключей.

Проверка A: алгоритмы доступны

openssl engine -t -c gost
openssl list -digest-algorithms | grep -Ei 'gost|streebog'
openssl list -cipher-algorithms | grep -Ei 'magma|kuznyechik|gost'

Проверка B: генерация ключей и подпись

umask 077
mkdir -p ~/gost-lab/acceptance && cd ~/gost-lab/acceptance
printf 'acceptance\n' > test.txt
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:TCA -out key256.pem
openssl pkey -in key256.pem -pubout -out pub256.pem
openssl dgst -md_gost12_256 -sign key256.pem -out test.sig test.txt
openssl dgst -md_gost12_256 -verify pub256.pem -signature test.sig test.txt

Проверка C: отрицательный тест

cp test.txt changed.txt
printf '!' >> changed.txt
if openssl dgst -md_gost12_256 -verify pub256.pem \
    -signature test.sig changed.txt; then
  echo 'ОШИБКА: подмена не обнаружена'
  exit 1
else
  echo 'OK: изменение содержимого обнаружено'
fi

Проверка D: 512-битный профиль

openssl genpkey -algorithm gost2012_512 -pkeyopt paramset:A -out key512.pem
openssl pkey -in key512.pem -pubout -out pub512.pem
openssl dgst -md_gost12_512 -sign key512.pem -out test512.sig test.txt
openssl dgst -md_gost12_512 -verify pub512.pem -signature test512.sig test.txt

Проверка E: сертификат и ключ

Создайте сертификат по инструкции PKI, затем сравните открытые ключи и выполните openssl verify с известным доверенным корнем.

Проверка F: PFX

Создайте PFX интерактивно по инструкции PKCS#12 и повторно прочитайте его содержимое командой openssl pkcs12 -info -noout. Для совместимости с КриптоПро используйте отдельный тест обмена между двумя системами.

Что сохранить в журнале испытаний

Поле Что записывать
Версия среды openssl version -a, идентификатор сборки НАЙС.ОС
Конфигурация Использованный профиль OPENSSL_CONF без секретов
Операция Генерация, подпись, CSR, PFX, TLS
Профиль Алгоритм, paramset, OID, формат
Результат Код завершения, понятный ожидаемый вывод
Отрицательный тест Действительно ли обнаруживается подмена
Совместимость Приложение-получатель и результат импорта

Не прикладывайте к отчёту закрытые ключи, секретные пароли и полный дамп приватных контейнеров.