Как зашифровать файл CSP 5?

Как зашифровать файл CSP 5? Электронная цифровая подпись


Offline

lomasm

Оставлено
:
23 марта 2022 г. 20:13:10(UTC)

Такой вопрос, есть 2 организации с установленными криптопро как можно между ними организовать обмен файлами, предварительно зашифрованными через приложение cptools?

Я так понимаю Нам предварительно придется сначала создать а потом обменяться парами ключей? А как их создать? Эта платная услуга?

Добрый день! Уважаемые читатели и гости крупнейшего IP блога России pyatilistnik.org. В прошлый раз я вам рассказал, о том, как установить сертификат в реестр Windows . Сегодня я вам расскажу, каким образом вы можете выполнить перенос сертификата на другой компьютер, это очень частая и жизненная ситуация с которой сталкиваются многие системные администраторы. Захотелось с вами поделиться опытом, о массовом переносе контейнеров с закрытыми ключами, находящимися в области реестра Windows. Использовать мы будем как КриптоПРО, так и встроенные механизмы. Уверен будет интересно.

Добрый день! Уважаемые читатели и гости крупного IT блога рунета pyatilistnik.org. Продолжаем нашу с вами тему с сертификатами и работе с ними. В прошлый раз я вам подробно рассказал, как получить тестовый сертификат криптопро, посмотрите очень интересная заметка. Согласитесь, что для тестирования вам может потребоваться не один сертификат, а гораздо больше, и очень удобно иметь возможность работать с ними, без привязки к физическим токенам, например, на виртуальных машинах Vmware. Для таких задач, есть возможность поместить сертификаты КриптоПРО в реестр Windows, чем мы с вами и займемся.

Содержание
  1. Общее описание
  2. Назначение КриптоПро PKI-Кластер:
  3. Потребители сервисов PKI-Кластера:
  4. Компоненты PKI-Кластера
  5. Интеграция с другими PKI-сервисами
  6. Дополнительные материалы
  7. Создание резервной копии закрытого ключа КриптоПро CSP
  8. Восстановление закрытого ключа КриптоПро CSP из резервной копии
  9. Экспорт ключей и сертификатов
  10. Импорт ключей и сертификатов
  11. Как быть если доступ к старой системе невозможен?
  12. Назначение КриптоПро CSP
  13. Поддерживаемые алгоритмы
  14. Поддерживаемые технологии хранения ключей
  15. Облачный токен
  16. Носители с неизвлекаемыми ключами и защищенным обменом сообщениями
  17. Носители с неизвлекаемыми ключами
  18. Классические пассивные USB-токены и смарт-карты
  19. Инструменты КриптоПро
  20. Поддерживаемое программное обеспечение
  21. Интеграция с платформой КриптоПро
  22. Операционные системы и аппаратные платформы
  23. Интерфейсы для встраивания
  24. Производительность на любой вкус
  25. Регулирующие документы
  26. Когда нужно переносить сертификаты в другое место?
  27. Установка закрытого ключа в реестр
  28. Копирование закрытого ключа из КриптоПро
  29. Перенос сертификатов в виде пошаговой инструкции
  30. Как видите предпосылок и вариантов переноса сертификатов из реестра на другой компьютер, предостаточно.
  31. Где хранится закрытый ключ в реестре Windows
  32. Перенос сертификатов из реестра без КриптоПРО
  33. Когда нужно копировать сертификаты КриптоПРО в реестр
  34. Как скопировать сертификат в реестр КриптоПРО
  35. Перенос КриптоПро, ключей ЭЦП, сертификатов с одного компьютера на другой
  36. Добавить комментарий
  37. Массовый перенос ключей и сертификатов CryptoPro на другой компьютер
  38. Как скопировать эцп из реестра на флешку

Общее описание

КриптоПро PKI-Кластер — комплекс программного обеспечения для централизованного и унифицированного обмена сообщениями между различными компонентами PKI-инфраструктуры организации, обеспечивающей управление жизненным циклом сертификатов ключей проверки электронной подписи и применение электронной подписи.

КриптоПро PKI-Кластер используется для решения задачи интеграции различных информационных систем PKI-инфраструктуры в единый программный комплекс с применением сервис-ориентированного подхода.

Основной принцип: интеграция различных приложений путем установки коммуникационной шины (брокера сообщений) между ними и настройка «общения» этих приложений через шину. Шина отделяет приложения друг от друга, позволяя им коммуницировать независимо от других приложений и даже «не зная» о существовании друг друга.

Назначение КриптоПро PKI-Кластер:

  • Единый API для доступа к PKI-сервисам
  • Понятный и удобный веб-интерфейс для Операторов и Пользователей
  • Аутентификация и авторизация вызывающих сторон
  • Гарантированная передача данных/сообщений между PKI-сервисами
  • «Парсинг» входящих запросов и перенаправление их к целевым PKI-сервисами
  • Интеграция со СМЭВ для проверки сведений заявителей
  • Интеграция с корпоративными ИС для получения дополнительных данных (опционально)
  • Поддержка отечественных криптографических алгоритмов в части взаимодействия по протоколу TLS
  • Обеспечение информационной безопасности на всех этапах информационного взаимодействия
  • Сбор данных и статистический анализ
  • Балансировка нагрузки
  • Централизованный мониторинг PKI-инфраструктуры

PKI-Кластер

Потребители сервисов PKI-Кластера:

  • Пользователи
  • Вызывающие информационные системы (Порталы, Личные кабинеты, СДО)
  • Операторы выдачи сертификатов, Операторы аудита, Администраторы

Пользователи — владельцы сертификатов, обращающиеся непосредственно к PKI-инфраструктуре или посредством внешних ИС для создания/проверки ЭП и управления жизненным циклом сертификатов.

Вызывающие ИС — информационные системы, предоставляющие пользователям или другим системам возможности PKI-сервисов.

Оператор выдачи сертификатов — сотрудник, ответственный за идентификацию заявителя, проверку предоставленных сведений, направления запроса на создание/отзыв сертификата в УЦ, выдачу сертификата.

Оператор аудита — сотрудник, ответственный за сбор и анализ статистической информации, построение отчетов и осуществляющий мониторинг работоспособности PKI-инфраструктуры.

Администратор — сотрудник, ответственный за настройку системы, управление Операторами и вызывающими системами.

Компоненты PKI-Кластера

  • Шлюз прикладного уровня
  • Сервис обеспечения работы Операторов УЦ
  • Сервис проверок
  • Сервис взаимодействия с УЦ
  • Центр Статистики

Интеграция с другими PKI-сервисами

  • Сервис проверки ЭП
  • Сервис штампов времени
  • Сервис предоставления информации о статусе сертификата
  • Сервис централизованного хранения КЭП и создания ЭП
  • Сервис долгосрочно хранения документов
  • Сервисы СМЭВ
  • Системы учёта и управления ключевыми носителями

Дополнительные материалы

Документация
Дистрибутивы (для скачивания обязательна регистрация на сайте)

  • Страница для печатиСтраница для печати


Offline

Sinity

 

Оставлено
:

24 июня 2021 г. 8:31:04(UTC)

