Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.09.2018(UTC) Сообщений: 36 Сказал(а) «Спасибо»: 9 раз
|
Спасибо, прочитал. Вот что делаю (Windows 10): Криптопро CSP на машине установлен. Скачал вот тут https://slproweb.com/products/Win32OpenSSL.html инсталлятор Win64OpenSSL-1_1_0i.exe Установил его в папку: c:\OpenSSL-Win64-110i, при установке сказал, что dll ставить в папку программы, а не системную windows c:\OpenSSL-Win64-110i\bin>c:\OpenSSL-Win64-110i\bin\openssl.exe version OpenSSL 1.1.0i 14 Aug 2018 Скопировал скачанную gostengy.dll в папку с установленной openssl и в папку c:\OpenSSL-Win64-110i\bin (на всякий случай, потому что там тоже лежат dll) В файл c:\OpenSSL-Win64-110i\bin\openssl.cfg внес изменения из шапки темы. Вот как выглядит кусок конфига: ############################################### для ГОСТ openssl_conf = openssl_def [openssl_def] engines = engine_section [engine_section] gost_capi = gost_section [gost_section] engine_id = gostengy dynamic_path = c:\OpenSSL-Win64-110i\bin\openssl.cfg default_algorithms = CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1 ############################################### Вывод неутешительный: c:\OpenSSL-Win64-110i\bin>c:\OpenSSL-Win64-110i\bin\openssl.exe engine (rdrand) Intel RDRAND engine (dynamic) Dynamic engine loading support ГОСТ не появился. Что мне нужно еще посмотреть?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,496 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 35 раз Поблагодарили: 466 раз в 333 постах
|
Автор: VictorFrom dynamic_path = c:\OpenSSL-Win64-110i\bin\openssl.cfg Здесь должен быть путь к gostengy.dll. Не стоит торопиться. Также рекомендуем ознакомиться с проектом nginx-gost для Windows, для понимания как устроен openssl.cnf: https://github.com/deemru/nginx/releasesОтредактировано пользователем 13 сентября 2018 г. 15:45:15(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.09.2018(UTC) Сообщений: 36 Сказал(а) «Спасибо»: 9 раз
|
Это я когда сообщение писал, скопировал не тот файл, потому что в конфиге было dynamic_path = gostengy.dll а перед этим вот так: dynamic_path = c:\OpenSSL-Win64-110i\bin\gostengy.dll Просто ГОСТ не появлялся, и я в конфиге пробовал разные варианты пути. Вот такой тоже пробовал: dynamic_path = c:/OpenSSL-Win64-110i/bin/gostengy.dll Но результат один пока - ГОСТ не появилось. В системых переменных Windows есть переменная OPENSSL_CONF C:\OpenSSL-Win64-110i\bin\openssl.cfg Сейчас вот такой вариант: ############################################### для ГОСТ openssl_conf = openssl_def [openssl_def] engines = engine_section [engine_section] gost_capi = gost_section [gost_section] engine_id = gostengy dynamic_path = c:\OpenSSL-Win64-110i\bin\gostengy.dll default_algorithms = CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1 и ГОСТа нет. Может, этот openssl использует какие-нибудь не свои файлы? Потому что у меня еще тут гит установлен, а у него свой openssl. Отредактировано пользователем 13 сентября 2018 г. 17:12:30(UTC)
| Причина: Не указана
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Если и в OPENSSL_CONF прописан полный путь до конфигурации и в dynamic_path прописан полный путь библиотеки, то скорее всего дело не в чужих файлах. Хотя конечно почти любая программа как-либо связанная с интернетом и HTTPS ставит свой вариант библиотек openssl либо в свою папку либо в папку windows, у себя на компьютере я находил около 40 вариантов библиотек отличающихся названиями и версиями файлов - большинство старые 0.9.8 с разными литерами. К сожалению, имена функций в разных версиях openssl не совпадают в точности и проблематично просто заменить старые версии на новые. Более вероятные причины отсутствия модуля в списке: 1) в строке "gost_capi = gost_section" тоже нужно исправить на "gostengy = gost_section" без этого модуль может не загрузится просто потому, что имя в секции gost_section в строке "engine_id=" не "gost_capi", а "gostengy"; 2) если пункт 1 не дает эффект, то версия openssl 1.1.0i из неизвестного источника может быть без исправления бага загрузки модулей из файла конфигурации (баг появился примерно с 1.1.0g из-за переноса инициализации в другую библиотеку и имеет 2 пути исправления - либо откат изменения, вызвавшего баг, либо перенос загрузки модулей в ту же библиотеку). Подробнее было где-то на предыдущих страницах темы. Нужно либо найти версию с исправлением - например, собрать из исходников актуальной версии от КриптоПро (рекомендуется, ссылка вроде бы была в FAQ) либо найти собранную "стандартную" версию openssl 1.1.0 с литерой старее чем момент появления бага (у меня gostengy работает на openssl 1.1.0 без литер, но пришлось скопировать одну из библиотек под другим именем), но в старой версии естественно будут различные другие уязвимости, тут уже надо будет смотреть для чего собираетесь использовать и устроит ли Вас работа с такими уязвимостями. Отредактировано пользователем 14 сентября 2018 г. 10:40:01(UTC)
| Причина: уточнение
|
1 пользователь поблагодарил two_oceans за этот пост.
|
pd оставлено 14.09.2018(UTC)
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,496 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 35 раз Поблагодарили: 466 раз в 333 постах
|
Автор: two_oceans Более вероятные причины отсутствия модуля в списке: 1) в строке "gost_capi = gost_section" тоже нужно исправить на "gostengy = gost_section" без этого модуль может не загрузится просто потому, что имя в секции gost_section в строке "engine_id=" не "gost_capi", а "gostengy"; Вот спасибо, поправили опечатку в FAQ после его обновления. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.09.2018(UTC) Сообщений: 36 Сказал(а) «Спасибо»: 9 раз
|
Мне нужно исключительно в целях тренировки, чтобы понимать механизм этого всего священнодействия с ключами и сертификатами. Потому что с буржуйскими алгоритмами вроде полно и описаний, и документации, а с ГОСТ - сплошной мрак, ничего не понятно - какие форматы, почему не принимаются своими же программами. Поэтому надо уже взяться и разобраться до конца. Автор: two_oceans 2) если пункт 1 не дает эффект, то версия openssl 1.1.0i из неизвестного источника может быть без исправления бага загрузки модулей из файла конфигурации (баг появился примерно с 1.1.0g из-за переноса инициализации в другую библиотеку и имеет 2 пути исправления - либо откат изменения, вызвавшего баг, либо перенос загрузки модулей в ту же библиотеку). Подробнее было где-то на предыдущих страницах темы. Нужно либо найти версию с исправлением - например, собрать из исходников актуальной версии от КриптоПро (рекомендуется, ссылка вроде бы была в FAQ) либо найти собранную "стандартную" версию openssl 1.1.0 с литерой старее чем момент появления бага (у меня gostengy работает на openssl 1.1.0 без литер, но пришлось скопировать одну из библиотек под другим именем), но в старой версии естественно будут различные другие уязвимости, тут уже надо будет смотреть для чего собираетесь использовать и устроит ли Вас работа с такими уязвимостями.
Пункт 1 дал эффект, но как Вы правильно заметили появился пункт 2 :) Цитата:c:\OpenSSL-Win64-110i\bin>c:\OpenSSL-Win64-110i\bin\openssl.exe engine (rdrand) Intel RDRAND engine (dynamic) Dynamic engine loading support 10228:error:25078067:DSO support routines:win32_load:could not load the shared library:crypto\dso\dso_win32.c:106:filename(c:OpenSSL-Win64-110ingostengy.dll) 10228:error:25070067:DSO support routines:DSO_load:could not load the shared library:crypto\dso\dso_lib.c:161: 10228:error:260B6084:engine routines:dynamic_load:dso not found:crypto\engine\eng_dyn.c:414: 10228:error:260BC066:engine routines:int_engine_configure:engine configuration error:crypto\engine\eng_cnf.c:141:section=gost_section, name=dynamic_path, value=c:OpenSSL-Win64-110ingostengy.dll 10228:error:0E07606D:configuration file routines:module_run:module initialization error:crypto\conf\conf_mod.c:173:module=engines, value=engine_section, retcode=-1
В итоге придется изучить еще C++ (или на чем там написана openssl), поставить себе компилятор, и тренироваться компилировать :( Я, конечно, много хочу, но вдруг: А у Криптопро нет уже собранных версий openssl без бага? Не могли бы сотрудники Криптопро отправить пуллреквест в openssl с исправлением этого бага, раз уж у них есть исправленный вариант?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,496 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 35 раз Поблагодарили: 466 раз в 333 постах
|
Автор: VictorFrom 10228:error:260BC066:engine routines:int_engine_configure:engine configuration error:crypto\engine\eng_cnf.c:141:section=gost_section, name=dynamic_path, value=c:OpenSSL-Win64-110ingostengy.dll Просто используйте экранированные слеши, вместо "\" нужно "\\". |
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Цитата:10228:error:260BC066:engine routines:int_engine_configure:engine configuration error:crypto\engine\eng_cnf.c:141:section=gost_section, name=dynamic_path, value=c:OpenSSL-Win64-110ingostengy.dll Да, похоже надо экранировать, у меня не полный путь потому сразу не заметил. К тому же, если правильно помню необходимость экранирования зависит от сборки. Эта ошибка как раз указывает что бага в Вашей версии нет. При баге и ошибки нет и нет модуля в списке. А пулл реквест... уже отправляли на откат изменения, но в openssl отказались его принимать, дескать откат в их планы не входит и обещали сами исправить... когда-нибудь, когда придумают как исправить без отката. Интересненько, что версия без бага, тоже попробую скачать. А насчет компилятора.. попробовал скачивать cygwin или как там называется по инструкции openssl там оказался такой монструозный проект компилятора больше чем на гигабайт с поддержкой кучи языков программирования. В принципе конечно надо докачать и собрать, а то в собранных версиях обычно место хранения корневых сертификатов указано для *nix, что на windows не очень удобно при наличии более одного локального диска - при наличии \ первым символом windows ищет хранилище от корня текущего диска, если перейти на другой диск, то хранилище уже не находится. Отредактировано пользователем 14 сентября 2018 г. 11:36:45(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.09.2018(UTC) Сообщений: 36 Сказал(а) «Спасибо»: 9 раз
|
Заработало, спасибо: Цитата:c:\OpenSSL-Win64-110i\bin>c:\OpenSSL-Win64-110i\bin\openssl.exe engine (rdrand) Intel RDRAND engine (dynamic) Dynamic engine loading support (gostengy) CryptoPro GostEngy ($Revision: 174535 $)
Вот этот кусок конфига: Цитата:
############################################### для ГОСТ
openssl_conf = openssl_def
[openssl_def] engines = engine_section
[engine_section] gostengy = gost_section
[gost_section] engine_id = gostengy dynamic_path = c:\\OpenSSL-Win64-110i\\bin\\gostengy.dll default_algorithms = CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1
Никогда не угадаешь, какие слеши нужны в Windows для линксовых программ :( Цитата: c:\OpenSSL-Win64-110i\bin>c:\OpenSSL-Win64-110i\bin\openssl.exe ciphers | "c:\Program Files\Git\usr\bin\tr.exe" ':' '\n' | "c:\Program Files\Git\usr\bin\grep.exe" GOST GOST2012-GOST8912-GOST8912 GOST2001-GOST89-GOST89
Отредактировано пользователем 14 сентября 2018 г. 12:27:38(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.09.2018(UTC) Сообщений: 16
Сказал(а) «Спасибо»: 6 раз
|
Подскажите, как в случае UNIX и gost_capi быть с CRL и OCSP?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close