что такое ключ обмена криптопро

Читаем контейнер закрытого ключа КриптоПро средствами OpenSSL

Речь пойдет о файлах primary.key, masks.key и header.key, которые лежат в директории ххххх.000 на флешке. Данные файлы входят в состав криптоконтейнера закрытого ключа электронной подписи криптопровайдера КриптоПро, формат которого нигде не опубликован. Целью данной статьи является чтение контейнера и преобразование закрытого ключа в формат, который может быть прочитан в библиотеке OpenSSL. Долгое время было распространено ошибочное суждение, что достаточно сделать нечто вида (primary_key XOR masks_key) и мы получим закрытый ключ в чистом (raw) виде, однако забегая вперед, можно утверждать, что в КриптоПро было применено более сложное преобразование, в худшем случае состоящее из более чем 2000 (двух тысяч) операций хеширования.

Файл primary.key

Содержит 32 байта ключа в формате Asn1. Это только половина ключа, полный ключ получается при делении этого числа по модулю Q на маску. Поле, хранящее модуль Q в библиотеке OpenSSL имеет название order. Маска лежит в файле masks.key:

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

Файл masks.key

Содержит 32 байта маски ключа в формате Asn1, зашифрованного на ключе хранения pwd_key. Далее 12 байт «затравочной» информации для генерации ключа хранения pwd_key, если криптоконтейнер защищен паролем, то пароль также участвует в генерации ключа хранения.

Далее контрольная сумма (имитозащита) 4 байта. Контрольной информацией для простоты мы пользоваться не будем, общий контроль будет осуществляться путем генерации открытого ключа и сравнения первых 8 байт полученного ключа с соответствующим полем из файла header.key:

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

Файл header.key

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

Читаем закрытый ключ и конвертируем

Основную работу выполняют следующие 3 функции:

1. Создаем ключ хранения исходя из 12-ти байтовой «соли» и пароля.

2. Расшифровываем основной ключ на ключе хранения.

3. Делим ключ с маской на маску.

Но так как в библиотеке OpenSLL операция деления по модулю традиционно отсутствует, пользуемся операцией взятия обратного числа и умножением.

Сборка утилиты конвертирования ключа

Далее сборка исходников описана для Linux версии.

Версию для Windows можно скачать отсюда там же есть сертификаты и закрытый ключ для тестирования, для сборки потребуется бесплатный компилятор Borland C++ 5.5

Компиляция OpenSSL библиотеки

После скачивания и распаковки исходных текстов openssl в целевой директории выполняем команды:

Получаем готовую библиотеку libcrypto.a в текущей директории.
Также потребуются заголовочные файлы из директорий engines/ccgost и include.

Компиляция privkey.c

Формирование файла закрытого ключа private.key

Тестовый закрытый ключ в криптоконтейнере lp-9a0fe.000, сертификат открытого ключа signer.cer и другие файлы для тестирования можно взять отсюда

Получаем результат работы:

Cохраняем в private.key

Пользуемся закрытым ключом private.key для подписывания файла file.txt

Проверяем подпись

Все работает просто замечательно!

Спасибо за внимание. Это была моя первая статья на хабре.

Источник

Исправление ошибки отсутствия в контейнере закрытого ключа сертификата ЭП

Из нашей статьи вы узнаете:

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

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

Что может послужить причиной такой ошибки

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

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

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

Решение ошибки: отсутствие электронного сертификата в контейнере закрытого ключа

Для начала запускаем «КриптоПро» нажатием кнопки «Пуск». Затем выбираем «Настройку», в возникающем на мониторе окне заходим в опцию панели управления, далее «сервис – установить личный сертификат».

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

Далее, через кнопку «обзор» указываем путь, где сохранен открытый ключ – файл с расширением *.cert или *.crt

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

Жмём «Далее», в мастере установки сертификата мы увидим путь, который указывали до нашего сертификата.

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

Нам отображается информация, содержащаяся в открытом ключе на пользователя, жмём «далее»

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

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

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

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

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

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

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

В случае успешной установки КриптоПро выдаст окно с информацией об окончании процедуры и жмём «Готово»

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

Затем появится окно с подтверждением данной операции, жмём «ДА»

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

В следующем окне увидим информацию о том, что процесс окончен успешно. Сертификат установлен в контейнер закрытого ключа.

что такое ключ обмена криптопро. Смотреть фото что такое ключ обмена криптопро. Смотреть картинку что такое ключ обмена криптопро. Картинка про что такое ключ обмена криптопро. Фото что такое ключ обмена криптопро

Особенности версий КриптоПро

С января 2019 года квалифицированные сертификаты могут выпускаться только по ГОСТ 2012, выпуск по другому ГОСТу прекращен. Мы об этом писали ранее в статье. Важно помнить, что версии криптопро на ГОСТ 2012 работают только с версии 4.0 и выше. Все старые версии КриптоПро, для нормальной работы, потребуется обновить или заменить на актуальную. Сделать это нужно не позднее 31 декабря 2019 года.

Источник

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

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