Добрый день! При тестировании контейнера выдает ошибки. На компьютере установлены КриптоПро 5.0.11998 и ЕК 2.13.0. Носитель JaCarta-2 ГОСТ. Соответственно и в КриптоПро и в ЕК контейнеры видит, на госуслугах сертификат показывает, но например на странице проверки КриптоПро ЭЦП Брузер плагина выдает ошибки при попытке подписать.
Информация тестирования контейнера:
Проверка завершилась с ошибкой
Контейнер закрытого ключа пользователя
Имя 4fa1ca53-f16b-3690-afc0-7940aba6c575
Уникальное имя SCARD\pkcs11_jacarta_gost_2_0_4e3900101911304c\4fa1ca53-f16b-3690-afc0-7940aba6c575
FQCN \\.\PKCS11 ARDS JaCarta 0 1FFFF\4fa1ca53-f16b-3690-afc0-7940aba6c575
Проверка целостности контейнера успешно
Ключ обмена доступен
длина ключа 512 бит
экспорт открытого ключа успешно
вычисление открытого ключа успешно
импорт открытого ключа успешно
подпись Ошибка 0x8009000D: Ключ не существует.
создание ключа обмена Ошибка 0x80090020: Внутренняя ошибка.
экспорт ключа запрещен
алгоритм ГОСТ Р 34.10-2012 DH 256 бит
ГОСТ Р 34.10 256 бит, параметры обмена по умолчанию
ГОСТ Р 34.11-2012 256 бит
ГОСТ 28147-89, параметры шифрования ТК26 Z
сертификат в контейнере соответствует закрытому ключу
имя сертификата НИШАНОВА ЖАНЫЛАЙ МААНАЗАРОВНА
субъект ОГРНИП=321631300042390, СНИЛС=15081202720, ИНН=771475601369, [email protected], C=RU, S=77 МОСКВА, L=77 МОСКВА, STREET=МОСКВА Г., CN=НИШАНОВА ЖАНЫЛАЙ МААНАЗАРОВНА, G=ЖАНЫЛАЙ МААНАЗАРОВНА, SN=НИШАНОВА
поставщик [email protected], ОГРН=1047707030513, ИНН=007707329152, C=RU, S=77 Москва, L=г. Москва, STREET=”ул. Неглинная, д. 23″, OU=УЦ ЮЛ, O=Федеральная налоговая служба, CN=Федеральная налоговая служба
действителен с 15 июня 2021 г. 10:04:25
действителен по 15 сентября 2022 г. 10:14:25
ключ действителен с 15 июня 2021 г. 10:04:24
ключ действителен по 15 сентября 2022 г. 10:04:24
серийный номер 5650 7700 48AD 0FA7 47C7 1A17 F6FB 0D07
сертификат в хранилище My
субъект ОГРНИП=321631300042390, СНИЛС=15081202720, ИНН=771475601369, [email protected], C=RU, S=77 МОСКВА, L=77 МОСКВА, STREET=МОСКВА Г., CN=НИШАНОВА ЖАНЫЛАЙ МААНАЗАРОВНА, G=ЖАНЫЛАЙ МААНАЗАРОВНА, SN=НИШАНОВА
cсылка на закрытый ключ SCARD\pkcs11_jacarta_gost_2_0_4e3900101911304c\4fa1ca53-f16b-3690-afc0-7940aba6c575; Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider#80; dwFlags: 0x00000000; dwKeySpec: AT_KEYEXCHANGE#1
cрок действия закрытого ключа 15 сентября 2022 г. 10:04:24
использование ключа обмена разрешено до окончания срока действия закрытого ключа.
Ключ подписи отсутствует
Симметричный ключ отсутствует
Загрузка ключей успешно
Версия контейнера 4
Значение ControlKeyTimeValidity 1
Режим работы CSP библиотека
Расширения контейнера
некритическое Расширение контейнера КриптоПро CSP. Срок действия ключа обмена
действителен по 15 июня 2024 г. 10:07:56

В чем может быть причина?
Могут ли помочь такие манипуляции, как переустановка КриптоПро с предварительным удалением утилитой cspclean, переустановка криптопро эцп браузер плагина, или переустановкой личного сертификата в контейнер через КриптоПро? Или причина в самом носителе или контейнере и ничего в данном случае сделать нельзя?

Отредактировано пользователем 24 июня 2021 г. 8:45:07(UTC)
 | Причина: Не указана


Offline

Grey

 

Оставлено
:

24 июня 2021 г. 11:31:38(UTC)

Добрый день.
А где был сгенерирован данный ключ? В каком УЦ его выдали?

С уважением,
Сергей Агафьин,
Начальник отдела разработки ФКН.
Техническую поддержку оказываем здесь.
Наша база знаний.


Offline

Sinity

 

Оставлено
:

24 июня 2021 г. 11:38:11(UTC)

Автор: Grey Перейти к цитате

Добрый день.
А где был сгенерирован данный ключ? В каком УЦ его выдали?

Ответил в ЛС.

Чтобы перенести ключ криптопровайдера КриптоПро CSP с одного компьютера на другой, необходимо:

  1. Создать копию закрытого ключа на прежнем рабочем месте (компьютере), где первоначально подключен и настроен сервис “1С-Отчетность”.
  2. Установить программу-криптопровайдер КриптоПро CSP на новом рабочем месте, с которого планируется использовать сервис “1С-Отчетность”.
  3. Перенести копию ключа и восстановить закрытый ключ на новом рабочем месте, с которого планируется использовать сервис “1С-Отчетность”.

В этой статье рассматривается создание копии закрытого ключа, ее перенос и восстановление закрытого ключа на новом рабочем месте, на котором планируется
использование прежней учетной записи 1С-Отчетности.

Создание резервной копии закрытого ключа КриптоПро CSP

Если копия закрытого ключа создается на компьютере, где в информационной базе есть заявление на подключение к 1С-Отчетности, то чтобы узнать
место хранения контейнера закрытого ключа выполните следующее (рис. 1):

  1. Перейдите в раздел “Настройки” в окне 1С-Отчетности.
  2. Перейдите по гиперссылке “Список заявлений”.

Если в информационной базе нет заявления на подключение к 1С-Отчетности, то следуйте инструкции, начиная с рис. 3.

Рис. 1

Как зашифровать файл CSP 5?

При этом откроется форма списка заявлений. Щелкните дважды по строке с заявлением, чтобы открыть его и перейдите к закладке “Служебная
информация” (рис. 2).

В поле “Путь к контейнеру закрытого ключа” указан путь хранения ключа. В конце строки пути указывается имя файла контейнера
закрытого ключа, который нужно будет перенести на другой компьютер.

В нашем примере: REGISTRY\\1cmastersystem_2017

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

Рис. 2

Как зашифровать файл CSP 5?

Для копирования файла контейнера закрытого ключа необходимо открыть программу КриптоПро CSP (кнопка “Пуск” –
Все программы” – “КРИПТО-ПРО” – “КриптоПро CSP”) (рис. 3, 4).

Рис. 3

Как зашифровать файл CSP 5?

Рис. 4

Как зашифровать файл CSP 5?

Перейдите на закладку “Сервис” и нажмите кнопку “Скопировать” (рис. 5).

Рис. 5

Как зашифровать файл CSP 5?

Появится окно копирования контейнера закрытого ключа (рис. 6).

Нажмите кнопку “Обзор”, выберите имя контейнера и нажмите “ОК”. Если ключевых контейнеров несколько, то чтобы увидеть
полный путь к файлу контейнера выберите переключатель “Уникальные имена”.

Рис. 6

Как зашифровать файл CSP 5?

Имя ключевого контейнера появится в строке выбора (рис. 7). Нажмите “Далее”.

Рис. 7

Как зашифровать файл CSP 5?

Введите имя для создаваемого ключевого контейнера и нажмите “Готово” (рис. 8).

Рис. 8

Как зашифровать файл CSP 5?

Вставьте флеш-накопитель, на которую будет скопирован контейнер ключа, выберите ее в разделе “Устройства” и нажмите “ОК”
(рис. 9).

Рис. 9

Как зашифровать файл CSP 5?

Задайте пароль для создаваемого контейнера и нажмите “ОК” (рис. 10).

Рис. 10

Как зашифровать файл CSP 5?

Контейнер ключа будет скопирован на флеш-накопитель.

Восстановление закрытого ключа КриптоПро CSP из резервной копии

Чтобы восстановить закрытый ключ из копии на новом рабочем месте (компьютере) необходимо сначала установить программу КриптоПро CSP.

Затем можно скопировать файл контейнера на диск или оставить на флеш-накопителе.

Если вы решили хранить закрытый ключ на диске, то его нужно установить его в специальный реестр.

