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

Уведомление

Icon
Error

33 Страницы«<313233
Опции
К последнему сообщению К первому непрочитанному
Offline pd  
#641 Оставлено : 4 декабря 2020 г. 16:38:30(UTC)
pd

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,192
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 27 раз
Поблагодарили: 206 раз в 177 постах
Автор: Norguhtar Перейти к цитате
И еще вопрос. Я могу отключить обработку шифрования в вашем модуле при помощи default_algorithms, а брать gost89 из модуля gost?

Возможно, звучит разумно, мы не тестировали.
Знания в базе знаний, поддержка в техподдержке
Offline pd  
#642 Оставлено : 4 декабря 2020 г. 16:41:02(UTC)
pd

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,192
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 27 раз
Поблагодарили: 206 раз в 177 постах
Автор: Norguhtar Перейти к цитате
А добавить в engine никак? Это сильно бы упростило интеграцию. А при использовании ваших библиотек мне придется биндинг фактически писать с нуля и привязываться в том числе и к вашей реализации.

Если нельзя, то есть ли какие-то ограничение на использование ваших библиотек, если к примеру я решу сделать engine по типу gostengy и выложить в opensource?

Этот проект по сути себя изживает, мы научились делать TLS в nginx и apache более нативно и скоро это будет анонсировано.

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

Знания в базе знаний, поддержка в техподдержке
Offline two_oceans  
#643 Оставлено : 5 декабря 2020 г. 11:25:57(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 90 раз
Поблагодарили: 319 раз в 300 постах
Вопрос показался интересным хотя бы теоретически. Уже давно выяснили, что постоянный ключ в голом виде выдавать за пределы криптопровайдера нельзя. Это ограничение вполне успешно обошли при подписании выдачей дескриптора ключа. Опять же известно, что реализации гост в openssl нет, то есть для фактического использования ключа в криптографической операции снова будет вызван engine.

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

Собственно, показа голого сессионного ключа за пределы криптопровайдера и тут не произойдет, так как есть специальная функция экспорта сессионного ключа из криптопровайдера. Остается только в engine отличить дескриптор сессионного ключа от данных (по длине и табличке действительных дескрипторов?) и вызвать функцию экспорта вместо функции шифрования данных. На первый взгляд со стороны, выглядит реализуемо и без голых ключей, остается разобраться с интерфейсами openssl и Capi.

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

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

Offline Norguhtar  
#644 Оставлено : 5 декабря 2020 г. 12:21:02(UTC)
Norguhtar

Статус: Участник

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

Поблагодарили: 2 раз в 2 постах
Автор: two_oceans Перейти к цитате
Вопрос показался интересным хотя бы теоретически. Уже давно выяснили, что постоянный ключ в голом виде выдавать за пределы криптопровайдера нельзя. Это ограничение вполне успешно обошли при подписании выдачей дескриптора ключа. Опять же известно, что реализации гост в openssl нет, то есть для фактического использования ключа в криптографической операции снова будет вызван engine.


Ну вообще gostengy отдает private key через ENGINE_load_private_key через который сам ключ не вынимается, а дается только указатель. Тут вот подробнее

https://mta.openssl.org/...017-November/006944.html

Когда я вызываю к примеру функцию подписания ключом, то вызов идет в engine и он там сам производит криптографические операции. По этому какие "голые ключи" и куда передаются мне немного не понятно. Т.е. экспортнуть ключ через этот метод банально не получится. Движки первоначально делались для PKCS#11, а там вообще ключ живет в токене и внаружу не отдается.

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

Собственно, показа голого сессионного ключа за пределы криптопровайдера и тут не произойдет, так как есть специальная функция экспорта сессионного ключа из криптопровайдера. Остается только в engine отличить дескриптор сессионного ключа от данных (по длине и табличке действительных дескрипторов?) и вызвать функцию экспорта вместо функции шифрования данных. На первый взгляд со стороны, выглядит реализуемо и без голых ключей, остается разобраться с интерфейсами openssl и Capi.

Это реализуемо. Просто сейчас для интеграции надо пользоваться capilite который мягко говоря своебразный для *nix так-как фактически представляет собой кусок windows CSP портированного на *nix. Как итог это еще и не совместимо ни с чем кроме софта который специально писался для него.

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

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

Ну если бы gostengy выложили в opensource то добавить туда еще gost89 для полного прокрытия труда не составило бы.
Offline Norguhtar  
#645 Оставлено : 5 декабря 2020 г. 14:41:04(UTC)
Norguhtar

Статус: Участник

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

Поблагодарили: 2 раз в 2 постах
Автор: pd Перейти к цитате


