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

Уведомление

Icon
Error

67 Страницы«<4041424344>»
Опции
К последнему сообщению К первому непрочитанному
Offline VictorFrom  
#411 Оставлено : 13 сентября 2018 г. 15:37:19(UTC)
VictorFrom

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

Группы: Участники
Зарегистрирован: 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

ГОСТ не появился.

Что мне нужно еще посмотреть?



Offline Дмитрий Пичулин  
#412 Оставлено : 13 сентября 2018 г. 15:43:04(UTC)
pd

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

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

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 412 раз в 306 постах
Автор: 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)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline VictorFrom  
#413 Оставлено : 13 сентября 2018 г. 16:17:08(UTC)
VictorFrom

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

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline two_oceans  
#414 Оставлено : 14 сентября 2018 г. 5:14:19(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 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)  | Причина: уточнение

thanks 1 пользователь поблагодарил two_oceans за этот пост.
pd оставлено 14.09.2018(UTC)
Offline Дмитрий Пичулин  
#415 Оставлено : 14 сентября 2018 г. 8:20:15(UTC)
pd

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

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

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 412 раз в 306 постах
Автор: two_oceans Перейти к цитате
Более вероятные причины отсутствия модуля в списке: 1) в строке "gost_capi = gost_section" тоже нужно исправить на "gostengy = gost_section" без этого модуль может не загрузится просто потому, что имя в секции gost_section в строке "engine_id=" не "gost_capi", а "gostengy";

Вот спасибо, поправили опечатку в FAQ после его обновления.

Знания в базе знаний, поддержка в техподдержке
Offline VictorFrom  
#416 Оставлено : 14 сентября 2018 г. 11:07:12(UTC)
VictorFrom

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

Группы: Участники
Зарегистрирован: 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 с исправлением этого бага, раз уж у них есть исправленный вариант?
Offline Дмитрий Пичулин  
#417 Оставлено : 14 сентября 2018 г. 11:10:30(UTC)
pd

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

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

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 412 раз в 306 постах
Автор: 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

Просто используйте экранированные слеши, вместо "\" нужно "\\".
Знания в базе знаний, поддержка в техподдержке
Offline two_oceans  
#418 Оставлено : 14 сентября 2018 г. 11:21:57(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 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)  | Причина: Не указана

Offline VictorFrom  
#419 Оставлено : 14 сентября 2018 г. 12:15:58(UTC)
VictorFrom

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

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline colotiline  
#420 Оставлено : 14 сентября 2018 г. 15:03:34(UTC)
colotiline

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

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

Сказал(а) «Спасибо»: 6 раз
Подскажите, как в случае UNIX и gost_capi быть с CRL и OCSP?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
67 Страницы«<4041424344>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.