Чтобы это сделать:

  1. Вставьте флеш-накопитель с копией ключа.
  2. Откройте программу КриптоПро CSP (кнопка “Пуск” – Все программы” – “КРИПТО-ПРО” – “КриптоПро CSP”)
    (см. рис. 3).
  3. Перейдите к закладке “Сервис” и нажмите кнопку “Скопировать” (рис. 11).
  4. В окне копирования контейнера закрытого ключа нажмите кнопку “Обзор”. При этом откроется окно выбора ключевого контейнера,
    в котором будут указаны все найденные контейнеры ключей, в т.ч. и находящиеся на флеш-накопителе.
  5. Выделите имя контейнера, находящегося на флеш-накопителе и нажмите “ОК”.

Рис. 11

Как зашифровать файл CSP 5?

Имя ключевого контейнера появится в строке выбора (рис. 12). Нажмите “Далее”.

В случае, если для контейнера был задан пароль, введите его в окне ввода пароля и нажмите “ОК”.

Рис. 12

Как зашифровать файл CSP 5?

Введите имя для создаваемого ключевого контейнера (можно оставить прежнее имя) и нажмите “Готово” (рис. 13).

Выберите “Реестр” в разделе “Устройства” и нажмите “ОК”.

Рис. 13

Как зашифровать файл CSP 5?

Задайте пароль для создаваемого контейнера и нажмите “ОК” (рис. 14).

Рис. 14

Как зашифровать файл CSP 5?

Далее требуется установить сертификат закрытого ключа в хранилище.

Откройте программу КриптоПро CSP (кнопка “Пуск” – Все программы” – “КРИПТО-ПРО” – “КриптоПро CSP”)
(см. рис. 3).

Перейдите на закладку “Сервис” и нажмите кнопку “Просмотреть сертификаты в контейнере” (рис. 15).

Рис. 15

Как зашифровать файл CSP 5?

Нажмите кнопку “Обзор” в окне “Сертификаты в контейнере закрытого ключа” и выберите имя контейнера из списка (рис. 16).

Если вы скопировали контейнер закрытого ключа в реестр, как описано выше, то выберите имя контейнера из реестра (указано в колонке
“Считыватель”). Если не выполняли копирование и работаете с флеш-накопителя – выберите имя контейнера, который находится на
флеш-накопителе.

Нажмите “ОК”.

Рис. 16

Как зашифровать файл CSP 5?

Имя выбранного ключевого контейнера будет вставлено в окно “Сертификаты в контейнере закрытого ключа” (рис. 17). Нажмите
“Далее”.

Рис. 17

Как зашифровать файл CSP 5?

При этом появится окно сертификата для просмотра (рис. 18). Нажмите кнопку “Установить”.

Рис. 18

Как зашифровать файл CSP 5?

При этом появится сообщение об успешной установке сертификата в хранилище (рис. 19).

Рис. 19

Как зашифровать файл CSP 5?

КриптоПро один из наиболее широко используемых криптопровайдеров на территории Российской Федерации, он широко используется в системах электронного документооборота, сдачи отчетности и взаимодействия с государственными органами, поэтому встретить его можно практически в любой организации. По этой причине у системных администраторов часто встает вопрос его переноса на другой ПК. А так как криптография является для многих сложной и непонятной областью, то эта простая задача может вызвать некоторые затруднения.

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

Если вы ранее не сталкивались с криптографией вообще, то рекомендуем прочитать нашу статью: Введение в криптографию. Общие вопросы, проблемы и решения. Здесь мы не будем углубляться в теорию, но приведем некоторый необходимый ликбез.

В повседневной деятельности широко распространено понятие “сертификат”, им оперируют все, от сотрудников удостоверяющих центров, то бухгалтеров, работающих с ЭЦП. Часто можно услышать что-то подобное: “нам купили в бухгалтерию новый компьютер, нужно перенести сертификаты”. Но если подходить с точки зрения криптографии, то слово “сертификат” в данном случае употребляется неправильно. Вся современная криптография строится вокруг инфраструктуры открытых ключей (PKI), которая подразумевает наличие у каждого участника ключевой пары: открытого и закрытого ключа.

Закрытый ключ является секретным, с его помощью мы можем подписывать документы, шифровать информацию и т.д. и т.п. Закрытый ключ Усиленной квалифицированной электронной подписи (УКЭП) равнозначен нотариально заверенной подписи и его попадание в чужие руки может привести к самым тяжелым последствиям.

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

Поэтому, когда мы говорим о переносе “сертификатов”, то подразумеваем необходимость перенести ключевую пару: закрытый ключ и сертификат, перенос одних только сертификатов не принесет успеха, криптография на новом узле работать не будет.

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

Экспорт ключей и сертификатов

Для того, чтобы правильно экспортировать закрытые ключи, нам нужно выяснить идентификатор безопасности (SID) текущего пользователя (который работает с ЭЦП), это можно сделать командной:

Затем откроем редактор реестра и перейдем в ветку для 32-битных систем:

для 64-битных систем:

Найдем и раскроем раздел с SID текущего пользователя и экспортируем оттуда ветку Keys.

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

После чего скопируем все сертификаты, расположенные по пути

Это открытые ключи, никакой секретности они не представляют, поэтому просто копируем их любым доступным способом.

Импорт ключей и сертификатов

Прежде всего установим на новый узел КриптоПро, обратите внимание, что переносить ключи и сертификаты следует между одинаковыми версиями. В противном случае либо обновите версию КриптоПро на старой системе, либо установите старую версию на новой и обновите ее уже после переноса ключевых пар.

Затем снова узнаем SID пользователя, который будет работать с ЭЦП, если это текущий пользователь, то снова выполните:

В противном случае:

где Name – имя пользователя.

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

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

Следующим шагом скопируйте сохраненные сертификаты в

После чего можно устанавливать и настраивать приложения работающие с криптографией, все будет работать.

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

Теория – это хорошо, но практика может подкинуть самые неожиданные ситуации. Как быть, если доступ к старой системе невозможен? Скажем вышла из строя материнская плата или серьезно повреждена операционная система?

Все что нам нужно в таком случае – это доступ к файловой системе старой системы. Вы можете как напрямую подключить жесткий диск к новой системе, так и загрузиться при помощи консоли восстановления или любого более продвинутого инструмента, скажем MSDaRT.

С копированием сертификатов проблемы возникнуть не должно, их хранилище простая папка на диске, а вот с хранилищем закрытых ключей в реестре немного сложнее. Но не будем забывать, что системный реестр тоже хранится в файлах на диске. Вам следует любым доступным образом скопировать файл SOFTWARE из C:\Windows\System32\config

Затем на целевой системе откройте редактор реестра, перейдите в раздел HKEY_LOCAL_MACHINE и через Файл – Загрузить куст подключите скопированный из старой системы раздел реестра. Дайте ему осмысленное имя, скажем OLD_SOFTWARE.

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

Дальнейшие действия ничем не отличаются от описанных нами в разделе Импорт ключей и сертификатов.

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


Offline

zlovrednaya_dgo

 

Оставлено
:

22 марта 2022 г. 16:48:39(UTC)

Пытаюсь реализовать на клиентской части шифрование для ФСС.
Вследствие изысканий по подписанию оказалось, что для плагина не все так сложно как на форуме пишут=)
Лично у меня сформировать математически корректную подпись руками (с RawSignature и хэшами) не удалось.. Спасло подписание XML по шаблону oSignedXML.Sign(oSigner). Поэтому предположила что на js реализация шифрования тоже может быть проще, чем кажется.

Обзор темы:
Предполагается использовать:
Вариант 1. CPEnvelopedData https://docs.cryptopro.r…om_class/cpenvelopeddata
ИЛИ
Вариант 2. использовать SymmetricAlgorithm https://docs.cryptopro.r…class/symmetricalgorithm

Вариант 1 oEnvelopedData.Encrypt выдает ответ в котором включены данные в ASN.1( шифрованные данные и сессионный ключ в hex. тут человек говорит, что этот метод не делает как нужно для фсс – т.е. не генерит сессионный ключ, т.е. вероятно этот вариант не подходит и прикладывает исходники на с которые он прикрутил к своему коду.
В документации метода же указана что сессионный ключ генерится:

Цитата:

The Encrypt method generates a session key, uses that key to encrypt the contents, envelops the encrypted content for each recipient by encrypting the session key with each recipient’s public key, and then returns the BLOB that contains the encrypted contents and the encrypted session keys as an encoded string.

Вариант 2 работает со следующими параметрами:
IV – вектор инициализаци
DiverseData – данные диверсификации ключа. Что такое диверсификация ключа и необходимы ли они для ФСС алгоритма – непонятно.
ExportKey – ключи (вероятно, согласования), которые почему-то всегда одинаковые, что здесь, что в дефолтной в утилите шифрования от крипто про (UPD – они все-таки разные!!!).
Вот параметры Export Key

Цитата:

1.Компонент является результатом выполнения CryptGetKeyParam(KP_CIPHEROID).
2.Эфемерный открытый ключ, который использовался для выработки ключа обмена. Компонент является результатом выполнения CryptExportKey(PUBLICKEYBLOBEX).
3.Симметричный ключ, зашифрованный на ключе обмена. Компонент является результатом выполнения CryptExportKey(SIMPLEBLOB).

и сами зашифрованные данные.

По идее из этих данных нужно получить ключ структуры вот такой (https://lapo.it/asn1js/#MIGpMCgEINeJQo4go2GVXm61yd8N4sexMqgMQyW9wOmGDiDse1vyBARiF_Ff[…]qu-lrBVBSG2D3FZQqwexkmg3GkXevCEettqzfdiTOLCIxatBAjxlNtjmaUsYw)
и к данным возможно прибавлять IV перед отправкой.

Главный вопрос: можно ли получить из структуры варианта 2 (из IV,DiverseData и ExportKey) сессионный ключ в формате, который можно будет передать в ФСС? Есть ли идеи как это сделать и как тут можно применить или не нужно DiverseData?

Отредактировано пользователем 23 марта 2022 г. 14:43:44(UTC)
 | Причина: Не указана


Offline

zlovrednaya_dgo

 

Оставлено
:

22 марта 2022 г. 23:14:56(UTC)

пока попробую вариант 1

Код:

var oEnvelopedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPEnvelopedData");
            yield oEnvelopedData.propset_Content(toChipher);
            var oRecipients = yield oEnvelopedData.Recipients;
            yield oRecipients.Add(oCertSignature);
            var encMessage = yield oEnvelopedData.Encrypt(cadesplugin.CADESCOM_ENCODE_BASE64);

В пермененной encMessage:
– похоже на сессионный ключ

– полагаю, что зашифрованные данные располагаются здесь. Непонятно они с идентификаторами должны быть переданы или нет

Отредактировано пользователем 22 марта 2022 г. 23:18:07(UTC)
 | Причина: Не указана


Offline

zlovrednaya_dgo

 

Оставлено
:

23 марта 2022 г. 13:44:34(UTC)

Пробую из зашифрованного CPEnvelopedData вытащить данные и ключ (шаг 1), преобразовать (шаг 2) и добавить в XML (шаг 3). Потом отправляю в ФСС (шаг 4)

шиг 1
1.1 вытаскиваю сессионный ключ (SesKey)
1.2 вытаскиваю IV (IV)
1.3 зашифрованные данные (CipherData)
вот эти данные все

шаг 2
2.1 соединяю данные CipherDataSum = ‘IV’ + ‘CipherData’ (как строки суммирую)
2.2 преобразовываю HEX to BASE64 п.2.1 и отдельно SesKey

шаг 3
3.1 Собираю XML
– сессионный ключ(SesKey) идет в EncryptedKey – KeyInfo – CipherData – CipherValue
– CipherDataSum идет в EncryptedKey – CipherData – CipherValue
– На место сертификата добавляю серт ФСС
получаю файл Как зашифровать файл CSP 5? encryptedfile.xml (24kb) загружен 3 раз(а).

шаг 4
отправляю в ФСС на тестовый контур https://eln-test.fss.ru/…OperationsLnService?WSDL

В ответ получаю ошибку:

Цитата:

oap:Serverru.fss.integration.ws.fault.v01.InternalException: Не удалось расшифровать сообщение. Возможно сообщение зашифровано на ключе отличном от ключа уполномоченного лица ФСС. Проверьте правильность и актуальность ключа уполномоченного лица ФСС.

Что может быть не так в последовательности 1-3?


Offline

two_oceans

 

Оставлено
:

28 марта 2022 г. 10:49:14(UTC)

Добрый день.
Коллега, ссылаться на сообщения 2-летней давности не много смысла: ФСС уже с тех пор поменяли немного спецификацию. Теперь там используется еще и эфемерная ключевая пара. Есть в одной из тем подправленный для Дельфи.

Смысл в том, что при отправке теперь “наш” контейнер вообще не нужен. Примерно так:
1) Генерируется дополнительная “эфемерная” ключевая пара, закрытый ключ из нее (вместо “ключа из постоянного контейнера”) и открытый ключ сертификата адресата идут на получение ключа согласования; открытый ключ будет прикреплен к зашифрованному сессионному ключу;
2) (как и при обычном методе) генерируется сессионный ключ (ТК26); сессионный ключ шифруется ключом согласования; повторяется для каждого следующего сертификата получателя – если отправителю нужно потом читать сообщение, то и в адрес отправителя тоже;
3) данные шифруются сессионным ключом;
4) в сообщение идет сертификат получателя (то есть не заменяем – сертификат ФСС), зашифрованный сессионный ключ (+ открытый ключ эфемерной пары в том же блоке BASЕ64), зашифрованные данные;
5) сообщение отправляется, а эфемерная пара уничтожается.

ФСС по сертификату находит свой закрытый ключ, комбинирует с открытым ключом эфемерной пары из сообщения = ключ согласования. Ключом согласования расшифровывается сессионный ключ. Сессионным ключом расшифровываются данные.

Поэтому скорее всего дело в “не таком” содержимом ключа (операции 1 не совсем те или ключ не ТК26 или вырезали мало/много).


Offline

zlovrednaya_dgo

 

Оставлено
:

28 марта 2022 г. 14:29:27(UTC)

В сообщении №3 этой темы вероятно была проблема с используемым сертификатом…
Также для ФСС 2.0 нужен сертификат ФСС в шифрованном сообщении + сертификат отправителя внутри подписанного сообщения в Header->X509Certificate.

Теперь у меня новая ошибка:

Вот так делаю шифр:
данные предварительно кодирую в base64

Код:

            var oEnvelopedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPEnvelopedData");
            yield oEnvelopedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
            yield oEnvelopedData.propset_Content(toChipher64);
            var oRecipients = yield oEnvelopedData.Recipients;
            yield oRecipients.Add(oCertSignature);
            var encMessage = (yield oEnvelopedData.Encrypt()).replace(new RegExp('(\r|\n)','g'),'');

Отсюда вытаскиваю данные (как и в сообщ.3).
Формирую XML и отправляю в ФСС.
Как зашифровать файл CSP 5? cpenveloped encrypted.xml (16kb) загружен 2 раз(а).

Результат – ошибка:

Цитата:

ru.fss.integration.ws.fault.v01.InternalException: Error in execution of data encrypting/decrypting operation. class org.apache.xml.security.encryption.XMLEncryptionException

Вот тут вот предположили, что ключ верный а данные – нет. Не знаю на сколько это верное предположение.


Offline

two_oceans

 

Оставлено
:

29 марта 2022 г. 8:27:02(UTC)

Цитата:

В сообщении №3 этой темы вероятно была проблема с используемым сертификатом…