А также, да, имея возможность менять код, можно и нужно использовать наши библиотеки, тем более если это ваше приложение.


Ну я вот пробовал ваши библиотеки. И все еще нахожусь на стадии получения данных о сертификате. Вы сами то под это писать пробовали? Мне вот приходится добавлять 33 прокладки, чтобы это хоть как-то заработало. Про качество вашей документации я пожалуй промолчу. Честно скажу лучше бы вы добавили gost89 и я бы уже все подписал и сделал.

А сейчас приходится городить мост из *nix в windows CAPI. За это время уже написал биндинги к openssl.

Offline two_oceans  
#646 Оставлено : 5 декабря 2020 г. 14:56:30(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 90 раз
Поблагодарили: 319 раз в 300 постах
Автор: Norguhtar Перейти к цитате
сам ключ не вынимается, а дается только указатель
Так я про это и говорю, просто называю не указатель, а дескриптор (хендл, handle - ближе к терминологии windows; машинный перевод Майкрософт иногда вообще переводит как "ручка").
Автор: Norguhtar Перейти к цитате
Это реализуемо. Просто сейчас для интеграции надо пользоваться capilite который мягко говоря своебразный для *nix так как фактически представляет собой кусок windows CSP портированного на *nix. Как итог это еще и не совместимо ни с чем кроме софта который специально писался для него.
Зато на ура работают портированные с Windows программы. Просто подходы с разной стороны, а engine как возможный переходник между ними.
Автор: Norguhtar Перейти к цитате
Ну если бы gostengy выложили в opensource то добавить туда еще gost89 для полного прокрытия труда не составило бы.
Это да, но и без "gostengy выложили в opensource" реализуемо. Ведь по сути шифрование и подпись для гост никак не связаны. Что ожидает openssl можно поискать в исходниках openssl. Заголовки функций capilite тоже есть.

Что получится если сделать движок (или скорее engine-надстройку), подгружающий gostengy и пробрасывающий функции tls и функции подписания из gostengy (но, допустим, по ходу меняющую хендлы ключей на свои для универсального использования ключей в подписи/расшифровке) и делающую дополнительные функции в виде проброса генерации сессионного ключа и процедуры шифрования к форматам capilite. Регистрация engine, как я понимаю, потребуется тоже другая с дополненным перечнем функций.

Если продолжать мысль дальше, что есть в старом engine gost и нет в gostengy, но можно бы пробросить к capilite, чтобы был полный цикл:
- генерацию ключевой пары (в контейнер КриптоПро);
- корректный экспорт ключевой пары в pfx (по требованиям TK26).
Чтобы старые скрипты для криптокомовского модуля gost внезапно стали рабочими через надстройку к gostengy и capilite.

Подобным образом можно наверно и совместимость с форматом engine openssl 1.0.x сделать, а то там целая история с переходом старых программ на ветку 1.1.х исключительно для поддержки ключей гост-2012. Да и вообще, были отдельные версии несовместимые с gost_capi / gostengy по процедуре регистрации engine.
Цитата:
И все еще нахожусь на стадии получения данных о сертификате.
Тут посоветовать могу: 1) документацию Майкрософт; 2) сертификат это универсальная структура - незачем его разбирать через capilite если привыкли разбирать как openssl. Просто возьмите часть _Cert_Context с закодированным сертификатом (указатель pbEncoded, длина cbEncoded) и загрузите в подходящую функцию openssl; 3) если что пишите личным сообщением вопрос.

Отредактировано пользователем 5 декабря 2020 г. 15:06:01(UTC)  | Причина: Не указана

Offline Norguhtar  
#647 Оставлено : 5 декабря 2020 г. 15:04:01(UTC)
Norguhtar

Статус: Участник

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

Поблагодарили: 2 раз в 2 постах
Цитата:

Зато на ура работают портированные с Windows программы. Просто подходы с разной стороны, а engine как возможный переходник между ними.


Эмм... у меня большие сомнения. Начнем с банальных вещей в Windows UTF-16 в *nix UTF-8 со всеми вытекающими.

Цитата:

Подобным образом можно наверно и совместимость с форматом engine openssl 1.0.x сделать, а то там целая история с переходом старых программ на ветку 1.1.х исключительно для поддержки ключей гост-2012.

Не получится. Для втаскивания туда ГОСТ его нужно патчить. Именно сами сорцы.

Цитата:

Тут посоветовать могу: 1) документацию Майкрософт; 2) сертификат это универсальная структура - незачем его разбирать через capilite если привыкли разбирать как openssl. Просто возьмите часть pCertContext с закодированным сертификатом и загрузите в функции openssl; 3) если что пишите личным сообщением вопрос.


