Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Egor Soldatov  
#1 Оставлено : 18 ноября 2020 г. 9:29:25(UTC)
Egor Soldatov

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.11.2020(UTC)
Сообщений: 4
Российская Федерация

Нужно подключить ЕСИА к порталу. Решил воспользоваться модулем https://github.com/ekapusta/oauth2-esia. Для отправки запроса там необходимы отдельно закрытый и открытый ключ. Есть флешка с ЭЦП. Оттуда извлекается файл формата pfx. Извлекал как Крипто ПРО CSP, так и сторонними сервисами. Алгоритм подписи ГОСТ Р 34.11-2012. После этого ни одна утилита не может работать с PFX файлом так, чтобы получить оттуда закрытый ключ. Каким образом мне получить закрытый ключ отдельным файлом?
Offline two_oceans  
#2 Оставлено : 18 ноября 2020 г. 11:37:38(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,219
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 80 раз
Поблагодарили: 286 раз в 270 постах
Добрый день.
Для облегчения задачи использования pfx сделайте сначала копию контейнера, на которую не установлен пароль, затем уже эту копию экспортируйте в pfx. После этого некоторые программы уже смогут что-то сделать - суть в том, что уровень шифрования резко упадет.

Штатных способов получить ключ в открытом виде из контейнера КриптоПро нет. Это как бы повод задуматься правильно ли ставите задачу и не пытаетесь ли скрестить коноплю с арбузом. Поясню:
1) либо генерируете ключ сразу в openssl, поддерживающей гост и пользуетесь описанным решением с гитхаба (либо другими решениями требующими ключ в открытом виде). Минус: получать сертификат придется заново;
2) либо используете gostengy чтобы openssl смогла обратиться к КриптоПро. Будет ли работать с тем решением - не факт, но вполне возможно если учесть небольшую специфику. Например, gostengy не принимает путь к файлу, но вместо пути можно указать CN/емайл/отпечаток/идентификатор ключа сертификата в хранилище "Личные" либо имя контейнера КриптоПро. Вытащить сам ключ так нельзя, вместо реального ключа возвращается его дескриптор. Однако если во все операции gostengy передавать этот дескриптор будет работать как будто это ключ;
3) либо используете штатные решения, работающие с КриптоПро для описанной задачи. Есть на Джаве, есть на .NET, в том числе есть рабочие исходники на этом форуме, в которых была мелкая ошибка с форматированием даты. Сможете же наверно дату отформатировать;

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

Отредактировано пользователем 18 ноября 2020 г. 11:43:46(UTC)  | Причина: Не указана

Offline Egor Soldatov  
#3 Оставлено : 18 ноября 2020 г. 11:49:06(UTC)
Egor Soldatov

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.11.2020(UTC)
Сообщений: 4
Российская Федерация

Автор: two_oceans Перейти к цитате
Добрый день.
Для облегчения задачи использования pfx сделайте сначала копию контейнера, на которую не установлен пароль, затем уже эту копию экспортируйте в pfx. После этого некоторые программы уже смогут что-то сделать - суть в том, что уровень шифрования резко упадет.

Штатных способов получить ключ в открытом виде из контейнера КриптоПро нет. Это как бы повод задуматься правильно ли ставите задачу и не пытаетесь ли скрестить коноплю с арбузом. Поясню:
1) либо генерируете ключ сразу в openssl, поддерживающей гост и пользуетесь описанным решением с гитхаба (либо другими решениями требующими ключ в открытом виде). Минус: получать сертификат придется заново;
2) либо используете gostengy чтобы openssl смогла обратиться к КриптоПро. Будет ли работать с тем решением - не факт, но вполне возможно если учесть небольшую специфику. Например, gostengy не принимает путь к файлу, но вместо пути можно указать CN/емайл/отпечаток/идентификатор ключа сертификата в хранилище "Личные" либо имя контейнера КриптоПро. Вытащить сам ключ так нельзя, вместо реального ключа возвращается его дескриптор. Однако если во все операции gostengy передавать этот дескриптор будет работать как будто это ключ;
3) либо используете штатные решения, работающие с КриптоПро для описанной задачи. Есть на Джаве, есть на .NET, в том числе есть рабочие исходники на этом форуме, в которых была мелкая ошибка с форматированием даты. Сможете же наверно дату отформатировать;

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


Добрый день! Спасибо за наводку, долго возился, конечно, с этой темой. Не подскажете примерно направление поиска по третьему пункту? Находил какую-то самописную утилиту на Джаве, но она прям нерабочая была. А веток ну очень много на форуме, был бы благодарен за направление в поиске!
Offline two_oceans  
#4 Оставлено : 18 ноября 2020 г. 12:33:25(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,219
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 80 раз
Поблагодарили: 286 раз в 270 постах
К сожалению, точно не запомнил в какой теме, по поиску client_secret нашлись вот такие, правда в них вызывают утилиту командной строки для подсчета подписи.

https://www.cryptopro.ru...&m=117921#post117921 (формат даты неверен, cryptcp)
https://www.cryptopro.ru...&m=111956#post111956 (cryptcp)
https://www.cryptopro.ru...&m=118582#post118582 (нет точного кода, но наводка для джавы)

исходник немного другой утилиты csptest тоже был (вопрос был по подписи честного знака, но функция почти универсальная, вся соль в том, что передавать в параметры функции)
https://www.cryptopro.ru...&m=120075#post120075

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.