Открыть сервисСервис

Копирование неэкспортируемого контейнера ЭЦП

Копирование неэкспортируемого контейнера ЭЦП — процедура переноса закрытого ключа электронной подписи с криптопровайдера, не поддерживающего экспорт ключевых данных, на другой носитель или компьютер. Неэкспортируемый контейнер — это ключевая пара, созданная в соответствии с ГОСТ Р 34.10-2001 или ГОСТ Р 34.10-2012, у которой флаг экспорта закрытого ключа снят: криптопровайдер (например, Crypto-Pro CSP) физически не позволяет выгрузить ключ в файл .key/.pfx средствами стандартного интерфейса. Такая защита применяется, чтобы ключ нельзя было скопировать и использовать вне защищённого окружения, однако на практике владельцу сертификата часто требуется перенести подпись на новый рабочий компьютер или резервный носитель.

Причины неэкспортируемости

При создании ключевой пары в Crypto-Pro CSP и аналогичных криптопровайдерах (ViPNet CSP, «КриптоПро CSP для MS CryptoAPI») доступность экспорта ключа определяется параметрами ключа. Неэкспортируемый контейнер возникает в следующих случаях:

  • при выпуске ключа через Удостоверяющий центр (УЦ) или оператора ЭДО, который намеренно снимает флаг экспорта, чтобы ключ нельзя было передать третьим лицам;
  • при генерации ключа через средства веб-приложений или личных кабинетов, использующих CAPICOM/КриптоПро CSP в режиме «только для чтения»;
  • при создании контейнера с явным указанием параметра «Нельзя экспортировать ключ» в мастере генерации.

Флаг хранится в самом контейнере и проверяется криптопровайдером при каждой операции экспорта — стандартный экспорт через оснастку «Сертификаты» (certmgr.msc) или «КриптоПро CSP» вернёт ошибку «Ключ нельзя экспортировать» или «Экспорт ключа запрещён».

Способы переноса

Через реестр Windows

Наиболее распространённый способ — копирование файлов контейнера и записи реестра вручную. Ключ хранится в каталоге C:\Program Files\Crypto-Pro\CSP\Keys\ (или C:\Program Files (x86)\Crypto-Pro\CSP\Keys\) в виде пары файлов K<хеш>.key и K<хеш>.key.cpd. В реестре Windows создаётся ветка HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto-Pro\Keys\<имя пользователя> (для 64-разрядных систем) или HKEY_LOCAL_MACHINE\SOFTWARE\Crypto-Pro\Keys\..., содержащая путь к контейнеру.

Порядок действий:

  1. На исходном компьютере найти в реестре запись с именем контейнера (серийный номер RSA, например 90ad1234...) и определить путь к файлам.
  2. Скопировать папку с файлами .key и .key.cpd на новый носитель.
  3. На целевом компьютере создать аналогичную ветку реестра с тем же серийным номером и указать путь к скопированным файлам.
  4. Установить сертификат подписи (.cer) в хранилище «Личные» через certmgr.msc.
  5. Проверить доступность контейнера в оснастке «КриптоПро CSP» → вкладка «Ключи».

Способ не требует снятия флага экспорта и работает, поскольку криптопровайдер не проверяет происхождение файлов контейнера.

Через утилиту cspcopy / csptest

Утилиты из комплекта Crypto-Pro (csptest, cspcopy) позволяют клонировать контейнер, включая неэкспортируемый. csptest -keyset -enum_cont -verifycontext -fqcn выводит список контейнеров, cspcopy копирует контейнер на другой носитель, сохраняя свойства ключа. Утилита работает на уровне криптопровайдера и обходит ограничение на экспорт.

Через резервное копирование Windows

Средства резервного копирования Windows (wbadmin) при архивации состояния системы сохраняют ветку реестра и файлы контейнера. Восстановление на другой машине с совместимой версией Windows и Crypto-Pro CSP восстанавливает контейнер целиком.

Через реестр и файлы при переносе на другой носитель

Для переноса на USB-токен или смарт-карту контейнер предварительно копируют описанным выше способом, затем устанавливают драйверы токена (Рутокен CSP, JaCarta CSP, eToken CSP) и импортируют контейнер на носитель через оснастку «КриптоПро CSP» → «Установить личный ключ».

Ограничения и юридические аспекты

Согласно Федеральному закону № 63-ФЗ «Об электронной подписи», ключ электронной подписи должен находиться под контролем владельца, и его копирование допускается только самим владельцем. Неэкспортируемость контейнера — техническая мера защиты, но не юридическое ограничение: владелец вправе перенести ключ на другой носитель, сохранив конфиденциальность. При этом копирование ключа третьими лицами без согласия владельца квалифицируется как неправомерное использование ЭП.

Возможные проблемы

  • Ошибка «КриптоПро CSP: контейнер не найден» — в реестре указан неверный путь или отсутствуют файлы .key.
  • Сертификат отображается, но подпись не работает — не установлен корневой сертификат УЦ или не совпадает версия ГОСТ.
  • На 64-разрядной Windows ветка реестра находится по пути Wow6432Node, на 32-разрядной — без этого подраздела.

Источники:

  • Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи»
  • Документация ООО «КриптоПро» по CSP (справочное руководство администратора)
  • ГОСТ Р 34.10-2012 «О процессах формирования и проверки электронной цифровой подписи»
  • Справочная система «КонсультантПлюс»: практика применения ЭП в ЭДО
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru