- Что такое ключевой контейнер? зачем нужен пароль на контейнер?
- Основные понятия (если есть аббревиатуры, понятия и т.д.)
- Генерация ЭЦП
- Возможные значения имени контейнера:
- Как в linux/unix установить сертификаты?
- Как видите предпосылок и вариантов переноса сертификатов из реестра на другой компьютер, предостаточно.
- Как посмотреть список закрытых ключей?
- Как проверить, работоспособен ли контейнер с закрытыми ключами?
- Как сделать новые закрытые ключи?
- Как скопировать ключи с дискеты/флешки на hdimage?
- Как скопировать контейнер/закрытую часть ключа?
- Как установить контейнер закрытого ключа в криптопро
- Как установить криптопро эцп browser plug-in
- Когда нужно переносить сертификаты в другое место?
- Компиляция openssl библиотеки
- Криптопро csp: как создать ключевой контейнер
- Массовый перенос ключей и сертификатов cryptopro на другой компьютер
- Перенос сертификатов в виде пошаговой инструкции
- Проверяем подпись
- Сборка утилиты конвертирования ключа
- Установить рутокен в криптопро
- Установка контейнера криптопро
- Установка сертификатов безопасности, поддерживающих гост
- Установка через меню «установить личный сертификат».
- Файл masks.key
- Файл primary.key
- Формирование файла закрытого ключа private.key
- Читаем закрытый ключ и конвертируем
- Читаем контейнер закрытого ключа криптопро средствами openssl
Что такое ключевой контейнер? зачем нужен пароль на контейнер?
Ключевые контейнеры – это способ хранения закрытых ключей, реализованный в нашем продукте. Их физическое представление зависит от типа ключевого носителя (на флешке, дискете, жестком диске это директория в которой хранится набор файлов с ключевой информацией; в случае со смарт-картами – файлы в защищенной памяти смарт-карты, в случае с реестром – раздел реестра, содержащий некоторые параметры). Пароль на контейнер имеет разное значение для смарт-карт и для носителей, не являющихся смарт-картами.
Источник
Основные понятия (если есть аббревиатуры, понятия и т.д.)
Ключевой носитель (Электронный идентификатор) — это компактное устройство в виде USB-брелка, которое служит для авторизации пользователя в сети или на локальном компьютере, защиты электронной переписки, безопасного удаленного доступа к информационным ресурсам, а также надежного хранения персональных данных.
Защищенный носитель — это компактное устройство, предназначенное для безопасного хранения электронной подписи. Представляет собой устройство в виде USB-флешки с защищенной паролем картой памяти, на которой хранится информация для создания электронной подписи.
Рекомендации по решению проблемы зависят от типа ключевого носителя, на котором расположен контейнер:
Flash-накопитель
Если в качестве ключевого носителя используется flash-накопитель, необходимо выполнить следующие шаги:
1. Убедиться, что в что в корне носителя находится папка, содержащая файлы: header, masks, masks2, name, primary, primary2. Файлы должны иметь расширение.key, а формат названия папки должен быть следующим: xxxxxx.000
Если каких-либо файлов не хватает или их формат неверен, то, возможно, контейнер закрытого ключа был поврежден или удален.
Rutoken
Если в качестве ключевого носителя используется защищённый носитель Rutoken, необходимо выполнить следующие шаги:
1. Убедиться, что на рутокене горит лампочка. Если лампочка не горит, то следует воспользоваться следующими рекомендациями.
2. Обновить драйвер Rutoken (см. Как обновить драйвер Rutoken?).
3. Следует убедиться, что на Rutoken содержатся ключевые контейнеры. Для этого необходимо проверить количество свободной памяти на носителе, выполнив следующие шаги:
Если рутокен не виден в пункте «Считыватели» или при нажатии на кнопку «Информация» появляется сообщение «Состояние памяти ruToken не изменилось», значит, носитель был поврежден, необходимо обратиться к вашему менеджеру
В качестве ключевого носителя в сервисных центрах выдаются рутокены объемом памяти около 30000 байт. Один контейнер занимает объем порядка 4 Кб. Объем свободной памяти рутокена, содержащего один контейнер, составляет порядка 26 000 байт, двух контейнеров — 22 000 байт и т д.
Если объем свободной памяти рутокена составляет более 29-30 000 байт, то ключевые контейнеры на нем отсутствуют.
Реестр
Если в качестве ключевого носителя используется считыватель Реестр, необходимо выполнить следующие действия:
Убедиться, что в КриптоПро CSP настроен считыватель «Реестр». Для этого:
Если считыватель отсутствует, его необходимо добавить.
В качестве считывателей (устройств — носителей ключевой информации) могут использоваться flash-накопители, реестр, смарт-карты
Иногда некоторые считыватели могут быть отключены в КриптоПро CSP. Чтобы работать с такими носителями, нужно добавить соответствующие считыватели.
Чтобы добавить считыватели: 1. Запустите КриптоПро CSP от имени администратора.
2. На вкладке «Оборудование» нажмите кнопку «Настроить считыватели».
3. В появившемся окне нажмите «Добавить».
4. В Мастере установки считывателей выберите, какой считыватель добавить: «Все съемные диски», «Реестр», «Все считыватели смарт-карт».
5. Нажмите «Далее», задайте имя считывателя при необходимости, нажмите «Готово».
В некоторых случаях для корректной работы добавленного считывателя потребуется перезагрузка.
Если ни одно из предложенных выше решений не поможет устранить проблему, возможно, ключевой носитель был поврежден, вам необходимо будет обратиться к вашему менеджеру. Восстановить данные с поврежденного защищенного носителя или реестра невозможно.
Остались вопросы?
Отдел технической поддержки
Источник
Генерация ЭЦП
Под ЭЦП обычно понимается отсоединенная (detached) подпись в формате
. Т.е помимо самой подписи, в сообщение внедряется вся цепочка сертификатов.
CryptoPro не предоставляет отдельного пакета CMS для легкой генерации криптографических сообщений, но в принципе в пакете JCP есть все необходимое, чтобы сформировать корректное сообщение самостоятельно. Код по большей части взят из примеров, которые идут в JCP.
Возможные значения имени контейнера:
| Значение | Описание |
|---|---|
| NULL | Контейнер по умолчанию. Если конфигурация «КриптоПро CSP» настроена на хранение ключей на диске, то именем контейнера по умолчанию является имя пользователя ОС, вызвавшего CSP. |
| CONTAINER | Имя контейнера. |
| MEDIAUNIQUE | Контейнер по умолчанию на носителе (MEDIAUNIQUE). |
| MEDIAUNIQUECONTAINER | Контейнер на заданном носителе (MEDIAUNIQUE). Если носитель не поддерживает уникальных имен, то уникальное имя носителя отсутствует, но символ опускать в этом случае нельзя. Если носитель поддерживает длинные имена (например, реестр), то имя контейнера в этом случае совпадает FOLDER. |
| MEDIAUNIQUEFOLDERCRC | Контейнер на заданном носителе (MEDIAUNIQUE) в папке FOLDER с именем CRC16 которого в нижнем регистре в кодировке UTF8 совпадает с CRC. Если носитель не поддерживает уникальных имен, то уникальное имя носителя отсутствует, но символ опускать в этом случае нельзя. Данный формат не может использоваться для создания контейнеров. |
| \.READERMEDIAUNIQUE | Контейнер по умолчанию на носителе (MEDIAUNIQUE), с заданным именем считывателя. |
| \.READERMEDIAUNIQUECONTAINER | Контейнер на заданном носителе (MEDIAUNIQUE), с заданным именем считывателя. Если носитель не поддерживает уникальных имен, то уникальное имя носителя отсутствует, но символ опускать в этом случае нельзя. |
| \.READERMEDIAUNIQUEFOLDERCRC | Контейнер на заданном носителе (MEDIAUNIQUE) в папке FOLDER, с заданным именем считывателя и CRC16 имени контейнера в нижнем регистре в кодировке UTF8 совпадает с CRC. Если носитель не поддерживает уникальных имен, то уникальное имя носителя отсутствует, но символ опускать в этом случае нельзя. Если носитель поддерживает длинные имена (например, реестр), то имя контейнера в этом случае совпадает с FOLDER. Данный формат не может использоваться для создания контейнеров. |
| \.READERCONTAINER | Имя контейнера на заданном считывателе. |
| \.READER | Контейнер по умолчанию на заданном считывателе. |
Во всех перечисленных выше формах (кроме NULL), оконечный символ не влияет на смысл контейнера.
Полный список поддерживаемых считывателей и типов носителей можно найти в Формуляре к конкретной версии «КриптоПро CSP»
Источник
Как в linux/unix установить сертификаты?
Основной утилитой для работы с сертификатами является certmgr (лежит в /opt/cprocsp/bin/ ). К ней есть man: man 8 certmgr
Как видите предпосылок и вариантов переноса сертификатов из реестра на другой компьютер, предостаточно.
Какие есть варианты по копированию контейнеров закрытых ключей?
Как посмотреть список закрытых ключей?
Список контейнеров с закрытыми ключами можно посмотреть утилитой csptest. Она находится в директории /opt/cprocsp/bin/
В полученном списке имена контейнеров будут представлены в том виде, в котором их воспринимают все бинарные утилиты, входящие в дистрибутив CSP (\. ).
Как проверить, работоспособен ли контейнер с закрытыми ключами?
Открыть(проверить) контейнер можно утилитой csptest. Она находится в директории /opt/cprocsp/bin/ :
где имя считывателя: HDIMAGE, если используете жесткий диск для хранения ключей FLASH, если используете флешку FAT12_0, если используете дискету
Как сделать новые закрытые ключи?
Обычно ключи создаются вместе с запросом на сертификат. Если Вам требуется создать ключи и запрос на сертификат, воспользуйтесь утилитой cryptcp(документация на неё входит в состав документации на CSP, см. раздел «Работа с запросами на сертификат»).
Создание контейнера компьютера:
Как скопировать ключи с дискеты/флешки на hdimage?
Скопируйте ключи(директорию с именем в формате 8.3) из корня дискеты или флешки в директорию /var/opt/cprocsp/keys/имя_пользователя
При этом необходимо проследить чтобы: — владельцем файлов был пользователь, в диретории с именем которого расположен контейнер(от его имени будет осуществляться работа с ключами); — чтобы на директорию с ключами были выставлены права, разрешаюшие владельцу всё, остальным ничего; — чтобы на файлы были выставлены права, разершающие владельцу по крайней мере чтение и запись, остальным ничего.
Как скопировать контейнер/закрытую часть ключа?
Если для работы используется дискета или flash-накопитель, копирование можно выполнить средствами Windows (этот способ подходит для версий КриптоПро CSP не ниже 3.0). Папку с закрытым ключом (и файл сертификата — открытый ключ, если он есть) необходимо поместить в корень дискеты (flash-накопителя).
Пример закрытого ключа — папки с шестью файлами, и открытого ключа — файла с расширением .cer.
Копирование контейнера также можно выполнить с помощью КриптоПро CSP. Для этого необходимо выполнить следующие шаги:Как правило, в закрытом ключе присутствует открытый ключ (файл header.key в этом случае будет весить больше 1 Кб). В этом случае копирование открытого ключа выполнять не обязательно.
Как установить контейнер закрытого ключа в криптопро
Для установки контейнера закрытого ключа потребуется перейти на вкладку Сервис и выбрать пункт «Скопировать контейнеры». Вставив накопитель с ключевым контейнером, нужно будет его выбрать в окне обзора. Выбрав контейнер и нажав «Ок», нужно будет задать имя контейнера. Затем в окне выбора считывателя потребуется выбрать устройство и создать пароль.
Как установить криптопро эцп browser plug-in
Плагин используется при создании и верификации электронной подписи, при работе на веб-страницах, когда используется ПО КриптоПро. Легко встраиваемый ЭЦП Browser plug-in поддерживает возможность работать с любым из браузеров, которые поддерживает сценарии JavaScript.
Для того чтобы установить КриптоПро ЭЦП Browser plug-in потребуется один из современных браузеров, который должен быть установлен на компьютере. Необходимо найти установочный файл и запустить его. Следуя указания Мастера Установки выполнить все этапы установки.
Владелец цифрового автографа (далее – ЭЦП, ЭП) может дистанционно запрашивать у удостоверяющего центра (далее – УЦ) сертификат ключа проверки электронной подписи (далее – СКПЭП) или его обновление. Внеплановая замена производится только при определенных обстоятельствах: требуется коррекция сведений, использованных для оформления текущего документа (сменился руководитель организации, в связи с переездом был перерегистрирован юридический адрес) или до конца периода актуальности СКПЭП остается меньше двух месяцев.
Когда нужно переносить сертификаты в другое место?
И так давайте рассмотрим по каким причинам у вас может появиться необходимость в копировании ваших ЭЦП в другое место.
- На текущем физическом компьютере начинает умирать жесткий диск или SSD накопитель (Как проверить жизненные показатели жесткого диска), очень частая история и жизненная, когда люди теряли все свои данные, из-за банальной жадности в покупке нового оборудования и элементарного незнания принципов резервного копирования.
- У вас производится модернизация оборудования, его улучшение и вам нужно перенести все сертификаты с закрытыми ключами на другую систему
- Вы создали отдельный сервер, в виде виртуальной машины, где будут находится все ваши сертификаты и с ними смогут работать все необходимые сотрудники, терминал для бухгалтерии. Простой пример СБИС, и когда у вас 10-20 организаций.
Компиляция openssl библиотеки
После скачивания и распаковки исходных текстов openssl в целевой директории выполняем команды:
Получаем готовую библиотеку libcrypto.a в текущей директории. Также потребуются заголовочные файлы из директорий engines/ccgost и include.
Криптопро csp: как создать ключевой контейнер
Ключевой контейнер – это «запароленный» каталог в хранилище (реестре) или системной библиотеке «операционки» (далее – ОС) или на защищенном ключевом USB-носителе: токене, смарт-карте. Он считается одним из инструментов защиты криптографических средств генерации и верификации ЭП, лицензий, сертификатов, паролей и другой личной информации.
Криптометод организации и иерархии персональных данных предусматривает обязательное использование защищенного каталога как части комплекса гарантий сохранности и конфиденциальности сведений, необходимых для активации ЭП. Фактически, создавая новую папку для хранения СКПЭП, доступ к которой обеспечивается путем ввода пароля, пользователь формирует новое хранилище.
Помимо выполнения основных функций – генерации и верификации ЭП – КриптоПро CSP «умеет» функционировать как зависимая компонента: приложение можно вызывать из сторонних программ. Например, через веб-интерфейс сайта УЦ, в который заявитель обратился за услугой обновления СКПЭП.
Испытать работу генератора ключей и ознакомиться с процедурой запроса СКПЭП можно на странице тестового удостоверяющего центра разработчика программного модуля. Ниже мы пошагово опишем этот процесс.
Внимание! Если вы запрашиваете СКПЭП, который планируете использовать при работе с электронной почтой, указывайте «Область применения ключа». Также учитывайте: вы не получите доступа к криптофункциям для e-mail, если указанный адрес электронной почты не совпадает с зарегистрированным в MS Outlook Express.
Чтобы получить возможность применять выданный по удаленному запросу СКПЭП при обмене данными по протоколу TLS, перейдите к разделу «Область применения ключа» и укажите его тип: «Сертификат аутентификации клиента».
Массовый перенос ключей и сертификатов cryptopro на другой компьютер
Выше описанные методы хороши, когда у вас один или 5 ключиков в реестре, а как быть если их десятки. Помню лет 5 назад, когда я еще был младшим администратором, то я очень часто устанавливал электронные цифровые подписи главбуху, так как она работала в СБИС и сдавала там постоянно отчетность по огромному количеству организаций, по типу рога и копыта.
Держать кучу токенов было не вариант, и для таких вещей у нее все хранилось в реестре и копия сертификатов была на флешке в сейфе. Флешку потом потеряли, встал вопрос сделать резервную копию всего и плюс обновить систему, в виду нового компьютера, на операционной системе Windows 8.1. ЭЦП было штук 50, а так как я ценю свое время, то и искал методы, выполнить это быстрее, к счастью я его нашел.
Заключался метод переноса сертификатов из реестра, в выгрузке веток и подмене SID значения, но обо всем по порядку. О том, как посмотреть SID пользователя и что это такое я рассказывал.
Открываете командную строку cmd и вводите команду:
Перенос сертификатов в виде пошаговой инструкции
Первые два пункта я описывать тут не стану, так как я уже это подробно рассказывал, посмотрите по ссылкам. Я расскажу, об остальных методах и начнем мы с классического КриптоПРО.
Данный метод подойдет для тех ситуаций, когда у вас один или 2 сертификата (ЭЦП). Если же их несколько десятков, а это не такая уж и редкость, то такой путь вам не подходит, и там придется выбирать 4-й метод.
Важное замечание. Я буду переносить контейнеры закрытого ключа, которые хранятся в реестре. Если вы храните их только на токене, то переносить контейнеры вам не надо, только сертификаты
Проверяем подпись
Все работает просто замечательно!
Спасибо за внимание. Это была моя первая статья на хабре.
Источник
Проблема может быть в том, что нельзя создавать два контейнера с одинаковым именем.
Попробуйте назвать копию как-нибудь иначе, например:
Сборка утилиты конвертирования ключа
Далее сборка исходников описана для Linux версии.
Установить рутокен в криптопро
Благодаря использованию Рутокен можно надежно защитить информацию от несанкционированного доступа. Защищенная файловая система сохранит в безопасности данные благодаря криптографическому шифрованию. Создано специально ПО, которое объединяет возможности двух программ — КриптоПро Рутокен CSP. Объединив идентификатор и СКЗИ получился надежный модуль, на котором можно безопасно хранить данные.
Так как все действия выполняются внутри ключа-идентификатора и протокол обмена данными защищен уникальной технологией, рационально использовать подобный дистрибутив при работе с электронными документами высокой важности. Если использовать отдельно Рутокен, необходимо прежде всего установить драйвера на ПО.
Нельзя подключать идентификатор до установки драйверов. После инсталляции потребуется установка модулей поддержки для КриптоПро. Пройдя этапы подготовки, можно подключать ключ Рутокен. Затем следует запустить программу КриптоПро и во вкладке Оборудование настроить считыватели. Для работы идентификатора нужно выбрать пункт «Все считыватели смарт-карт» и нажать «Далее».
Установка контейнера криптопро
Для установки контейнера должен быть установлен и верифицирован сертификат в Личном Хранилище/Кабинете. После это нужно выполнить действия, описанные выше.
Для самостоятельного создания ключевого контейнера одним из вариантов будет создание тестового варианта на сайте тестового Удостоверяющего Центра. Здесь можно получить сертификат открытого ключа проверки ЭП. Для этого необходимо будет создать открытый и закрытый ключи и данные подтверждающие связь сертификата и его владельца.
Установка сертификатов безопасности, поддерживающих гост