Ну по крайней мере, собрано было с сертификатом ФСС. Хотя да, не тот сертификат адресата как раз бы дало такую ошибку, как и несколько других причин.

Сюда смотрели? Думаю, данным проектом как раз можно проверить расщифрование сообщения, если конечно зашифровать в адрес какого-то своего сертификата, а не для ФСС.
В подпапке архива есть еще и примеры защифрованного сообщения. По сборке XML на первый взгляд все верно.
Если смотреть только по длине – ключ длиной 232 символа в base64, с 2 заполнителями, то есть 172 байта в двоичном виде. В том проекте ключ как раз собирается в структуру длиной 172 байта (файл Crypto.pas), то есть как минимум по длине с ключом все нормально. Дальше надо смотреть на идентификаторы алгоритмов в блобе ключа и взаимное расположение частей, если они также совпадают, то ключ скорее всего верен и насчет него можно не волноваться. С другой стороны, если алгоритмы не те, то дело может быть именно в них.

Ошибка в расшифровке и “неверные данные” – есть свобода для перебора.
Суть в чем – если большая часть сообщения все же расшифруется верно тем проектом, то ключ точно верен, но надо смотреть на паддинг и IV. IV дает артефакты в начале (хорошо видно на XML когда вначале мусор 8 символов и/или съедены первые 8 символов), паддинг – артефакты в конце. Артефакты могут повторятся через 1024 байта. Съеденные 8 символов – признак, что IV вообще отсутствует.

Как зашифровать файл CSP 5?

КриптоПро CSP 5.0 — новое поколение криптопровайдера, развивающее три основные продуктовые линейки компании КриптоПро: КриптоПро CSP (классические токены и другие пассивные хранилища секретных ключей), КриптоПро ФКН CSP/Рутокен CSP (неизвлекаемыe ключи на токенах с защищенным обменом сообщениями) и КриптоПро DSS (ключи в облаке).

Все преимущества продуктов этих линеек не только сохраняются, но и приумножаются в КриптоПро CSP 5.0: шире список поддерживаемых платформ и алгоритмов, выше быстродействие, удобнее пользовательский интерфейс. Но главное — работа со всеми ключевыми носителями, включая ключи в облаке, теперь единообразна. Для перевода прикладной системы, в которой работал КриптоПро CSP любой из версий, на поддержку ключей в облаке или на новые носители с неизвлекаемыми ключами, не потребуется какая-либо переработка ПО — интерфейс доступа остаётся единым, и работа с ключом в облаке будет происходить точно таким же образом, как и с классическим ключевым носителем.

Скачать КриптоПро CSP
с ознакомительной полнофункциональной 90-дневной лицензией

Назначение КриптоПро CSP

  • Формирование и проверка электронной подписи.
  • Обеспечение конфиденциальности и контроля целостности информации посредством ее шифрования и имитозащиты.
  • Обеспечение аутентичности, конфиденциальности и имитозащиты соединений по протоколам TLS, и IPsec.
  • Контроль целостности системного и прикладного программного обеспечения для его защиты от несанкционированных изменений и нарушений доверенного функционирования.

Поддерживаемые алгоритмы

В КриптоПро CSP 5.0 наряду с российскими реализованы зарубежные криптографические алгоритмы. Теперь пользователи имеют возможность использовать привычные носители ключей для хранения секретных ключей RSA и ECDSA.

Электронная подпись

ГОСТ Р 34.10-2012 (ГОСТ 34.10-2018), ECDSA, RSA

Хэш-функции

ГОСТ Р 34.11-2012 (ГОСТ 34.11-2018), SHA-1, SHA-2

Шифрование

ГОСТ Р 34.12-2015 (ГОСТ 34.12-2018), ГОСТ Р 34.13-2015 (ГОСТ 34.13-2018), ГОСТ 28147-89, AES (128/192/256), 3DES, 3DES-112, DES, RC2, RC4

Таблица алгоритмов, поддерживаемых разными версиями КриптоПро CSP.

Поддерживаемые технологии хранения ключей

Как зашифровать файл CSP 5?

Облачный токен

В криптопровайдере КриптоПро CSP 5.0 впервые появилась возможность использования ключей, хранящихся на облачном сервисе КриптоПро DSS, через интерфейс CryptoAPI. Теперь ключи, хранимые в облаке, могут быть легко использованы как любыми пользовательскими приложениями, так и большинством приложений компании Microsoft.

Как зашифровать файл CSP 5?

Носители с неизвлекаемыми ключами и защищенным обменом сообщениями

В КриптоПро CSP 5.0 добавлена поддержка носителей с неизвлекаемыми ключами, реализующих протокол SESPAKE, позволяющий провести аутентификацию, не передавая в отрытом виде пароль пользователя, и установить шифрованный канал для обмена сообщений между криптопровайдером и носителем. Нарушитель, находящийся в канале между носителем и приложением пользователя, не может ни украсть пароль при аутентификации, ни подменить подписываемые данные. При использовании подобных носителей полностью решается проблема безопасной работы с неизвлекаемыми ключами.

Компании Актив, ИнфоКрипт и СмартПарк разработали новые защищенные токены, которые поддерживают данный протокол.

Список производителей и моделей поддерживаемых КриптоПро CSP 5.0 R2
Список производителей и моделей носителей с неизвлекаемыми ключами и защищенным обменом сообщениями поддерживаемых КриптоПро CSP 5.0 R2
Компания Носитель
Актив Рутокен ЭЦП 2.0 3000 (USB, Type-C, micro)
Смарт-карта Рутокен ЭЦП 3.0
Инфокрипт InfoCrypt Token++
СмартПарк Форос 2. Базис

Как зашифровать файл CSP 5?

Носители с неизвлекаемыми ключами

Многие пользователи хотят иметь возможность работать с неизвлекаемыми ключами, но при этом не обновлять токены до уровня ФКН. Специально для них в провайдер добавлена поддержка популярных ключевых носителей Рутокен ЭЦП 2.0, JaCarta-2 ГОСТ и InfoCrypt VPN-Key-TLS.

Список производителей и моделей поддерживаемых КриптоПро CSP 5.0 R2
Список производителей и моделей носителей с неизвлекаемыми ключами поддерживаемых КриптоПро CSP 5.0 R2
Компания Носитель
ISBC Esmart Token ГОСТ
Актив Рутокен PINPad
Рутокен ЭЦП (USB, micro, Flash)
Рутокен ЭЦП 2.0 (USB, micro, Flash, Touch)
Рутокен ЭЦП 2.0 2100 (USB, Type-C, micro)
Рутокен ЭЦП 2.0 2151
Рутокен ЭЦП PKI (USB, Type-C, micro)
Рутокен ЭЦП 2.0 Bluetooth
Рутокен TLS (исполнение 1)
Смарт-карта Рутокен ЭЦП SC
Смарт-карта Рутокен ЭЦП 2.0 2100
Смарт-карта Рутокен ЭЦП 2.0 2151
Аладдин Р.Д.JaCarta-2 ГОСТ, JaСarta SF/ГОСТ
JaCarta-2 SE/PKI/ГОСТ
Инфокрипт InfoCrypt Token++ TLS
InfoCrypt VPN-Key-TLS

Как зашифровать файл CSP 5?

Классические пассивные USB-токены и смарт-карты

Большинство пользователей предпочитает быстрые, дешевые и удобные решения для хранения ключей. Как правило, предпочтение отдаётся токенам и смарт-картам без криптографических сопроцессоров. Как и в предыдущих версиях провайдера, в КриптоПро CSP 5.0 сохранена поддержка всех совместимых носителей производства компаний Актив, Аладдин Р.Д., Gemalto/SafeNet, Multisoft, NovaCard, Rosan, Alioth, MorphoKST и СмартПарк.

Кроме того, конечно, как и раньше поддерживаются способы хранения ключей в реестре Windows, на жестком диске, на флеш-накопителях на всех платформах.

