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

Подготовка безопасного лабораторного стенда

Для проверки ГОСТ-CMS достаточно двух машин: НАЙС.ОС Linux и macOS с КриптоПро CSP 5.0. Виртуальная машина с НАЙС.ОС тоже подходит, если криптографический стек установлен и доступен. Примеры предполагают выполнение команд от root на отдельной тестовой машине; для повседневной работы рекомендуются обычные пользователи и минимально необходимые права.

Разделите роли систем

НАЙС.ОС macOS + КриптоПро
GPGSM/libksba/libgcrypt CryptCP или «Инструменты КриптоПро»
Создание отдельного лабораторного ГОСТ-ключа Получение только открытого сертификата НАЙС.ОС
Чтение/подпись/шифрование CMS Независимая проверка или расшифрование
Локальное сравнение cmp, sha256sum Независимое сравнение cmp, shasum

Не передавайте закрытые ключи в архиве обмена. Достаточно открытого сертификата и искусственного документа. Не подключайте к испытаниям рабочий Рутокен КЭП для отладки транспорта ключей.

Проверка версий НАЙС.ОС

rpm -q gnupg libksba libgcrypt openssl
openssl version
openssl engine -t -c gost
gpgsm --version

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 в отдельном каталоге:

shasum -a 256 -c SHA256SUMS

Это проверяет сохранность файлов при копировании, но не является криптографической проверкой CMS-подписи. После хэшей обязательно запустите проверку подписи CryptCP/GPGSM. Не упаковывайте test.key, P12 с приватным ключом, password.txt, каталоги private-keys-v1.d или целиком GNUPGHOME.

Как обезличить доказательства

Журналы GPGSM могут содержать DN сертификата (ФИО, организацию, адрес, идентификаторы). При подготовке публичного отчёта используйте только нужные маркеры статуса GOODSIG, VALIDSIG, BADSIG, TRUST_*, коды возврата, версию пакетов и лабораторные SHA-256. Полные приватные журналы храните в закрытом контуре и по политике компании.