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

PFX/PKCS#12: перенос ГОСТ-сертификатов и приватных ключей

Разбираем структуру PFX и правила безопасной диагностики импорта между криптопровайдерами.

Документация ПО — НАЙС.ОС CLOUD. Это самостоятельная учебно-справочная статья. Команды приведены для изучения и диагностики; операции с ключами, дисками и действующими сервисами выполняют только после резервного копирования и проверки назначения.

Почему PFX не равен сертификату

Контейнер PKCS#12 может объединять закрытый ключ, один или несколько сертификатов, атрибуты и криптографическую защиту. Файл .pfx не гарантирует, что внутри находится закрытый ключ, и тем более не обещает, что ключ экспортируем. Некоторые ключи являются аппаратно неизвлекаемыми и не должны покидать токен.

Слои совместимости

  1. Кодировка и синтаксис контейнера PKCS#12.
  2. Способ проверки целостности и парольной защиты.
  3. Способ защиты закрытого ключа внутри контейнера.
  4. Кодирование ГОСТ-ключа и параметров кривой.
  5. Назначения сертификата и доверенная цепочка.

RFC 9548 описывает использование российских алгоритмов в PKCS#12. Сам по себе факт поддержки OpenSSL команды pkcs12 не означает поддержки всех ГОСТ-алгоритмов защиты контейнера — эта функциональность зависит от провайдера и уровня реализации.

Посмотреть учебный PFX

openssl pkcs12 -in sample.pfx -info -noout

Команда может запросить пароль. Запускайте её в интерактивном терминале; не вводите реальные пароли после -passin pass:... в историю shell. В диагностике фиксируйте OID механизмов контейнера и ошибки, но не выводите приватный ключ в журналы.

Работа только с публичным сертификатом

Если это разрешено политикой организации, экспортировать сертификат без закрытого ключа можно по аналогичной операции:

openssl pkcs12 -in sample.pfx -clcerts -nokeys -out public-cert.pem

Для реальных контейнеров удостоверьтесь, что целевой путь доступен только владельцу и файл не перезаписывает чужие материалы. Импорт PFX в другой криптопровайдер может изменять атрибуты и связанные метаданные, поэтому проверяйте совпадение открытого ключа и сертификата после импорта.

Отдельно об аппаратных токенах

PFX — файловый формат, а PKCS#11 — интерфейс для доступа к объектам криптоустройства. Они не взаимозаменяемы: наличие PKCS#11-модуля не создаёт возможности экспорта закрытого ключа. Для совместимости с сертифицированными токенами нужны реальные испытания аппаратуры, драйвера и выбранных механизмов.

Первоисточники и дополнительное чтение

  • RFC 9548 — особенности ГОСТ в PKCS#12/PFX.
  • RFC 9337 — использование ГОСТ в парольной криптографии.
  • RFC 9215 — ГОСТ-2012 в сертификатах и списках отзыва.