Программа проверки совместимости КриптоПро CSP и НАЙС.ОС¶
Цель — подтвердить отдельные функции, а не сделать непроверенное заявление о полной замене КриптоПро. Для уже выполненных проверок используются КриптоПро CSP/CryptCP 5.0 на macOS 12.7.6 Intel и GPGSM NiceSOFT на НАЙС.ОС. Испытания шифрования необходимо проводить с отдельными тестовыми ключами, не привлекая действующую квалифицированную подпись на Рутокене.
Минимальная двусторонняя матрица¶
| № | Источник | Получатель | Что проверяем | Состояние |
|---|---|---|---|---|
| S1 | КриптоПро | НАЙС.ОС | Импорт X.509 ГОСТ-2012/256 | Успешно |
| S2 | КриптоПро | НАЙС.ОС | Detached CMS/Стрибог-256, проверка | Успешно |
| S3 | Подмена файла | НАЙС.ОС | BADSIG, ненулевой код |
Успешно |
| S4 | GPGSM + Dirmngr | НАЙС.ОС | Нормальная проверка доверия/CRL | Успешно в текущем состоянии, требует чистого кэша |
| K1 | OpenSSL на НАЙС.ОС | GPGSM НАЙС.ОС | Обычный AES-защищённый P12 с ГОСТ-ключом | Успешно |
| E1 | GPGSM | GPGSM | Шифрование/расшифрование legacy ГОСТ CMS | Не выполнялось |
| E2 | КриптоПро | GPGSM | CMS EnvelopedData с ГОСТ 28147-89 | Не выполнялось |
| E3 | GPGSM | КриптоПро | Обратное шифрование/расшифрование | Не выполнялось |
| P1 | GPGSM | OpenSSL | ГОСТ-PFX RFC 9548 export/import | Не выполнялось |
| P2 | КриптоПро | GPGSM | Специализированный PFX, созданный CSP | Не выполнялось |
| S5 | GPGSM | КриптоПро | Подпись ГОСТ-2012/256 в обратную сторону | Не выполнялось |
| C1 | Два клиента | Различные УЦ | ГОСТ-2012/512, архивные 2001-профили | Не выполнялось |
Ближайшее испытание E1: локальная CMS¶
Пара ГОСТ-2012/256 уже создана OpenSSL и импортирована через AES-защищённый P12 в /root/gost-cms-test/lab/gnupg. Используйте её как отдельный учебный закрытый ключ. Не заменяйте сертификат случайным из списка. Получите его SHA-1 отпечаток:
Затем выполните команды из руководства по CMS-шифрованию. Необходимо сохранить фактические коды возврата, наличие выходного файла и хэши. Ошибка должна фиксироваться целиком как провал/не реализовано в этой конфигурации, а не замалчиваться. После локальной проверки переходите к E2/E3.
Испытание E2: КриптоПро → НАЙС.ОС¶
- Передайте Mac только открытый тестовый сертификат получателя НАЙС.ОС
niceos-lab.crt.pem(при необходимости преобразуйте в DER командойopenssl x509 -in ... -outform DER -out ...). - На Mac используйте CryptCP или «Инструменты КриптоПро», выбрав шифрование на этот сертификат и исторический профиль содержимого ГОСТ 28147-89 (
1.2.643.2.2.21), если CSP его поддерживает. - Зафиксируйте точные параметры
EnvelopedDataи передайте на НАЙС.ОС только созданный зашифрованный CMS. - Расшифруйте через GPGSM в ранее созданном изолированном профиле; сравните байты/хэши с изначальным тестовым документом. Убедитесь в корректном отказе, если секретный ключ отсутствует.
Это испытание не следует считать пройденным из-за одного успешного openssl cms -decrypt: такой опыт доказывает работу OpenSSL, а наша цель — нативный GPGSM.
Испытание E3: НАЙС.ОС → КриптоПро¶
Создайте самостоятельную лабораторную пару получателя на Mac и экспортируйте только открытый сертификат. Импортируйте его в изолированный GPGSM, зашифруйте тестовый файл на него, перенесите .p7e на Mac и расшифруйте КриптоПро. Сравните данные и OID. Для работы с отдельными сертификатами избегайте PIN действующей КЭП и не экспортируйте закрытые рабочие ключи.
Обязательные отрицательные тесты¶
- Подмена одного байта подписи или исходного сообщения → ошибка.
- Изменение MAC переноса ключа, неправильный UKM, неизвестный OID/кривая → отказ до выдачи открытого содержимого.
- Неподходящий сертификат получателя или отсутствующий приватный ключ → отказ без частичного вывода.
- Неправильный пароль PFX, повреждённый MAC/OMAC, некорректный PRF → отказ; закрытый ключ не появляется в хранилище.
- Истёкший/отозванный сертификат либо недоверенный УЦ → отдельная ошибка проверки доверия, даже если сама подпись математически корректна.
Как оформить окончательный отчёт¶
На каждое испытание: идентификатор, дату, версии/сборки, серийный номер лабораторного сертификата, алгоритм открытого ключа и кривую, формат контейнера, OID, хэши исходного и восстановленного несекретного файла, код завершения, успешность доверия отдельно от математики, пометку о тестах отказа и архив обезличенных логов. Никогда не архивируйте продукционные закрытые ключи и PIN-коды в доказательный комплект.
Для статуса «совместим с КриптоПро» публично указывайте конкретные проверенные алгоритмы, направления и версии. Нельзя превращать успешные S1–S4 в утверждение о полном покрытии E1–E3 и P1–P2.