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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline 4eIIIupKo  
#1 Оставлено : 7 августа 2018 г. 15:39:04(UTC)
4eIIIupKo

Статус: Активный участник

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

Сказал «Спасибо»: 26 раз
Как получить ключи в форматах pem
Цитата:

Bag Attributes
localKeyID: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
friendlyName: cp_exported
Key Attributes
X509v3 Key Usage: 10
-----BEGIN PRIVATE KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXX
-----END PRIVATE KEY-----


Нормально OPENSSL я собрать под виндой и ubuntu не смог!
Пацаны это блин наши налоги! Создайте уже нормальный продукт который будет нормально работать!
Ответы получаем долго, вообщем целая куча претензий! Кормите детей за наши налоги, а нам сидеть изучать все с нуля!
Сидеть напильником пилить все... Я не учился на шифрование, мне это не нужно! Почему у других компаний, нормальное API!
Быстрая поддержка и т. д.! Лобируйте в своих каналах простоту!

Отредактировано пользователем 7 августа 2018 г. 15:44:47(UTC)  | Причина: Не указана

Offline two_oceans  
#2 Оставлено : 8 августа 2018 г. 8:29:27(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 90 раз
Поблагодарили: 318 раз в 300 постах
Сколько экспрессии. Если вдруг прям позарез нужен ключ в формате pem, то на Ваш страх и риск можете поискать программку privkey (аргументы: путь до папки контейнера и пин-код). Из минусов - не вытаскивает ключ из реестра и токенов, только с флешек и жестких дисков; изначальная версия поддерживает только гост-2001, ключи гост-2012 не поддерживаются. Ссылку давать не буду - безопасность pem очень сомнительна.

Хорошо подумайте перед вытаскиванием ключа в pem, ведь для большинства операций Openssl наличие ключа в формате pem в принципе не нужно при установленном КриптоПро, можно просто через engine подключиться к ядру КриптоПро и работать с контейнерами КриптоПро, в том числе реестром или токенами. Если операция openssl поддерживает аргумент -keyform ENGINE, то:
1. Устанавливаются пакеты КриптоПро CSP;
2. Настраиваете работу engine подправив конфиг openssl. Нужен или gost_capi для Openssl 1.0, поддерживает гост-2001 (версии постарее и гост-94) или gostengy для openssl 1.1.0, поддерживает гост-2001 и гост-2012. Если не нужно TLS 1.2 можно обойтись стандартной версией Openssl, не собирая версию от КриптоПро. Такие версии для Windows есть уже в собранном виде (хотя небезопасно брать неизвестно кем собранную), а в ubuntu скорее всего уже встроенная есть (только engine собрать);
2. Проверяете, что engine загружен
Код:
openssl engine
и GOST есть в выводе
Код:
openssl ciphers -v
можете отвильтровать последний через
Код:
| grep -i gost
(*nix) или
Код:
 | findstr "GOST"
(Windows);
3. Используете в операции openssl связку параметров
Код:
-engine gostengy -keyform ENGINE -key xx
где xx отпечаток сертификата или "c:"+имя контейнера в КриптоПро.


Для других решений на основе openssl - Apache nginx stunnel также поддерживается получение ключа из engine с указанием отпечатка или имени контейнера. Подробнее смотрите в соответствующих темах здесь.
thanks 1 пользователь поблагодарил two_oceans за этот пост.
4eIIIupKo оставлено 08.08.2018(UTC)
Offline 4eIIIupKo  
#3 Оставлено : 8 августа 2018 г. 9:00:21(UTC)
4eIIIupKo

Статус: Активный участник

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

Сказал «Спасибо»: 26 раз
Автор: two_oceans Перейти к цитате
Сколько экспрессии. Если вдруг прям позарез нужен ключ в формате pem, то на Ваш страх и риск можете поискать программку privkey (аргументы: путь до папки контейнера и пин-код). Из минусов - не вытаскивает ключ из реестра и токенов, только с флешек и жестких дисков; изначальная версия поддерживает только гост-2001, ключи гост-2012 не поддерживаются. Ссылку давать не буду - безопасность pem очень сомнительна.

