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

ГОСТ в 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/ содержит проверки через реальный агент с транспортным адаптером для тестов.

Как пользователь проверяет наличие функции

gpg --version
gpg --full-generate-key

Для лабораторного применения рекомендуется выделенный профиль:

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, не используйте настоящие сертифицированные рабочие ключи для экспериментов; после обновлений проверяйте генерацию, шифрование, расшифрование, отрицательную проверку подписи, экспорт/импорт защищённого ключа и отсутствие утечек секретов в журналах.

Подробнее — администрирование и перечень реальных испытаний.