Криптопровайдер КриптоПро предназначен для работы с криптографическими операциями. Это нужно при работе с интернет-банкингом, ЭЦП, электронной подачей отчетов в налоговую инспекцию и другие государственные органы. Тем, кто часто работает с токенами, сертификатами, закрытыми ключами и прочими криптопрограммами с помощью КриптоПро, часто приходится переносить и копировать большое количество контейнеров. Криптопровайдер имеет штатный механизм для этого, но он работает только в ручном режиме и крайне неудобен при работе с большими массивами данных. Поэтому если требуется сменить рабочий компьютер или воспользоваться сервисом с другого рабочего места, приходится иногда устраивать настоящие «пляски с бубном». Однако есть способы, как ускорить эту процедуру.
Способы переноса
Всего в КриптоПро предусмотрено два варианта копирования ключей и сертификатов:
- Штатный механизм, предусмотренный в интерфейсе CryptoPro, найти его можно в панели управления программы. Самый легкий способ, но работать надо с каждым контейнером и сертификатом отдельно. Когда их несколько десятков (а это уже не уникальный случай даже для физических лиц, не говоря об организациях), начинается долгая и муторная процедура.
- Перенос самих файлов и записей в реестре. Очень быстрый способ: одинаково легко копировать и 3, и 33 ключа. Но при этом надо иметь определенные знания о процедуре.
Далее рассмотрены будут оба способа, но особое внимание будет уделяться именно второму. Дело в том, что иногда он — единственный доступный способ сделать работающую копию. Также уточним, что речь будет идти о переносе лишь тех контейнеров ключа, которые вписаны в реестр Windows. При хранении на токене копировать ключи не нужно, потребуются на новом компьютере лишь сертификаты.
Копирование с помощью средств КриптоПро
Штатный способ копирования контейнеров и сертификатов в КриптоПро таков:
- Открыть «Панель управления».
- Открыть «CryptoPro»
- Войти во вкладку «Сервис».
- Нажать пункт «Скопировать».
- Выбрать контейнер, с которого надо снять копию — как токен, так и компьютерный реестр.
- Задать новое имя и новый адрес для контейнера (в реестре или токене).
Алгоритм прост, но есть один момент, который портит всю картину: работает метод лишь в том случае, если еще на этапе создания ключа он получил отметку «Экспортируемый». Если такого флага не было проставлено, система выдаст сообщение: «Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии».
При получении такого сообщения можно смело переходить ко второму способу копирования ключей.
Копирование сертификата и ключа в файл
Если необходимо сделать копию для работы на другом компьютере, но нет возможности использовать токен, придется слегка повозиться: КриптоПро сам по себе не дает возможности переносить закрытый ключ в виде файла.
Здесь надо действовать так:
- Открыть Internet Explorer.
- Перейти во вкладку «Содержание».
- Выбрать пункт «Сертификаты».
- Выбрать нужный и нажать «Экспорт». Если появилась возможность выбрать пункт «Экспортировать закрытый ключ с сертификатом», нужно нажать «Далее». Если такой возможности нет, надо сразу переходить ко второму способу копирования ключей и сертификатов.
- В открывшемся меню проставить галочки во всех пунктах. Тогда ключ с самого начала будет иметь флаг «Экспортируемый», и его при необходимости будет легко скопировать уже с нового места.
- Придумать пароль — без этого продолжить работу нельзя.
- После ввода пароля нужно указать файл, где будет сохраняться ключ. Он будет иметь расширение .pfx.
Процедура копирования сертификата выглядит так же, только на выходе буде файл с расширением .cer. Для удобства оба файла следует скопировать в одну папку, после чего ее можно перенести на любой другой компьютер.
Для установки контейнера ключа и сертификата надо дважды щелкнуть по каждому файлу мышью. Откроется программа-мастер по установке, после этого достаточно указать для каждого параметра «По умолчанию» — и можно просто щелкать «Далее», пока процедура установки не завершится.
Массовый перенос сертификатов и ключей на новый компьютер
Второй способ копирования состоит в том, что на новом компьютере в реестре создается новая ветка — точная копия аналогичной на исходной машине. Тогда после переноса ключей и сертификатов к ним они оказываются рабочими и изначально активированными. Однако при использовании этого способа нужно вначале убедиться, что на обоих компьютерах стоит одна и та же версия Windows: попытка перенести данные с «семерки» на «десятку» может кончиться тем, что система придет в нерабочее состояние.
Копирование
Вначале необходимо скопировать сами данные. Делается это в несколько этапов:
1) Для того, чтобы это сделать, нужно прежде всего узнать SID — идентификатор безопасности текущего пользователя (напоминаем, что на каждом компьютере может быть не один пользователь, и что опытные люди из-под учетной записи админа без острой необходимости не работают). Для этого нужно открыть командную строку и ввести в ней следующую комбинацию:
wmic useraccount where name=’polzovatel’ get sid
Вместо polzovatel нужно вводить то имя пользователя, для которой нужно узнать идентификатор. Полученный результат надо записать или скопировать в «Блокнот».
2) Следующий шаг — это копирование контейнеров в файл. Здесь нужно зайти в редактор реестра и отыскать в нем следующую ветку:
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\S-1-23-4500…\Keys
Здесь S-1-23-4500… — это тот самый SID, который удалось установить раньше.
3) В ветке нужно найти и экспортировать папку Keys. После этого следует скопировать ту ветку реестра, с которой работали, в отдельный файл. На выходе получим копию, в которой уже хранятся закрытые ключи.
4) Ключи готовы, но к ним нужны сертификаты. Для этого в Windows версий с 7 по 10 нужно найти директорию по адресу:
C:\Users\ polzovatel\AppData\Roaming\Microsoft\SystemCertificates\My
Найденную директорию надо скопировать.
Перенос и установка
Чтобы на новом компьютере ключи и сертификаты встали на место, надо перенести на него два файла:
- Сохраненную часть реестра — ту ветку с ключами, которую экспортировали ранее.
- Найденную и скопированную директорию, где хранятся сертификаты. Переносить ее надо сразу же на нужное место, заменяя содержимое аналогичной директории. Если этого не сделать, на этапе редактирования реестра возникнут проблемы, и может потребоваться восстановление реестра из сохраненной копии.
После этого необходимо сделать следующее:
- Описанным выше способом нужно узнать идентификатор безопасности пользователя (SID) на новом компьютере.
- Открыть сохраненный и перенесенный файл с частью реестра. Сделать это надо в текстовом редакторе («Блокноте» или аналогичной программе — в зависимости от того, что установлено на компьютере).
- Вручную заменить старый SID на новый и сохранить результат в том же формате файла.
- Дважды щелкнуть по файлу с веткой реестра. Откроется окно запроса на встраивание фрагмента в общий реестр Windows. Здесь нужно дать согласие.
Все, процедура завершена. С этого момента операционная система «считает», что каждый закрытый ключ и сертификат с него были изначально правильно установлены в штатном порядке.