Хорошо подумайте перед вытаскиванием ключа в pem, ведь для большинства операций Openssl наличие ключа в формате pem в принципе не нужно при установленном КриптоПро, можно просто через engine подключиться к ядру КриптоПро и работать с контейнерами КриптоПро, в том числе реестром или токенами. Если операция openssl поддерживает аргумент -keyform ENGINE, то:
1. Устанавливаются пакеты КриптоПро CSP;
2. Настраиваете работу engine подправив конфиг openssl. Нужен или gost_capi для Openssl 1.0, поддерживает гост-2001 (версии постарее и гост-94) или gostengy для openssl 1.1.0, поддерживает гост-2001 и гост-2012. Если не нужно TLS 1.2 можно обойтись стандартной версией Openssl, не собирая версию от КриптоПро. Такие версии для Windows есть уже в собранном виде (хотя небезопасно брать неизвестно кем собранную), а в ubuntu скорее всего уже встроенная есть (только engine собрать);
2. Проверяете, что engine загружен
Код:
openssl engine
и GOST есть в выводе
Код:
openssl ciphers -v
можете отвильтровать последний через
Код:
| grep -i gost
(*nix) или
Код:
 | findstr "GOST"
(Windows);
3. Используете в операции openssl связку параметров
Код:
-engine gostengy -keyform ENGINE -key xx
где xx отпечаток сертификата или "c:"+имя контейнера в КриптоПро.


Для других решений на основе openssl - Apache nginx stunnel также поддерживается получение ключа из engine с указанием отпечатка или имени контейнера. Подробнее смотрите в соответствующих темах здесь.


Понятно, что сомнительна! Но мне нужна для stunnel! 2001 я смогу выдрать дома после 16 августа!
Нужны 2012! Которые будут работать с 1 января 2019 года! PEM нужен для связи с сайтом zakupki.gov! Делаю ВСРЗ!
Offline two_oceans  
#4 Оставлено : 8 августа 2018 г. 13:25:03(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 90 раз
Поблагодарили: 318 раз в 300 постах
У себя (на Windows) пробно настроил соединение с самим zakupki.gov.ru через версию stunnel с поддержкой msspi интерфейса (там же есть версия постарее "КриптоПро Stunnel", но она не поддерживает renegotiating, который нужен ЕИС госзакупок), просто указал отпечаток сертификата и пин-код (насчет пин-кода в конфигурации конечно тоже небезопасно)
Код:
output=d:\programs\stunnel2\stun-cli.log
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
debug = 5

[cert_eis_zakaz] 
client = yes
accept=127.0.0.1:719
connect=zakupki.gov.ru:443
cert=отпечаток_сертификата
pin=пин-код
verify=0
без использования параметра key, сертификат находится в "Личные" по отпечатку, ключ по связке с сертификатом, соединение устанавливается, после расшифровки ЕИС работает даже в браузерах без поддержки ГОСТ. Вот только ЕИС имеет нехорошую привычку в каждом перенаправлении и каждой ссылке прописывать не относительный, а полный адрес и потому с
Код:
http://127.0.0.1:719
регулярно браузер перекидывает на
Код:
https://zakupki.gov.ru
Конечно это можно решить при помощи прокси. Если вход по нескольким сертификатам, то каждому нужен свой порт. Запуск как службы не проверял, скорее всего потребуется установка сертификата с привязкой к контейнеру в хранилище "Личные" компьютера, но возможны и другие варианты. В новых версиях под Windows есть 2 приложения - консольное для установки как службы и с графическим интерфейсом для обычного запуска (в окне показывает журнал, что удобно для отладки). С гост-2012 не знаю где сейчас можно проверить.
Offline basid  
#5 Оставлено : 8 августа 2018 г. 13:31:07(UTC)
basid