ТРЕБУЕМЫЙ НАБОР ФАЙЛОВ
Для установки набора ключей и сертификатов потребуется следующий набор файлов:
а) корневой сертификат удостоверяющего центра (УЦ), например, root.crt;
б) список отзыва сертификатов (CRL), выпущенный УЦ, например, root.crl;
в) контейнер закрытого ключа для web-сервера, выпущенный УЦ, например, каталог «serverkey.000», включающий в себя следующие файлы:
- header.key;
- masks.key;
- masks2.key;
- name.key;
- primary.key;
- primary2.key.
г) контейнер закрытого ключа для каждого пользователя, например, каталоги «developer.000» для одного из пользователей, имеющий тот же состав, что контейнер ключей для сервера (см. п. «в»).
Все сертификаты и контейнеры должны поддерживать алгоритм шифрования ГОСТ Р 34.
Все сертификаты и контейнеры должны быть перенесены на отчуждаемый носитель (дискету, USB-накопитель). Можно использовать утилиту-эмулятор внешнего накопителя.
На компьютере должно быть установлено ПО КриптоПро CSP, включая консоль «КриптоПро CSP» и консоль управления сертификатами «Сертификаты».
УСТАНОВКА КОРНЕВОГО СЕРТИФИКАТА УЦ
Запустите консоль «Сертификаты» из состава ПО КриптоПро. Перейдите к узлу «Сертификаты (локальный компьютер) — Trusted Root Certification Authorities — Registry — Certificates» и из контекстного меню выберите пункт «All Tasks — Import».
В открывшемся мастере выберите файл корневого сертификата УЦ (в нашем случае «root.crt»). Проверьте правильность размещения сертификата: сертификат должен размещаться в разделе доверенных корневых удостоверяющих центров в реестре (Trusted Root Certification AuthoritiesRegistry).
Подтвердите правильность выбранных параметров и произведите импорт. Обновите список сертификатов. В разделе «Сертификаты (локальный компьютер) — Trusted Root Certification Authorities — Registry — Certificates» должен появиться сертификат УЦ.
УСТАНОВКА СПИСКА ОТЗЫВА
Выберите файл списка отзыва (CRL), например, «root.crl». Вызовите контекстное меню и выберите пункт «Install CRL».
В открывшемся мастере укажите автоматическое определение хранилища сертификатов на основе типа сертификата. Подтвердите параметры операции и завершите установку.
УСТАНОВКА КОНТЕЙНЕРА КЛЮЧА И СЕРТИФИКАТА СЕРВЕРА
Запустите консоль «КриптоПро CSP» с правами администратора. Перейдите на вкладку «Сервис». В разделе «Контейнер закрытого ключа» нажмите кнопку «Скопировать…».
В открывшемся мастере выберите контейнер ключа сервера на отчуждаемом носителе, например, «serverkey». Укажите, что имя задаёт контейнер компьютера. Если потребуется, укажите пароль на контейнер (при желании можно указать флаг сохранения пароля).
Далее укажите имя ключевого контейнера, в котором будет храниться ключ в реестре, например, «serverkey-local». Имя не должно совпадать с исходным именем контейнера и именами других существующих контейнеров. Укажите, что имя задаёт контейнер компьютера.
При запросе нового значения пароля укажите новый пароль и подтвердите его. Завершите копирование ключевого контейнера. После этого мастер закроется.
В консоли «КриптоПро CSP» на вкладке «Сервис» в разделе «Сертификаты в контейнере закрытого ключа» нажмите кнопку «Посмотреть сертификаты в контейнере». В открывшемся мастере укажите, что имя задаёт контейнер компьютера. Затем нажмите кнопку «Обзор…» и выберите только что созданный контейнер. Нажмите кнопку «Далее». Мастер должен показать параметры сертификата.
Нажмите кнопку «Установить» для установки сертификата серфера. После успешной установки сертификат сервера должен появиться в списке сертификатов в разделе «Сертификаты (локальный компьютер) — Personal — Registry — Certificates».
После установки сертификата на вкладке «Сервис» в разделе «Контейнер закрытого ключа» нажмите кнопку «Протестировать…». Укажите опцию «Имя задаёт контейнер для компьютера» и выберите установленный контейнер. При переходе по кнопке «Далее» на запрос пароля введите соответствующее значение и укажите флаг «Запомнить пароль». При правильном указании пароля мастер вернёт информацию о ключе.
УСТАНОВКА КОНТЕЙНЕРА КЛЮЧА И СЕРТИФИКАТА ПОЛЬЗОВАТЕЛЯ
Установка контейнера ключа и сертификата пользователя производится аналогично установке контейнера ключа и сертификата сервера.
Пользователь, на которого был оформлен сертификат, может являться пользователем прикладного ПО, а не компьютера. В этом случае, возможно, потребуется установить один пользовательский сертификат для разных пользователей компьютера. Также может потребоваться установить сертификат пользователя в хранилище локального компьютера.
Установка контейнера для пользователя отличается от установки для компьютера только указанием соответствующей опции при указании имени контейнера.
При установке одного и того же контейнера и сертификата для разных пользователей и для компьютера нужно каждый раз задавать уникальное имя для нового контейнера, например, «developer-local» для имени контейнера компьютера и «developer-<имя пользователя>» — для имени контейнера конкретного пользователя. Здесь «developer» — имя исходного контейнера ключа пользователя.
При установке сертификата выбирайте соответствующий контейнер. Для установки сертификата для компьютера следует указывать контейнер компьютера, например, «developer-local». Для установки сертификата для конкретного пользователя — соответственно контейнер этого пользователя «developer-<имя пользователя>».
После установки всех контейнеров и сертификатов протестируйте каждый контейнер, сохраняя вводимые пароли.
НАСТРОЙКА IIS
Откройте менеджер ISS. Выберите сервер. В разделе «Server Certificates» укажите сертификат сервера.
Перейдите на требуемый сайт. В панели справа выберите пункт «Bindings…». Добавьте настройку для протокола https, указав сертификат сервера.
Выберите пункт «Advanced Settings…» и в параметре Enabled Protocol укажите значение «http,https».
Установка через меню «установить личный сертификат».
1. Для установки сертификата этим способом Вам понадобится файл сертификата (файл с расширением.cer).
2. В меню Пуск выберите пункт «КРИПТО-ПРО», запустите приложение «КриптоПро CSP»
3. Перейдите на вкладку «Сервис» и нажмите кнопку «Установить личный сертификат»:
4. В следующем окне нажмите кнопку Обзор, чтобы выбрать файл сертификата. Укажите путь к файлу сертификата и нажмите кнопку Открыть (в нашем примере файл сертификата находится на Рабочем столе):
5. В следующем окне нажмите кнопку Далее; в окне Сертификат для установки нажмите Далее.
6. Поставьте галку в окне Найти контейнер автоматически (в нашем примере контейнер находится в Реестре компьютера) и нажмите Далее:
7. В следующем окне отметьте пункт Установить сертификат (цепочку сертификатов) в контейнер и нажмите Далее:
8. В окне Завершение мастера установки личного сертификата нажмите Готово.
9. Если КриптоПро CSP запрашивает pin-код от контейнера, введите нужный код или попробуйте стандартные pin-коды носителей:
10. Если откроется сообщение «Этот сертификат уже присутствует в хранилище сертификатов. Заменить существующий сертификат новым, с проставленной ссылкой на закрытый ключ?», нажмите Да:
11. Сертификат установлен. Можно закрыть все открытые окна КриптоПро.
Остались вопросы?
Отдел технической поддержки
Источник
Имя контейнера является строкой, заканчивающейся нулем, идентифицирующей носитель ключевой информации.
Может состоять из следующих частей:
Файл masks.key
Содержит 32 байта маски ключа в формате Asn1, зашифрованного на ключе хранения pwd_key. Далее 12 байт «затравочной» информации для генерации ключа хранения pwd_key, если криптоконтейнер защищен паролем, то пароль также участвует в генерации ключа хранения.
Далее контрольная сумма (имитозащита) 4 байта. Контрольной информацией для простоты мы пользоваться не будем, общий контроль будет осуществляться путем генерации открытого ключа и сравнения первых 8 байт полученного ключа с соответствующим полем из файла header.key:
Файл primary.key
Содержит 32 байта ключа в формате Asn1. Это только половина ключа, полный ключ получается при делении этого числа по модулю Q на маску. Поле, хранящее модуль Q в библиотеке OpenSSL имеет название order. Маска лежит в файле masks.key:
Формирование файла закрытого ключа private.key
Тестовый закрытый ключ в криптоконтейнере lp-9a0fe.000, сертификат открытого ключа signer.cer и другие файлы для тестирования можно взять отсюда
Получаем результат работы:
Cохраняем в private.key
Читаем закрытый ключ и конвертируем
Основную работу выполняют следующие 3 функции:
1. Создаем ключ хранения исходя из 12-ти байтовой «соли» и пароля.
2. Расшифровываем основной ключ на ключе хранения.
3. Делим ключ с маской на маску.
Но так как в библиотеке OpenSLL операция деления по модулю традиционно отсутствует, пользуемся операцией взятия обратного числа и умножением.
Читаем контейнер закрытого ключа криптопро средствами openssl
Речь пойдет о файлах primary.key, masks.key и header.key, которые лежат в директории ххххх.000 на флешке. Данные файлы входят в состав криптоконтейнера закрытого ключа электронной подписи криптопровайдера КриптоПро, формат которого нигде не опубликован.
Целью данной статьи является чтение контейнера и преобразование закрытого ключа в формат, который может быть прочитан в библиотеке OpenSSL. Долгое время было распространено ошибочное суждение, что достаточно сделать нечто вида (primary_key XOR masks_key) и мы получим закрытый ключ в чистом (raw) виде, однако забегая вперед, можно утверждать, что в КриптоПро было применено более сложное преобразование, в худшем случае состоящее из более чем 2000 (двух тысяч) операций хеширования.