Смотри пункт про портирование. Тут вспоминаем что данные все лежат в уникоде. Тут наступает первый ой. Второй ой это количество телодвижений чтобы просто получить хендлеры ключа и сертификата. В openssl это делается в две команды. А тут километр вызовов, ради которых я еще должен сходить и почитать еще и документацию Micrsoft.
Offline nesdmitrijj  
#648 Оставлено : 9 июня 2021 г. 11:11:29(UTC)
nesdmitrijj

Статус: Участник

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

Сказал(а) «Спасибо»: 6 раз
Добрый день!
Пытаюсь сконвертировать файлы PEM (cert.pem, key.pem) в PFX.

Появляется ошибка:
C:\Program Files (x86)\OpenSSL-Win32\bin>openssl pkcs12 -export -out D:\777\cert.pfx -inkey D:\777\key.key -in D:\777\cert.pem
unable to load private key
6888:error:0606F090:digital envelope routines:EVP_PKCS82PKEY:method not supported:crypto\evp\evp_pkey.c:48:
6888:error:0907B00D:PEM routines:PEM_read_bio_PrivateKey:ASN1 lib:crypto\pem\pem_pkey.c:88:


Пробовал и так:
C:\Program Files (x86)\OpenSSL-Win32\bin>openssl pkcs12 -engine gostengy -export -out D:\777\cert.pfx -inkey D:\777\key.key -in D:\777\cert.pem
engine "gostengy" set.
unable to load private key
12064:error:0606F090:digital envelope routines:EVP_PKCS82PKEY:method not supported:crypto\evp\evp_pkey.c:48:
12064:error:0907B00D:PEM routines:PEM_read_bio_PrivateKey:ASN1 lib:crypto\pem\pem_pkey.c:88:


Подскажите, в чем может быть проблема?

Установлено:
- OpenSSL 1.1.1k
- КриптоПРО CSP 5.0.11455 КС1
- библиотека gostengy (211453)
- Windows 10
Offline Norguhtar  
#649 Оставлено : 9 июня 2021 г. 11:22:38(UTC)
Norguhtar

Статус: Участник

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

Поблагодарили: 2 раз в 2 постах
Если у вас есть ключи от openssl то вам не требуется движок gostengy воспользуйтесь родным движком gost для openssl

И далее по инструкции https://www.ssl.com/how-...cate-file-using-openssl/ импортните в pfx

thanks 1 пользователь поблагодарил Norguhtar за этот пост.
nesdmitrijj оставлено 09.06.2021(UTC)
Offline nesdmitrijj  
#650 Оставлено : 9 июня 2021 г. 14:49:23(UTC)
nesdmitrijj

Статус: Участник

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

Сказал(а) «Спасибо»: 6 раз
Автор: Norguhtar Перейти к цитате
Если у вас есть ключи от openssl то вам не требуется движок gostengy воспользуйтесь родным движком gost для openssl

И далее по инструкции https://www.ssl.com/how-...cate-file-using-openssl/ импортните в pfx



Спасибо. Помогло.
Offline nesdmitrijj  
#651 Оставлено : 10 июня 2021 г. 13:14:15(UTC)
nesdmitrijj

Статус: Участник

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

Сказал(а) «Спасибо»: 6 раз
Рано обрадовался((( Почему-то полученный таким образом pfx устанавливается в контейнер провайдера "Microsoft Software Key Storage Provider".(((
Offline Norguhtar  
#652 Оставлено : 10 июня 2021 г. 13:16:23(UTC)
Norguhtar

Статус: Участник

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

Поблагодарили: 2 раз в 2 постах
Обратитесь к документации крипто про, там описано как импортировать pfx.
Offline nesdmitrijj  
#653 Оставлено : 10 июня 2021 г. 13:37:34(UTC)
nesdmitrijj

Статус: Участник

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

Сказал(а) «Спасибо»: 6 раз
В Windows импорт выполняется без ошибок. Но что при импорте через оболочку Windows, что при импорте через утилиту Крипто Про - импортируется одинаково (с левым криптопровайдером). В Windows таким сертфиикатом ничего не удается подписать.

При импорте через GUI КриптоПро CSP (кнопка "Установить личный сертификат" на вкладке "Сервис") выдается ошибка
Плохие данные.

В Ubuntu 18.04 импорт с ошибкой
Ошибка импорта PFX. Тип поставщика не определен.

Отредактировано пользователем 10 июня 2021 г. 14:40:08(UTC)  | Причина: Не указана

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