Статус: Активный участник

Группы: Участники
Зарегистрирован: 21.11.2010(UTC)
Сообщений: 839

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 110 раз в 99 постах
Автор: two_oceans Перейти к цитате
С гост-2012 не знаю где сейчас можно проверить.
Дык - стенд открытого тестирования ...
С произвольными сертификатами не получится (стенд доверяет только самому себе), а без авторизации по сертификатам или на тестовых сертификатах КриптоПРО - какие проблемы?
Offline two_oceans  
#6 Оставлено : 8 августа 2018 г. 14:46:00(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 90 раз
Поблагодарили: 318 раз в 300 постах
Без авторизации для данной задачи не подойдет, как раз надо проверить использование пользовательских сертификатов гост-2012. А они пока только на тестовом УЦ, АУЦ не спешат с переходом.

Спасибо, что ссылку на стенд напомнили. Про стенд я тоже мельком подумал, но короткая жизнь сертификатов тестового УЦ несколько отбивает желание им пользоваться. Имеет смысл получать тестовый сертификат, когда уже ПО готово и осталось только его отладить, иначе пока ПО пишешь сертификаты уже "протухнут", а это значит нужно новое получение и новое заполнение настроек ПО. Также необходимость устанавливать тестовые УЦ в доверенные центры сертификации - потенциальная дыра в безопасности.

Ну и вообще, хотелось бы проверить как будет взаимодействие по гост-2012 с другими вендорами, не только между stunnel-msspi от Криптопро и стендом от Криптопро. Получается, что проблем нет, но есть другие соображения отложить стенд в конец списка.
Offline basid  
#7 Оставлено : 8 августа 2018 г. 15:00:29(UTC)
basid

Статус: Активный участник

Группы: Участники
Зарегистрирован: 21.11.2010(UTC)
Сообщений: 839

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 110 раз в 99 постах
Автор: two_oceans Перейти к цитате
Ну и вообще, хотелось бы проверить как будет взаимодействие по гост-2012 с другими вендорами
ViPNet CSP 4.2.8, Windows 7 SP1+ - нормально взаимодействует в ослике и хромиум-гост.
С минимальными "предосторожностями" ViPNet CSP и КриптоПРО CSP нормально сосуществуют и работают.

ViPNet CSP 4.2.8 уже сертифицирован и выложен ИнфоТекс-ом "только что" (начало августа 2018 года).
thanks 1 пользователь поблагодарил basid за этот пост.
two_oceans оставлено 08.08.2018(UTC)
Offline lab2  
#8 Оставлено : 2 июля 2019 г. 13:03:08(UTC)
lab2

Статус: Активный участник

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 2 раз в 1 постах
Автор: two_oceans Перейти к цитате
Если вдруг прям позарез нужен ключ в формате pem.


- есть ПО "черный ящик",что внутри не вижу, заявлено, что шарманка поддерживает ГОСТ 2012 , нужны ключи в pem.

Пытаюсь получить pem через
- pfx получен с помощью экспорта + криптопро 5.0
- openssl 1.1.1c + CryptoPro GostEngy ($Revision 185515)+ криптопро 5.0

ошибки вида "unknoun pbe algorithm"

Это в принципе возможно? Или в такой связке ничего не получится?

п.с.
шарманка работает со списками роскомнадзора..
Offline lab2  
#9 Оставлено : 2 июля 2019 г. 13:06:07(UTC)
lab2

