ГОСТ в OpenPGP: возможности GPG и пределы совместимости¶
Не смешивайте gpg и gpgsm. GPGSM работает с сертификатами X.509 и CMS/PKCS#12. GPG работает с ключами и сообщениями OpenPGP. Совместимый с КриптоПро .p7s не становится автоматически OpenPGP-подписью .sig, а OpenPGP-ключ нельзя просто считать X.509-сертификатом.
Что включено в исходники GnuPG NiceSOFT r12¶
Патч затрагивает генерацию и список ГОСТ-ключей (g10/keygen.c, g10/keylist.c, g10/gpg.c), формирование и проверку ГОСТ-подписей (g10/sign.c, g10/sig-check.c), ECDH/шифрование и согласование ключей (g10/ecdh.c, g10/pubkey-enc.c, g10/gost.c), экспорт/импорт и идентификаторы ключей. Добавлены пользовательские варианты кривых:
- ГОСТ-2012/256: A, B, C, D;
- ГОСТ-2012/512: A, B, C;
- исторические CryptoPro-A, B, C для ГОСТ-2001.
В интерфейсе генерации предусмотрен отдельный выбор ГОСТ, исключающий случайный переход к Ed25519. Изменения затрагивают gpg-agent и подсистему операций открытого ключа. В tests/openpgp находятся сценарии генерации, подписи и ECDH, а tests/gost/ содержит проверки через реальный агент с транспортным адаптером для тестов.
Как пользователь проверяет наличие функции¶
Для лабораторного применения рекомендуется выделенный профиль:
umask 077
mkdir -p /root/gost-cms-test/openpgp-lab
chmod 700 /root/gost-cms-test/openpgp-lab
gpg --homedir /root/gost-cms-test/openpgp-lab --full-generate-key
Если система предлагает меню ГОСТ NiceSOFT, выберите явно необходимую кривую. Не принимайте предложенные подписи или алгоритмы без проверки версии и результатов gpg --list-keys --with-colons.
Не являющиеся доказанными возможности¶
В самом тестовом README указано, что низкоуровневые OpenPGP v4 пакеты используют частный профиль NiceSOFT, а не независимо стандартизованный OpenPGP GOST-формат. Поэтому не заявляйте, что обычный GnuPG на другой ОС обязательно импортирует такие ключи и проверит подпись. Проверять следует со второй сборкой, которая действительно умеет тот же профиль, и сохранять контрольные результаты.
Использование gpg --version как доказательства поддержки CMS также неправильно: CMS реализует gpgsm, а OpenPGP — gpg. В документации НАЙС.ОС эти операции разведены специально.
Рекомендации администраторам¶
Раздельно храните тестовые профили gpg и gpgsm, не используйте настоящие сертифицированные рабочие ключи для экспериментов; после обновлений проверяйте генерацию, шифрование, расшифрование, отрицательную проверку подписи, экспорт/импорт защищённого ключа и отсутствие утечек секретов в журналах.
Подробнее — администрирование и перечень реальных испытаний.