Список производителей и моделей поддерживаемых КриптоПро CSP 5.0 R2
Список производителей и моделей классических пассивных USB-токенов и смарт-карт поддерживаемых КриптоПро CSP 5.0 R2
Компания Носитель
AliothSCOne Series (v5/v6)
GemaltoOptelio Contactless Dxx Rx
Optelio Dxx FXR3 Java
Optelio G257
Optelio MPH150
ISBCEsmart Token
MorphoKSTMorphoKST
NovaCardCosmo
RosanG&D element V14 / V15
G&D 3.45 / 4.42 / 4.44 / 4.45 / 4.65 / 4.80
Kona 2200s / 251 / 151s / 261 / 2320
Kona2 S2120s / C2304 / D1080
SafeNeteToken Java Pro JC
eToken 4100
eToken 5100
eToken 5110
eToken 5105
eToken 5205
АктивРутокен S
Рутокен КП
Рутокен Lite
Смарт-карта Рутокен Lite
Аладдин Р.Д.JaCarta ГОСТ
JaCarta PKI
JaCarta PRO
JaCarta LT
DallasTouch Memory (iButton) DS199x
ИнфокриптInfoCrypt Token++ lite
МультисофтMS_Key исп.8 Ангара
MS_Key ESMART исп.5
СмартПаркФорос
Форос 2
R301 Форос
Оскар
Оскар 2
Рутокен Магистра

Инструменты КриптоПро

В составе КриптоПро CSP 5.0 появилось кроссплатформенное (Windows/Linux/macOS) графическое приложение — «Инструменты КриптоПро» («CryptoPro Tools»).

Основная идея — предоставить возможность пользователям удобно решать типичные задачи. Все основные функции доступны в простом интерфейсе — при этом мы реализовали и режим для опытных пользователей, открывающий дополнительные возможности.

С помощью Инструментов КриптоПро решаются задачи управления контейнерами, смарт-картами и настройками криптопровайдеров, а также мы добавили возможность создания и проверки электронной подписи PKCS#7.

Как зашифровать файл CSP 5?

Поддерживаемое программное обеспечение

КриптоПро CSP позволяет быстро и безопасно использовать российские криптографические алгоритмы в следующих стандартных приложениях:

  • Офисный пакет Microsoft Office
  • Почтовый сервер Microsoft Exchange и клиент Microsoft Outlook
  • Продукты Adobe
  • Браузеры Яндекс.Браузер, Спутник, Internet Explorer, Chromium GOST
  • Средство формирования и проверки подписи приложений Microsoft Authenticode
  • Веб-серверы Microsoft IIS, nginx, Apache
  • Средства удаленных рабочих столов Microsoft Remote Desktop Services
  • Microsoft Active Directory

Как зашифровать файл CSP 5?

Интеграция с платформой КриптоПро

С первого же релиза обеспечивается поддержка и совместимость со всеми нашими продуктами:

  • КриптоПро УЦ
  • Службы УЦ
  • КриптоПро ЭЦП
  • КриптоПро IPsec
  • КриптоПро EFS
  • КриптоПро .NET
  • КриптоПро Java CSP
  • КриптоПро NGate

Операционные системы и аппаратные платформы

Традиционно мы работаем в непревзойдённо широком спектре систем:

  • Microsoft Windows
  • macOS
  • Linux
  • FreeBSD
  • Solaris
  • AIX
  • iOS
  • Android
  • Sailfish OS
  • Аврора

аппаратных платформ:

  • Intel, AMD
  • PowerPC
  • ARM (в т.ч. Байкал-М, Apple M1)
  • MIPS (Байкал-Т)
  • VLIW (Эльбрус)
  • Sparc

и виртуальных сред:

  • Microsoft Hyper-V
  • VMWare
  • Oracle Virtual Box
  • RHEV

Таблица операционных систем, поддерживаемых разными версиями КриптоПро CSP.

Классификация операционных систем для использования КриптоПро CSP c лицензией на рабочее место и сервер.

Интерфейсы для встраивания

Для встраивания в приложения на всех платформах КриптоПро CSP доступен через стандартные интерфейсы для криптографических средств:

  • Microsoft CryptoAPI
  • PKCS#11
  • OpenSSL engine
  • Java CSP (Java Cryptography Architecture)
  • Qt SSL

Как зашифровать файл CSP 5?

Производительность на любой вкус

Многолетний опыт разработки позволяет нам охватить все решения от миниатюрных ARM-плат, таких как Raspberry PI, до многопроцессорных серверов на базе Intel Xeon, AMD EPYC и PowerPC, отлично масштабируя производительность.

Как зашифровать файл CSP 5?

Регулирующие документы

Когда нужно переносить сертификаты в другое место?

И так давайте рассмотрим по каким причинам у вас может появиться необходимость в копировании ваших ЭЦП в другое место.

  1. На текущем физическом компьютере начинает умирать жесткий диск или SSD накопитель (Как проверить жизненные показатели жесткого диска), очень частая история и жизненная, когда люди теряли все свои данные, из-за банальной жадности в покупке нового оборудования и элементарного незнания принципов резервного копирования.
  2. У вас производится модернизация оборудования, его улучшение и вам нужно перенести все сертификаты с закрытыми ключами на другую систему
  3. Вы создали отдельный сервер, в виде виртуальной машины, где будут находится все ваши сертификаты и с ними смогут работать все необходимые сотрудники, терминал для бухгалтерии. Простой пример СБИС, и когда у вас 10-20 организаций.

Установка закрытого ключа в реестр

Теперь когда ваш закрытый ключ находится в реестре, давайте установим личный сертификат. Для этого откройте на вкладке “Сервис” кнопку “Посмотреть сертификат в контейнере”

Установка закрытого ключа в реестр-01

Далее в окне “онтейнер закрытого ключа” нажмите кнопку “Обзор”.

Установка закрытого ключа в реестр-03

И выберите сертификат из реестра, он будет с тем именем, что вы ему задавали.

установка сертификата в реестр криптопро-02

Нажимаем далее.

Установка закрытого ключа в реестр-04

После чего производится установка закрытого ключа в реестр, через соответствующую кнопку.

Установка закрытого ключа в реестр-05

Видим, что сертификат был установлен в хранилище “Личные” текущего пользователя.Как видите, было очень просто скопировать закрытый ключ в реестр операционной системы.

Копирование закрытого ключа из КриптоПро

Это самый простой способ, и будет актуальным при небольшом количестве контейнеров с закрытыми ключами. Чтобы выполнить перенос сертификатов из реестра, откройте ваш КриптоПРО, вкладка “Сервис”, нажимаем кнопку “Сервис”, далее через кнопку “Обзор”, откройте “Выбор ключевого контейнера” и укажите, какой сертификат вы будите переносить. В моем примере это контейнер “Копия сертификата в реестре (Семин Иван)”.

перенос сертификатов из реестра-01

Нажимаем “Далее”, вас попросят задать новое имя контейнера с закрытым ключом, введите понятное для себя, для удобства.

перенос сертификатов из реестра-02

У вас откроется окно с выбором носителей, вы можете выбрать либо токен, либо флешку для переноса на другое место. У меня это внешний жесткий диск Z:\.

перенос сертификатов из реестра-03

Задаем обязательно пароль, с точки зрения безопасности, так как файлы в таком виде просто скомпрометировать.

перенос сертификатов из реестра-04

Все, на выходе я получил папку со случайным названием и набором ключей в формате key.

перенос сертификатов из реестра-05

Если вы пытаетесь копировать сертификат с токена, то в ряде случаев у вас может появиться ошибка: Ошибка копирования контейнера. У вас нет разрешений на экспорт ключа, потому что при создании ключа не был установлен соответствующий флаг. Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии.

Ошибка копирования контейнера

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

Если вы получили ошибку копирования контейнера. У вас нет разрешений на экспорт ключа, то метод с КРиптоПРО вам не поможет