Статус: Активный участник

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 2 раз в 1 постах
с гост 2001 ранее получалось в связке
- pfx получен волшебной утилитой от лисси
- openssl 1.0 + gost_capi
Offline two_oceans  
#10 Оставлено : 3 июля 2019 г. 5:44:17(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 90 раз
Поблагодарили: 318 раз в 300 постах
Насколько я понимаю, нет штатной возможности вытащить ключ из стандартного pfx сформированного КриптоПро чем либо кроме самого КриптоПро. Openssl и зарубежные операторы оидов вообще не знают о таком оиде. Вручную вытащить можно, но там похоже защита ключа процентов на 90 напоминающая защиту самого контейнера, то есть часть контейнера вырезали и вставили в pfx, проще вытаскивать из контейнера. Однако есть более фундаментальная проблема с pem в Вашем случае.
Автор: lab2 Перейти к цитате
openssl 1.1.1c + CryptoPro GostEngy ($Revision 185515)
Для справки: такая связка НЕ работает с ключами pem в принципе даже если Вы его вытащите. Прочитайте внимательно тему про GostEngy, во втором сообщении инструкция и пояснения.

Вкратце: cгенерировать ключ в такой связке также не получится, нужно генерировать в самом КриптоПро, потом использовать готовый контейнер в связке. Экспортировать закрытый ключ из контейнера также невозможно - gostengy возвращает в openssl дескриптор закрытого ключа, а не сам ключ. Дескриптор каждый раз разный, поэтому сохранить в файл можно, но загруженный из файла дескриптор будет работать очень короткое время пока дескриптор еще не закрыт. Создать запрос на сертификат по контейнеру и дальнейшие действия с сертификатом и криптооперации поддерживаются, если вместо файла pem указать контейнер, об этом дальше.

Для указания контейнера либо сертификат должен быть в хранилище сертификатов со ссылкой на контейнер и находиться криптоПро, тогда вместо файла pem можно написать отпечаток сертификата или CN. Либо если сертификат не установлен в хранилище нужно вместо файла pem указать без кавычек "c:" + имя контейнера в КриптоПро (если в имени контейнера пробелы, то берется в одинарные кавычки в *nix, или двойные кавычки в Windows). Должно получиться что-то вроде 'c:\\.\HDIMAGE\test' или "c:test" - это не путь, а способ записи имени контейнера. Программа "черный ящик" скорее всего не заморачивается над спецификой pem или не pem, поэтому сначала проверьте что openssl видит и работает с контейнером по одной из записей выше, потом укажите этому "черному ящику" запись вместо файла pem. Высока вероятность что так заработает, без всякого вытаскивания pem.
thanks 2 пользователей поблагодарили two_oceans за этот пост.
lab2 оставлено 04.07.2019(UTC), raynor оставлено 21.05.2020(UTC)
Offline lab2  
#11 Оставлено : 4 июля 2019 г. 10:35:36(UTC)
lab2

Статус: Активный участник

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 2 раз в 1 постах
two_oceans
Ок, спасибо за разъяснения, стало понятно, что тут нет пути решения, сэкономили время.

--
Однако, это редкий реальный кейс, не зря я уточнил что задача вида "нужен позарез" - черный ящик - покупное ПО, требующее ключ в таком формате.
К сожалению так.
Задача решилась в связке linux (ubuntu) + https://github.com/gost-engine/engine + утилита от лисси для перевода контейнера в формате криптопро в pfx формата лисси.

Еще раз спасибо!
thanks 2 пользователей поблагодарили lab2 за этот пост.
raynor оставлено 21.05.2020(UTC), Джахангир оставлено 08.09.2020(UTC)
Offline orbdev  
#12 Оставлено : 29 июня 2021 г. 14:50:36(UTC)
orbdev

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

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

Автор: lab2 Перейти к цитате
two_oceans
Ок, спасибо за разъяснения, стало понятно, что тут нет пути решения, сэкономили время.

--
Однако, это редкий реальный кейс, не зря я уточнил что задача вида "нужен позарез" - черный ящик - покупное ПО, требующее ключ в таком формате.
К сожалению так.
Задача решилась в связке linux (ubuntu) + https://github.com/gost-engine/engine + утилита от лисси для перевода контейнера в формате криптопро в pfx формата лисси.

Еще раз спасибо!


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