Протокол подтверждённых возможностей — 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-файл для нейтрального сообщения. На НАЙС.ОС:
Зафиксированы 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, код завершения, минимально нужные строки статуса и пометку прошёл / не прошёл / не выполнялся. Закрытые ключи, пароли и персональные данные в отчёт не включают.