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

Протокол подтверждённых возможностей — 24 октября 2026 года

Это изложение результатов фактического лабораторного обмена между КриптоПро CSP 5.0 на macOS 12.7.6 (x86_64) и НАЙС.ОС niceos-gost, зафиксированных в предоставленных пользователем выводах терминала. Значения фамилий, адресов, номеров личных сертификатов намеренно не включены.

Состав испытанного стека

Программа Наблюдавшаяся версия
OpenSSL 3.5.6 (Library 3.5.6), GOST Engine доступен
GPGSM gpgsm (GnuPG) 2.4.8.1-gost
RPM GnuPG gnupg-2.4.8-8.niceosc5.x86_64
RPM libksba libksba-1.7.0-5.niceosc5.x86_64
RPM libgcrypt libgcrypt-1.11.1-1.niceosc5.x86_64
КриптоПро CSP/CryptCP 5.0, macOS Intel

Ограничение доказательства: строка GPGSM сообщает модифицированную сборку, но сама не доказывает побайтовое соответствие установленного RPM приложенному патчу r12. Для этого нужны SRPM, журнал сборки и хэш установленного бинарного пакета.

Испытание S-01: сертификат КриптоПро

Сертификат X.509 с алгоритмом открытого ключа ГОСТ Р 34.10-2012/256 импортирован через gpgsm --import. GPGSM сообщил 1 обработанный и 1 импортированный сертификат. OpenSSL ASN.1 показал OID открытого ключа 2012/256, хэш 2012/256 и историческое имя набора параметров CryptoPro-XchA. Представление GOST2001-CryptoPro-A в GPGSM не равносильно утверждению, что сертификат перешёл на алгоритм ГОСТ-2001: это обозначение семейства параметров.

Испытание S-02: правильная подпись CMS

КриптоПро создал отсоединённый CMS-файл для нейтрального сообщения. На НАЙС.ОС:

cd /root/gost-cms-test
gpgsm --status-fd 2 --verify test.txt.sgn test.txt

Зафиксированы GOODSIG, VALIDSIG. При последующих обычных запусках без отключения CRL и политик — TRUST_FULLY, код 0. Это подтверждает практическую криптографическую проверку этого варианта CMS SignedData и успешный проход штатного пути доверия в текущем состоянии кэша/настроек.

Испытание S-03: отказ при изменении текста

После добавления строки к исходному сообщению GPGSM показал BADSIG, код 2. Это обязательная отрицательная проверка: корректная подпись одного файла не должна подходить к другому.

Испытание S-04: доступность CRL

Список отзыва ФНС получен по общедоступному URL, OpenSSL распознал DER CRL; поле lastUpdate — 24.10.2026, nextUpdate — 31.10.2026. Первичная ошибка Синтаксическая ошибка в URI при проверке цепочки позже не воспроизвелась. Диспетчер Dirmngr использовал локальный кэш CRL. Причина ошибки не найдена; актуальность следующих списков отзыва и поведение на чистом кэше ещё надо проверить.

Испытание K-01: выпуск лабораторной пары НАЙС.ОС

openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:XA \
  -out niceos-lab.key.pem
openssl req -new -x509 -key niceos-lab.key.pem -days 30 \
  -subj '/C=RU/O=NiceOS Lab/CN=NiceOS GOST CMS Test' \
  -addext 'keyUsage=critical,keyAgreement,keyEncipherment' \
  -addext 'extendedKeyUsage=emailProtection' \
  -out niceos-lab.crt.pem

Команды выполнены успешно. Сертификат содержит 2012/256, Key Agreement/Key Encipherment, EKU E-mail Protection. Самоподпись не создаёт доверия к тестовому сертификату.

Испытание K-02: перенос ключа из OpenSSL в GPGSM

openssl pkcs12 -export \
  -inkey niceos-lab.key.pem -in niceos-lab.crt.pem \
  -keypbe AES-256-CBC -certpbe AES-256-CBC -macalg sha256 \
  -out niceos-lab.p12

gpgsm --homedir /root/gost-cms-test/lab/gnupg \
  --import niceos-lab.p12

gpgsm --homedir /root/gost-cms-test/lab/gnupg \
  --list-secret-keys

Импорт завершился сообщением прочитано секретных ключей: 1, импортировано секретных ключей: 1; сертификат присутствует в списке секретных ключей. Это проверка PKCS#12 с ГОСТ-ключом и AES/HMAC-SHA256 для защиты контейнера, а не ГОСТ-PFX RFC 9548. Дальше нужен сквозной decrypt.

Что ещё не закрыто испытаниями

  • CMS EnvelopedData КриптоПро → НАЙС.ОС и НАЙС.ОС → КриптоПро.
  • Локальное gpgsm --encrypt → gpgsm --decrypt на лабораторном ключе.
  • ГОСТ-2012/512 для реального КриптоПро, отдельные 2001-профили.
  • PFX с magma/kuznyechik-ctr-acpkm и -omac и паролем Unicode, сквозной импорт/экспорт и отрицательные тесты на установленной системе.
  • На «чистом» кэше проверка полной цепочки и отзывов; воспроизводимость поведения после обновления CRL.
  • Смарт-карты/Рутокен в НАЙС.ОС: работа агента с токеном не доказана.
  • CAdES-XLong/LT/LTA, произвольные CMS-контейнеры и современные KARI/KExp15.

Каждая новая запись протокола должна содержать дату, версии RPM, ОS/архитектуру, входные и выходные SHA256, код завершения, минимально нужные строки статуса и пометку прошёл / не прошёл / не выполнялся. Закрытые ключи, пароли и персональные данные в отчёт не включают.