Подготовка безопасного лабораторного стенда¶
Для проверки ГОСТ-CMS достаточно двух машин: НАЙС.ОС Linux и macOS с КриптоПро CSP 5.0. Виртуальная машина с НАЙС.ОС тоже подходит, если криптографический стек установлен и доступен. Примеры предполагают выполнение команд от root на отдельной тестовой машине; для повседневной работы рекомендуются обычные пользователи и минимально необходимые права.
Разделите роли систем¶
| НАЙС.ОС | macOS + КриптоПро |
|---|---|
| GPGSM/libksba/libgcrypt | CryptCP или «Инструменты КриптоПро» |
| Создание отдельного лабораторного ГОСТ-ключа | Получение только открытого сертификата НАЙС.ОС |
| Чтение/подпись/шифрование CMS | Независимая проверка или расшифрование |
Локальное сравнение cmp, sha256sum |
Независимое сравнение cmp, shasum |
Не передавайте закрытые ключи в архиве обмена. Достаточно открытого сертификата и искусственного документа. Не подключайте к испытаниям рабочий Рутокен КЭП для отладки транспорта ключей.
Проверка версий НАЙС.ОС¶
openssl engine -t -c gost подтверждает доступность Engine и перечень регистрируемых криптографических алгоритмов в OpenSSL. Это не то же самое, что подтверждение поддержки алгоритмов в GPGSM. Сверяйте обе команды.
Для протокола можно сохранить сведения о пакетах, избегая вывода ключей:
umask 077
mkdir -p /root/gost-cms-test/evidence
rpm -q gnupg libksba libgcrypt openssl \
> /root/gost-cms-test/evidence/packages.txt
gpgsm --version > /root/gost-cms-test/evidence/gpgsm-version.txt
Изолируйте GPGSM¶
Ключи, сертификаты и доверие удобнее вести в отдельной домашней папке, чтобы не смешивать тестовые CA с корпоративными:
umask 077
LAB=/root/gost-cms-test/lab
mkdir -p "$LAB"
chmod 700 "$LAB"
[ -d "$LAB/gnupg" ] || mkdir -m 700 "$LAB/gnupg"
gpgsm --homedir "$LAB/gnupg" --list-keys
Важно: gpg-agent и Dirmngr хранят состояние и могут кэшировать данные. При повторном испытании фиксируйте, использовался ли старый профиль/кэш. --homedir в каждой команде должен указывать на одну и ту же папку лаборатории, иначе результат может оказаться «нет закрытого ключа» при успешном импорте в другой профиль.
Если нужно полностью новое испытание, создавайте новый каталог, а не удаляйте /root/.gnupg и не очищайте наугад CRL-кэш рабочей учётной записи.
Контроль файлов при обмене¶
На НАЙС.ОС после создания файла обмена:
cd /root/gost-cms-test/exchange
sha256sum message.txt message.txt.sgn signer.cer > SHA256SUMS
tar -czf ../cms-signature-exchange.tar.gz \
message.txt message.txt.sgn signer.cer SHA256SUMS
На macOS в отдельном каталоге:
Это проверяет сохранность файлов при копировании, но не является криптографической проверкой CMS-подписи. После хэшей обязательно запустите проверку подписи CryptCP/GPGSM. Не упаковывайте test.key, P12 с приватным ключом, password.txt, каталоги private-keys-v1.d или целиком GNUPGHOME.
Как обезличить доказательства¶
Журналы GPGSM могут содержать DN сертификата (ФИО, организацию, адрес, идентификаторы). При подготовке публичного отчёта используйте только нужные маркеры статуса GOODSIG, VALIDSIG, BADSIG, TRUST_*, коды возврата, версию пакетов и лабораторные SHA-256. Полные приватные журналы храните в закрытом контуре и по политике компании.