Перейти к содержимому

Неэкспортируемые контейнеры крипто про как перенести

  • автор:

Переносим неэкспортируемые контейнеры Крипто-ПРО

Иногда случается так что необходимо перенести клиент-банк или другое разнообразное бухгалтерское и не очень ПО с одного компьютера на другой.
В том случае когда в качестве криптопровайдера выступает СКЗИ Крипто-ПРО обычно проблем не возникает — СКЗИ имеет штатные средства копирования ключей. Но не всегда все гладко — в том случае, когда ключевой контейнер находится в реестре Windows, и при генерации ключа не была выставлена галочка «Пометить ключ как экспортируемый» то при попытке скопировать куда-либо этот ключ Крипто-ПРО будет ругаться и не скопирует ключ.
Из этой ситуации есть очень простой выход — выгружаем ветку реестра HKLM/SOFTWARE/CryptoPro/Settings/Users//Keys (в x64 операционках контейнеры лежат в HKLM/SOFTWARE/Wow6432/Node/CryptoPro/Settings/Users//Keys), а на том ПК куда необходимо импортировать смотрим разрядность ОСSID пользователя, блокнотом правим .reg файл (меняем SID и, если необходимо, путь к конечной ветке), и импортируем его в реестр.
Также этим методом очень удобно бекапить и клонировать ключи тогда, когда их много(например в аутсорс-бухгалтериях).

P.S. Не забывайте после переноса установить сертификаты из криптоконтейнеров в «Личные».

Как сделать контейнер наоборот — неэкспортируемым

Подскажите пожалуйста, как можно экспортируемый контейнер с ЭЦП скопировать на Рутокен Lite и сделать его неэкспортируемым на этом носителе?
Я не перепутал, то есть не защищенный от копирования контейнер сделать наоборот защищенным.

Как просто скопировать на Рутокен контейнер с помощью Крипто Про 5 я знаю, но он копируется с тем же свойством экспортируемого контейнера, что и оригинал.

#2 Ответ от Vladimir Ivanov 2023-01-20 17:43:19

  • Vladimir Ivanov
  • Администратор
  • Неактивен
Re: Как сделать контейнер наоборот — неэкспортируемым

NSGrid пишет:

Подскажите пожалуйста, как можно экспортируемый контейнер с ЭЦП скопировать на Рутокен Lite и сделать его неэкспортируемым на этом носителе?
Я не перепутал, то есть не защищенный от копирования контейнер сделать наоборот защищенным.

Как просто скопировать на Рутокен контейнер с помощью Крипто Про я знаю, но он копируется с тем же свойством экспортируемого контейнера, что и оригинал.

Свойство неэкспортируемости ключа задается при создании контейнера. Теоретически, если переносить контейнер не напрямую (а при этом сохраняются свойства контейнера), а через PFX, такой фокус может и получиться. Но это не точно 🙂
Лучше, конечно, сразу создавать контейнер как положено. А еще лучше — генерировать неизвлекаемые ключи.

#3 Ответ от NSGrid 2023-01-20 18:23:57

Re: Как сделать контейнер наоборот — неэкспортируемым

Через PFX (если говорить про Винду) можно сделать неэкспортируемым, только при импорте стандартными средствами Винды. Так как при экспорте я не нашел никаких настроек, касаемо изменения свойств. А стандартные средства Винды позволяют импортировать PFX только в реестр или в какую-то директорию, но как импортировать на Рутокен Lite я не нашел.

Также в Панели управления Рутокен я вижу функцию импорта, и, там, кстати, при импорте, тоже есть флаг «Разрешить экспорт закрытого ключа», то есть, как я понимаю, если флаг не ставить, значит он скопируется и будет неэкспортируемым. Но у меня не получается экспортировать его этим методом, так как при попытке экспорта из файла PFX появляется сообщение: Импорт невозможен: импортированы могут быть только сертификаты для ключей RSA».
Интересно, что тут может быть за проблема?

#4 Ответ от Vladimir Ivanov 2023-01-20 18:46:44

  • Vladimir Ivanov
  • Администратор
  • Неактивен
Re: Как сделать контейнер наоборот — неэкспортируемым

NSGrid пишет:

Через PFX (если говорить про Винду) можно сделать неэкспортируемым, только при импорте стандартными средствами Винды. Так как при экспорте я не нашел никаких настроек, касаемо изменения свойств. А стандартные средства Винды позволяют импортировать PFX только в реестр или в какую-то директорию, но как импортировать на Рутокен Lite я не нашел.

Надежда была на то, что КриптоПро может экспортировать ключ в PFX, а потом импортировать в свой контейнер в неэкспортируемом режиме. На стандартные средства Windows расчета не было

NSGrid пишет:

Также в Панели управления Рутокен я вижу функцию импорта, и, там, кстати, при импорте, тоже есть флаг «Разрешить экспорт закрытого ключа», то есть, как я понимаю, если флаг не ставить, значит он скопируется и будет неэкспортируемым. Но у меня не получается экспортировать его этим методом, так как при попытке экспорта из файла PFX появляется сообщение: Импорт невозможен: импортированы могут быть только сертификаты для ключей RSA».
Интересно, что тут может быть за проблема?

Ну это-то как раз не проблема, поскольку панель управления Рутокен не обучена работе с проприетарными форматами контейнеров (КриптоПро CSP). Ну то есть ПУР не может создать контейнер КриптоПро. А импортировать ключи подписи в собственные объекты регулятор не велит

Поэтому представляется наименее затратным сгенерировать новые ключи и выпустить новый сертификат. А старый отозвать конечно

Неэкспортируемые контейнеры крипто про как перенести

Для примера рассмотрим наиболее часто встречающуюся задачу переноса контейнера закрытого ключа из операционной системы Windows под Linux или OS X.

Если в операционной системе Windows сертификат и закрытый ключ могут находится в локальном хранилище Crypto API, то для работы под операционными системами Linux или OS X его нужно импортировать в специальное системное хранилище.

Важно, чтобы у закрытого ключа должен быть установлен флаг «Экспортируемый»

Перенос выполняется в два шага – экспорт контейнера и сертификата, импорт контейнера и установка сертификата в личное хранилище:

В операционной системе Windows скопировать контейнер закрытого ключа можно следующим образом:

  1. Откройте приложение КриптоПро CSP и перейдите на вкладку Сервис.
  2. На вкладке выберите команду Скопировать контейнер закрытого ключа.
  3. Введите пароль для ключевого контейнера и задайте имя ключевого контейнера (например, test).
  4. Сохраните контейнер на диск или флешку.
  5. После этого откройте диалог Сертификаты (должна запуститься консоль MMC), перейдите в раздел Личное, Реестр, Сертификаты и экспортируйте сертификат без закрытого ключа с помощью мастера. Сохраните его в файл (например, test.cer).
  1. Скопируйте контейнер закрытого ключа (директорию /test/ в формате 8.3) и файл сертификата (test.cer) из корня дискеты или флешки в директорию /var/opt/cprocsp/keys/имя_пользователя.
  2. При этом необходимо проследить чтобы: владельцем файлов был пользователь, в директории с именем которого расположен контейнер (от его имени будет осуществляться работа с ключами); на директорию с ключами были выставлены права, разрешающие владельцу всё, остальным ничего; на файлы были выставлены права, разрешающие владельцу по крайней мере чтение и запись, остальным ничего.

В результате выполнения предыдущей команды должно быть выведено сообщение

PrivateKey Link: Yes. Container: HDIMAGE\\test.000\.

В приведенных выше командах подразумевается один из следующих идентификаторов платформы: ia32 — для 32-разрядных систем Linux; amd64 — для 64- разрядных систем Linux; не указывается — для OS X.

  • Как установить и настроить криптопровайдер КриптоПро CSP
  • Как установить КриптоАРМ ГОСТ на платформу Microsoft Windows
  • Как установить КриптоАРМ ГОСТ на платформу Linux
  • Как установить КриптоАРМ ГОСТ на платформу OS X

Ошибка копирования контейнера КриптоПро. Экспортируем неэкспортируемое.

Soft

Автор Михаил На чтение 5 мин Просмотров 1.5к. Опубликовано 03/09/2022 Обновлено 04/09/2022

Похоже, что электронные подписи вошли в нашу жизнь навсегда. И если обычным гражданам ещё можно обойтись шариковой ручкой, то с организациями такое уже не пройдёт. Доступ к программам для сдачи отчетностей и на различные сервисы (такие, например, как клиент-банки) осуществляется только с помощью ЭЦП (электронных цифровых подписей).

Технологии новые, но проблемы старые. Если раньше бухгалтер подписывал за руководителя кучу бумажных документов, то сейчас это происходит с помощью ЭЦП. Последний чаще всего даже не догадывается какие документы он регулярно «подписывает», особенно это касается всяких бюджетных и иных окологосударственных организаций.

В подавляющем большинстве случаев для создания электронных подписей используется программа КриптоПро CSP, с помощью которой заявитель сам генерирует закрытый ключ и подает запрос на создание открытого ключа в удостоверяющий центр. Удостоверяющий центр проверяет заявителя и выпускает сертификат с открытым ключом. После чего остается только «связать» сертификат с закрытым ключом. Всё. Можно подписывать.

Открытый ключ выглядит вот так:

С закрытым ключом сложнее. Задумывалось, что правильный ключ должен выглядеть вот так:

Но стоимость такого «свистка» начинается от 1500 рублей, поэтому у большинства «бюджетников», а это всякие детские сады, школы, библиотеки и т.д., где административно-хозяйственное направление богато на персонал, покупают обычные флешки:

И стоит в разы дешевле и по прямому назначению можно использовать. Покупай умнее, живи веселее!

Спустя год, месяц, неделю обнаруживается:

Ой, а флешку-то я в другой сумочке дома оставила.

— директор Алевтина Игоревна

Кажется сыну в школу отдала.

— бухгалтер Зинаида Степановна

Как не работает? Пустая? Вирусы съели, я ничего не трогала, оно само.

— заместитель директора по гламурным вопросам Оленька

А тут, как назло, последний день, когда надо подписать документы или деньги отправить, поэтому следующим местом хранения ключей обычно становится реестр Windows:

А что? Деньги тратить и никакие флешки вставлять не надо, а то вон у Зинаиды Степановны процессор старый и флешки не держит, а под стол каждый раз ей лезть неудобно. Все подписи можно держать сразу на компьютере, даже на нескольких компьютерах сразу, потом только сиди и выбирай нужную.

Счастье вечным не бывает. Забыли поставить галочку в нужном месте или удостоверяющий центр разрешает только неэкспортируемые ключи, из-за чего они получаются с вечной пропиской в реестре:

Что же делать? Сегодня последний день, последний час, последние минуты, нужно успеть поставить кучу программ, всё настроить, а тут только «Одноклассники» и работают!

Контейнер с ключами в реестре практически никак не защищен и, если у пользователя есть доступ к реестру, то есть и доступ к ключам. Ниже я покажу рабочий пример с двумя компьютерами. Один старый компьютер с Windows XP (32-битной), а второй новый с Windows 10 (64-битной). Итак, задача. Подпись создана на новом компьютере. Сертификат с открытым ключом скопировать получилось, а закрытый ключ нет. Как перенести закрытый ключ на компьютер с Windows XP штатными средствами и без всяких «левых» программ?

Итак. На компьютере с Windows 10 запускаем Редактор реестра:

У нас 64-битная система, поэтому нам нужна ветка:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro\Settings\Users\

Если бы Windows была 32-битная, то нужна была бы другая ветка:

HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\

Переходим. Внутри будет список так называемых SID или идентификаторов безопасности учетных записей. Страшно от терминов, аж жуть. Открываем ту ветку, которая начинается на S-1-5-21… Как правило, она такая одна. Внутри находим ветку Keys и раскрываем. В ней и будет находиться список контейнеров, которые были созданы или скопированы в реестр на этом компьютере.

В нашем примере полный путь выглядит так:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro\Settings\Users\S-1-5-21-133333333-133333333-133333333-1001\Keys\

S-1-5-21-133333333-133333333-133333333-1001 – это и есть SID, на другом компьютере он будет иным, но начало у всех одинаковое.

Выделяем правой кнопкой мыши нужный контейнер, который мы хотим перенести. В открывшемся меню выбираем пункт «Экспортировать»:

Придумываем файлу любое имя и жмём «Сохранить»:

В итоге у нас получится файл реестра с расширением .reg. Переносим его вместе с сертификатом на компьютер с Windows XP:

Все последующие действия будут происходить только на компьютере с Windows XP, второй компьютер нам больше не потребуется.

Сначала нам нужно узнать SID пользователя нашего компьютера.

Запускаем Редактор реестра, и так как Windows XP 32-битная, то переходим в ветку:

HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\

Снова ищем ветку, которая начинается на S-1-5-21… Внутри тоже будут контейнеры с ключами, если их конечно делали раньше, но сейчас нам нужно только точное название SID. Чтобы не ошибиться можно выбрать правой кнопкой любой контейнер и нажать «Экспортировать»:

В следующем окне в самом низу будет полный путь к выбранному контейнеру:

Можно выделить весь путь или только цифры SID и скопировать.

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

HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\S-1-5-21-7777777777-7777777777-7777777777-500\Keys\Илья Муромец

Теперь возвращаемся к полученному ранее файлу реестра. В нём нужно будет отредактировать одну строку.

Для этого выделяем его правой кнопкой мыши и в открывшемся меню выбираем пункт «Изменить»:

Откроется Блокнот:

В самом начале файла находим строку, похожую на эту:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro\Settings\Users\S-1-5-21-133333333-133333333-133333333-1001\Keys\Идолище Поганое]

В ней нам нужно заменить SID и убрать Wow6432Node\

Должно получиться так:

[HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\S-1-5-21-7777777777-7777777777-7777777777-500\Keys\Идолище Поганое]

Сохраняем изменения. Запускаем этот файл. Соглашаемся на внесение изменений в реестре и всё. Контейнер закрытого ключа установлен. Можно устанавливать сертификат:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *