Копирование неэкспортируемого контейнера ЭЦП¶
Копирование неэкспортируемого контейнера ЭЦП — процедура переноса закрытого ключа электронной подписи с криптопровайдера, не поддерживающего экспорт ключевых данных, на другой носитель или компьютер. Неэкспортируемый контейнер — это ключевая пара, созданная в соответствии с ГОСТ Р 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\..., содержащая путь к контейнеру.
Порядок действий:
- На исходном компьютере найти в реестре запись с именем контейнера (серийный номер RSA, например
90ad1234...) и определить путь к файлам. - Скопировать папку с файлами
.keyи.key.cpdна новый носитель. - На целевом компьютере создать аналогичную ветку реестра с тем же серийным номером и указать путь к скопированным файлам.
- Установить сертификат подписи (
.cer) в хранилище «Личные» через certmgr.msc. - Проверить доступность контейнера в оснастке «КриптоПро 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 «О процессах формирования и проверки электронной цифровой подписи»
- Справочная система «КонсультантПлюс»: практика применения ЭП в ЭДО