Перенос сертификатов в виде пошаговой инструкции

Первые два пункта я описывать тут не стану, так как я уже это подробно рассказывал, посмотрите по ссылкам. Я расскажу, об остальных методах и начнем мы с классического КриптоПРО.

Данный метод подойдет для тех ситуаций, когда у вас один или 2 сертификата (ЭЦП). Если же их несколько десятков, а это не такая уж и редкость, то такой путь вам не подходит, и там придется выбирать 4-й метод.

Важное замечание. Я буду переносить контейнеры закрытого ключа, которые хранятся в реестре. Если вы храните их только на токене, то переносить контейнеры вам не надо, только сертификаты

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

Какие есть варианты по копированию контейнеров закрытых ключей?

  • Если мы создаем единый терминал (Виртуальную машину), на которой будут коллективно работать пользователи, то можно произвести конвертирование физической тачки в виртуальную машину
  • Если будет просто замена жесткого диска, то можно произвести его клонирование или перенос системы на SSD с помощью специальных утилит
  • Можно воспользоваться утилитой КриптоПРО
  • Воспользоваться экспортом из реестра Windows.

Где хранится закрытый ключ в реестре Windows

После процедуры добавления сертификата в реестр КриптоПРО, я бы хотел показать, где вы все это дело можете посмотреть. Ранее я вам рассказывал, о том как добавить оснастку сертификаты. Нас будет интересовать раздел “Сертификаты пользователя – Личное”.

скопировать закрытый ключ в реестр-01

Либо вы можете зайти в свойства Internet Explorer на вкладку “Содержание’. Потом перейти в пункт “Сертификаты”, где у вас будут отображаться все ваши SSL сертификаты, и те, что КриптоПРО скопировал в реестр операционной системы.

сертификаты криптопро в реестре

Если нужно найти ветку реестра с закрытым ключом, то я вам приводил уже пример в статье, когда я переносил ЭЦП с компьютера на компьютер.

\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\Ваш SID, как его определить читайте по ссылке\Keys\Копия сертификата в реестре (Семин Иван)

как скопировать рутокен в реестр

Про копирование ЭЦП с закрытыми ключами мы разобрали, теперь ситуация обратная.

Перенос сертификатов из реестра без КриптоПРО

Существуют методы экспортировать закрытый ключ и без изспользования утилиты КриптоПРО. Представим себе ситуацию, что у вас на него кончилась лицензия и вы не успели ее купить. Вам нужно сдать отчетность в СБИС. Вы развернули CryptoPRO на другом компьютере, так как он позволяет 3 месяца бесплатного использования, осталось для СБИС выполнить перенос сертификатов, которые у вас в реестре Windows.

У нас два варианта:

  • Использование оснастки mmc-Сертификаты пользователя.
  • Использование Internet Explore

Как открыть оснастку сертификаты я уже подробно рассказывал, посмотрите. Откройте там контейнер “Личное – Сертификаты”. Если у вас в контейнере не один сертификат с одинаковым именем, такое может быть, то откройте сертификат в оснастке mmc и в КриптоПРО и сравните серийные номера сертификата.

перенос сертификатов-01

В Internet Explore, откройте “Свойства браузера – Содержание – Сертификаты”

Экспорт сертификата из реестра Windows

Теперь нам необходимо его экспортировать, в оснастке “Сертификаты”, через правый клик, это можно сделать, в Internet Explorer, сразу видно кнопку, экспорт.

Экспорт закрытого контейнера из реестра

У вас откроется мастер переноса сертификатов, на первом шаге, просто нажимаем далее. После чего вас спросят, что вы хотите экспортировать, выбираем пункт “да, экспортировать закрытый ключ вместе с сертификатом”

перенос сертификатов

Если ваш закрытый ключ запрещено экспортировать, то эта кнопка будет не активна, и можете сразу закрывать данный метод и переходить к следующему.

сбис перенос сертификата

Следующим этапом в мастере экспорта сертификатов, вам необходимо выбрать формат выгрузки, это будет PFX архив.

контур перенос сертификатов

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

сбис перенос сертификата-2

Мастер экспорта сертификатов, выведет вам сводные данные, нажимаем “Готово”.

перенос сертификата на рутокен-01

Отрываем локацию, куда вы его выгрузили, и найдите свой pfx архив.

перенос сертификата на рутокен-02

Теперь вам нужно еще выгрузить открытый ключ в формате cer, для этого так же зайдите в мастер экспорта, но на этот раз выберите “Нет, не экспортировать закрытый ключ”.

перенос сертификата на рутокен-03

Выберите формат файла “X.509 (.CER) в кодировке DEP”, задайте ему имя и место сохранения. На выходе у вас появятся два файла.

перенос сертификата на рутокен-04

Одни открытый ключ в формате cer и закрытый ключ в формате pfx. Этого набора вам будет достаточно, чтобы перенести сертификаты СБИС, Контура и остальных программ на другой компьютер.

перенос сертификата на рутокен-05

Теперь перенесите эти файлы на другое рабочее место и просто запустите, через простой двойной клик. У вас откроется мастер импорта сертификатов, на первом окне выберите нужное вам хранилище, я в своем примере оставлю “Текущий пользователь”.

Установка перенесенного сертификата-01

На втором шаге проверяем импортируемый сертификат.

Установка перенесенного сертификата-02

Указываем пароль, который задавали при выгрузке.

Установка перенесенного сертификата-03

Оставляем автоматический выбор хранилища на основе типа сертификатов.

Установка перенесенного сертификата-04

Готово. Со вторым файлом то же самое. После чего у вас будут перенесены нужные вам ключи и сам сертификат, можно работать.

Когда нужно копировать сертификаты КриптоПРО в реестр

Существует ряд задач, когда удобно иметь вашу ЭЦП подпись в реестре Windows:

1. При тестировании настроенного окружения для торговых площадок, для входа на которые используется ЭЦП подпись. 2. Когда у вас виртуальная инфраструктура и нет возможности, произвести проброс USB устройств по локальной сети 3. Ситуации, когда КриптоПРО не видит USB токена 4. Ситуации, когда USB ключей очень много и нужно работать одновременно с 5-ю и более ключами, примером может служить программа по сдачи отчетности СБИС

Как скопировать сертификат в реестр КриптоПРО

CryptoPRo позволяет производить установку с копирование закрытого ключа (сертификата) в реестр Windows.

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

И так, у меня есть USB токен SafeNet, на который я выпустил тестовую ЭЦП, ее я буду переносить вместе с закрытым ключом в реестр Windows. Открываем утилиту CryptoPRO с правами администратора.

как скопировать сертификат в реестр криптопро-01

Переходите на вкладку “Сервис” и нажимаете “скопировать”

как скопировать сертификат в реестр криптопро-02

У вас откроется окно “Контейнер закрытого ключа”, тут вам нужно нажать кнопку “Обзор”, что бы выбрать ваш сертификат, который вы хотите скопировать в реестр.

как скопировать сертификат в реестр криптопро-03

В итоге у вас в поле “Имя ключевого контейнера” отобразиться абракадабровое имя.

Как скопировать ключ в реестр-01

Нажимаем далее.

Как скопировать ключ в реестр-02

У вас появится окно с вводом пин-кода от вашего USB токена.

Как скопировать ключ в реестр-03

Теперь вам необходимо задать имя для копируемого сертификата в реестр Windows, КриптоПРО благо, это позволяет. Я назвал его “Копия сертификата в реестре (Семин Иван)”

Задаем имя сертификата в реестре

Теперь вам необходимо положить сертификаты КриптоПРО в реестр, для этого выбираем соответствующий пункт и нажимаем “Ок”.

сертификаты криптопро в реестре-01

На следующем шаге вам предложат установить новый пароль на ваш контейнер с закрытым ключом, советую установить его и желательно посложнее.

сертификаты криптопро в реестре-02

Перенос КриптоПро, ключей ЭЦП, сертификатов с одного компьютера на другой

Инструкция по переносу лицензии КриптоПро, закрытых ключей ЭЦП и сертификатов с одного компьютера на другой.

1. Перенос лицензии криптопро.

Серийный номер КриптоПро CSP 3.6 находится в ветке реестра

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\05480A45343B0B0429E4860F13549069\InstallProperties]

в значении параметра ProductID (имя раздела 05480A45343B0B0429E4860F13549069 может оказаться другим).

2. Перенос закрытых ключей ЭЦП. (Имеются ввиду ЭЦП хранящиеся в реестре, для ключей хранящихся на флешках, и токенах действие не требуется.)

2.1 Узнать SID текущего пользователя (нужен пользователь у которого ключи).

Способ 1: командой

whoami /user

Способ 2:Найти ветку реестра[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList].Выбрать SID (имеет вид, например, S-1-5-21-1993962763-492894223-1202660629-6195), и посмотреть ProfileImagePath, в конце строки найдете имя пользователя, которому принадлежит этот SID.

2.2. Для 32 битных систем нужно экспортировать ветку [HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\USERS\SID_текущего_пользователя\Keys] в reg-файл.
Для 64-битных систем нужно экспортировать ветку [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro\Settings\USERS\SID_текущего_пользователя\Keys].

Эти ветки доступны только для текущего пользователя и при попытке открыть их от имени другого получим: “Не удается открыть <SID>. Не удается открыть этот раздел из-за ошибки. Сведения: Отказано в доступе.”  Если у вас нет возможности залогиниться под нужным пользователем, то вам поможет утилита Марка Руссиновича psexec (скачать можно с течнета или отсюда) , которая позволяет запускать процессы от имени системной учетки. С помощью psexec запускаем regedit от имени системы:

psexec -i -d -s c:\windows\regedit.exe

и нам становятся доступны все разделы. Этот же трюк спасет если система вообще не загружается, нужно скопировать файл C:\Windows\System32\config\SOFTWARE и загрузить его как куст реестра, главное, чтобы файл не был поврежден.

2.3. В reg-файле меняем через автозамену SID_текущего_пользователя, на SID пользователя в новой сисмеме.

2.4. Запускаем reg-файл, после этого все готово, но необходимо будет заново установить личные сертификаты для того что бы привязать сертификаты к контейнерам. Если не видно контейнеров, то неправильно указали SID_пользователя, т.к. контейнеры видны только под тем пользователем, под SID’ом которого они находятся.

Если перенести ключи данным способом не получается можно скопировать ЭЦП на флешку (КриптоПро: Перенос ключей ЭЦП с дискет на флешку или в реестр).

3. Перенос сертификатов.

Способ 1. Экспорт-импорт сертификатов. Выполнить certmgr.msc. В открывшемся окне переходим Личное->Сертификаты. Далее правой кнопкой по сертификату -> Все задачи -> Экспорт… В мастере экспорта нажимаем далее, выбираем экспортировать закрытый ключ или нет, выбираем нужный формат и нажимаем далее. Импорт личных сертификатов, которые используются в КриптоПро, нужно делать через

Панель управления -&gt; КриптоПро -&gt; вкладка “Сервис” -&gt; “Установить личный сертификат”.

При установке личных сертификатов средствами Windows не выполняется привязка закрытого ключа ЭЦП, и, очевидно, работать ничего не будет.

Способ 2. Установка сертификатов из контейнеров ЭЦП. При установке личного сертификата в КриптоПро версии 3.6 и выше существует возможность скопировать сертификат в контейнер закрытого ключа. Данная процедура позволяет значительно облегчить процесс переноса. Если сертификат установлен в контейнер закрытого ключа, не нужно ни чего экспортировать, достаточно просто перенести контейнеры, а потом зайти в

Панель управления -&gt; КриптоПро -&gt; вкладка “Сервис” -&gt;”Просмотреть сертификаты в контейнере”

выбрать нужный контейнер и нажать кнопки “Далее” и “Установить”.

В том случае, если нужно перенести 100500 ключей сразу, поможет одна из составляющих пакета PKI Tools, которая автоматизирует процесс установки сертификатов из контейнеров. Скачать пакет можно отсюда или отсюда.

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

Массовый перенос ключей и сертификатов CryptoPro на другой компьютер

Выше описанные методы хороши, когда у вас один или 5 ключиков в реестре, а как быть если их десятки. Помню лет 5 назад, когда я еще был младшим администратором, то я очень часто устанавливал электронные цифровые подписи главбуху, так как она работала в СБИС++ и сдавала там постоянно отчетность по огромному количеству организаций, по типу рога и копыта. Держать кучу токенов было не вариант, и для таких вещей у нее все хранилось в реестре и копия сертификатов была на флешке в сейфе. Флешку потом потеряли, встал вопрос сделать резервную копию всего и плюс обновить систему, в виду нового компьютера, на операционной системе Windows 8.1. ЭЦП было штук 50, а так как я ценю свое время, то и искал методы, выполнить это быстрее, к счастью я его нашел.

Заключался метод переноса сертификатов из реестра, в выгрузке веток и подмене SID значения, но обо всем по порядку. О том, как посмотреть SID пользователя и что это такое я рассказывал.

Открываете командную строку cmd и вводите команду:

криптопро перенос сертификатов-01

Вот это S-1-5-21-551888299-3078463796-888888888-46162 и есть SID, вашей учетной записи. Теперь когда вы его знаете, то вам нужно выгрузить ваши закрытые ключи из реестра Windows. Для этого откройте вот такую ветку:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\Номер вашего SID, который мы узнали\Keys

криптопро перенос сертификатов-02

В контейнере Keys, вы найдете все ваши закрытые ключи от ЭЦП. С правой стороны вы увидите файлы: * header.key * masks.key * masks2.key * name.key * primary.key * primary2.key

Щелкаем правым кликом по контейнеру Keys и экспортируем его.

криптопро перенос сертификатов-03

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

C:\Users\имя вашего пользователя\AppData\Roaming\Microsoft\SystemCertificates\My

Не забывайте только подставить своего пользователя, эта папка может быть скрытой, поэтому включите скрытые папки и файлы в вашей ОС. Все содержимое этой папки вам нужно перенести на другой компьютер, только уже в папку другого, нужного пользователя.

перенос сертификатов-05

Как только вы поместили на новом компьютере папку Key, вы можете перенести реестровую выгрузку. Сохраненный файл в формате reg, вы должны открыть в любом текстовом редакторе.

перенос сертификатов-01

Как я показывал выше, определите SID нового пользователя, скопируйте его полностью и замените им значение в файле reg, я отметил это стрелками.

SID начинается с S-1 и так далее

перенос сертификатов-02

Все сохраняйте файл и запускайте его, у вас будет начат перенос сертификатов (закрытых ключей), подтверждаем действие.

перенос сертификатов-03

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

перенос сертификатов-04

Как скопировать эцп из реестра на флешку

Предположим, что у вас стоит задача скопировать контейнер из реестра, так как он уже там, то он экспортируемый, для этого открываем криптопро, “Сервис-Скопировать”

Выбираете “Обзор” и ваш сертификат из реестра.

скопировать сертификат из реестра на флешку-02

Задаете ему новое имя, удобное для себя.

скопировать сертификат из реестра на флешку-03

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

скопировать сертификат из реестра на флешку-04

Обязательно задайте новый пароль.

скопировать сертификат из реестра на флешку-05

Ну и собственно теперь открывайте вашу флешку и лицезрейте перенесенный на него контейнер, он будет состоять из файликов с форматом key.

скопировать сертификат из реестра на флешку-06

Как видите КриптоПРО, это конвейер, который позволяет легко скопировать сертификат из реестра на флешку или даже дискету, если они еще используются.

Читайте также:  Как подписать котировочную заявку ЭЦП: требования, отклонение
Оцените статью
ЭЦП Эксперт
Добавить комментарий