logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

17 Страницы«<151617
Опции
К последнему сообщению К первому непрочитанному
Offline realmfoo  
#321 Оставлено : 6 сентября 2017 г. 10:20:34(UTC)
realmfoo

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

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

Поблагодарили: 1 раз в 1 постах
Автор: pd Перейти к цитате
Автор: realmfoo Перейти к цитате
Если задействовать OpenSSL UI окажется трудоёмким, то хотелось бы иметь возможность указывать пароль хотя бы через ENGINE_ctrl_cmd_string.

Мы пойдём другим путём, документированным и в рамках CSP, но об этом в завтра.


Хотелось бы о нём уже прочитать.
Offline pd  
#322 Оставлено : 6 сентября 2017 г. 11:53:28(UTC)
pd


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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 65 раз в 54 постах
Автор: realmfoo Перейти к цитате
Автор: pd Перейти к цитате
Мы пойдём другим путём, документированным и в рамках CSP, но об этом в завтра.

Хотелось бы о нём уже прочитать.

Итак, для того чтобы воспользоваться закрытым ключом с паролем в автоматическом режиме, необходимо:
  1. Экспортировать сертификат целевого контейнера:
    Код:
    /opt/cprocsp/bin/amd64/csptestf -keys -cont '\\.\hdimage\example' -keyt exchange -expcert /tmp/example.cer

  2. Импортировать сертификат с сохранением пароля целевого контейнера на уровне хранилища сертификатов:
    Код:
    /opt/cprocsp/bin/amd64/csptestf -ipsec -reg -mycert /tmp/example.cer -autocont -savepin -passw 12345678

  3. Воспользоваться сборкой gost_capi не ниже 162826: https://update.cryptopro...t/nginx-gost/bin/162826/



Offline realmfoo  
#323 Оставлено : 6 сентября 2017 г. 12:19:42(UTC)
realmfoo

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

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

Поблагодарили: 1 раз в 1 постах
Спасибо! С новой версией библиотеки удалось обойтись без указания пароля пользователем.
Offline pd  
#324 Оставлено : 7 сентября 2017 г. 14:52:49(UTC)
pd


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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 65 раз в 54 постах
У нас появились скрипт автоматической настройки nginx на unix с сертификатами ГОСТ 2012 года: https://www.cryptopro.ru...aspx?g=posts&t=12505

Прошу всех интересующихся задавать вопросы в соответствующей теме.

Скрипты предназначены исключительно для ознакомления с функционалом, запускать их желательно на чистых системах, гарантированно работает на ubuntu 16.
Offline realmfoo  
#325 Оставлено : 7 сентября 2017 г. 18:15:45(UTC)
realmfoo

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

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

Поблагодарили: 1 раз в 1 постах
При отладке через gdb заметил обращение к файлу /var/log/gost_capi.log, которого нет. В результате этого обращения ошибка регистрируется в OpenSSL.

Код:
Thread 7 "csp-sign" hit Breakpoint 4, ERR_put_error (lib=lib@entry=2, func=func@entry=1, reason=13, file=file@entry=0x7ffff76aeff8 "bss_file.c", line=line@entry=175) at err.c:704
704	err.c: No such file or directory.
(gdb) where
#0  ERR_put_error (lib=lib@entry=2, func=func@entry=1, reason=13, file=file@entry=0x7ffff76aeff8 "bss_file.c", line=line@entry=175) at err.c:704
#1  0x00007ffff75f1576 in BIO_new_file (filename=0x7ffff18bdb00 "/var/log/gost_capi.log", mode=0x7ffff18bdb87 "a+") at bss_file.c:175
#2  0x00007ffff18783fb in ngg_trace () from /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so
#3  0x00007ffff1879bb4 in ngg_asn1_public_key_bits_3410 () from /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so
#4  0x00007ffff1879bc9 in ngg_asn1_public_key_size_3410 () from /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so
#5  0x00007ffff793ebfc in xmlSecOpenSSLEvpSignatureExecute (transform=0x7fffe4002a40, last=1, transformCtx=<optimized out>) at evp_signatures.c:454


Разве файл логов не должен быть /var/opt/cprocsp/tmp/gost_capi.log ?
Offline pd  
#326 Оставлено : 7 сентября 2017 г. 18:30:43(UTC)
pd


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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 65 раз в 54 постах
Автор: realmfoo Перейти к цитате
При отладке через gdb заметил обращение к файлу /var/log/gost_capi.log, которого нет. В результате этого обращения ошибка регистрируется в OpenSSL.

Код:
Thread 7 "csp-sign" hit Breakpoint 4, ERR_put_error (lib=lib@entry=2, func=func@entry=1, reason=13, file=file@entry=0x7ffff76aeff8 "bss_file.c", line=line@entry=175) at err.c:704
704	err.c: No such file or directory.
(gdb) where
#0  ERR_put_error (lib=lib@entry=2, func=func@entry=1, reason=13, file=file@entry=0x7ffff76aeff8 "bss_file.c", line=line@entry=175) at err.c:704
#1  0x00007ffff75f1576 in BIO_new_file (filename=0x7ffff18bdb00 "/var/log/gost_capi.log", mode=0x7ffff18bdb87 "a+") at bss_file.c:175
#2  0x00007ffff18783fb in ngg_trace () from /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so
#3  0x00007ffff1879bb4 in ngg_asn1_public_key_bits_3410 () from /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so
#4  0x00007ffff1879bc9 in ngg_asn1_public_key_size_3410 () from /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so
#5  0x00007ffff793ebfc in xmlSecOpenSSLEvpSignatureExecute (transform=0x7fffe4002a40, last=1, transformCtx=<optimized out>) at evp_signatures.c:454


Разве файл логов не должен быть /var/opt/cprocsp/tmp/gost_capi.log ?

Нет, теперь пишем в /var/log, но ошибка странная, разве openssl не должен этот файл создавать при отсутствии, проверим, исправим, спасибо.

Offline realmfoo  
#327 Оставлено : 8 сентября 2017 г. 15:50:13(UTC)
realmfoo

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

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

Поблагодарили: 1 раз в 1 постах
Автор: pd Перейти к цитате
Автор: realmfoo Перейти к цитате
При отладке через gdb заметил обращение к файлу /var/log/gost_capi.log, которого нет. В результате этого обращения ошибка регистрируется в OpenSSL.

Код:
Thread 7 "csp-sign" hit Breakpoint 4, ERR_put_error (lib=lib@entry=2, func=func@entry=1, reason=13, file=file@entry=0x7ffff76aeff8 "bss_file.c", line=line@entry=175) at err.c:704
704	err.c: No such file or directory.
(gdb) where
#0  ERR_put_error (lib=lib@entry=2, func=func@entry=1, reason=13, file=file@entry=0x7ffff76aeff8 "bss_file.c", line=line@entry=175) at err.c:704
#1  0x00007ffff75f1576 in BIO_new_file (filename=0x7ffff18bdb00 "/var/log/gost_capi.log", mode=0x7ffff18bdb87 "a+") at bss_file.c:175
#2  0x00007ffff18783fb in ngg_trace () from /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so
#3  0x00007ffff1879bb4 in ngg_asn1_public_key_bits_3410 () from /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so
#4  0x00007ffff1879bc9 in ngg_asn1_public_key_size_3410 () from /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so
#5  0x00007ffff793ebfc in xmlSecOpenSSLEvpSignatureExecute (transform=0x7fffe4002a40, last=1, transformCtx=<optimized out>) at evp_signatures.c:454


Разве файл логов не должен быть /var/opt/cprocsp/tmp/gost_capi.log ?

Нет, теперь пишем в /var/log, но ошибка странная, разве openssl не должен этот файл создавать при отсутствии, проверим, исправим, спасибо.



Так как программа запускается под обычным пользователем, а на папке /var/log установлены права 0775 (а где-то и 0755, владелец root), то создать файл никак не получится.

При запуске программы, которая подписывает один и тот же запрос в несколько потоков наблюдаю нестабильную работу. В некоторых случаях подписать запрос не удаётся, а в stderr присутствует указание на ошибку с правами доступа:

Код:

func=xmlSecOpenSSLEvpSignatureExecute:file=evp_signatures.c:line=466:obj=gostr34102001-gostr3411:subj=EVP_SignFinal:error=4:crypto library function failed:openssl error: 33558541: system library: fopen Permission denied
func=xmlSecTransformDefaultPushBin:file=transforms.c:line=1921:obj=gostr34102001-gostr3411:subj=xmlSecTransformExecute:error=1:xmlsec library function failed:final=1
func=xmlSecTransformIOBufferClose:file=transforms.c:line=2547:obj=gostr34102001-gostr3411:subj=xmlSecTransformPushBin:error=1:xmlsec library function failed: 
func=xmlSecTransformC14NPushXml:file=c14n.c:line=243:obj=exc-c14n:subj=xmlOutputBufferClose:error=5:libxml2 library function failed:xml error: 0: NULL
func=xmlSecTransformCtxXmlExecute:file=transforms.c:line=1037:obj=exc-c14n:subj=xmlSecTransformPushXml:error=1:xmlsec library function failed: 
func=xmlSecDSigCtxProcessSignatureNode:file=xmldsig.c:line=550:obj=unknown:subj=xmlSecTransformCtxXmlExecute:error=1:xmlsec library function failed: 
func=xmlSecDSigCtxSign:file=xmldsig.c:line=286:obj=unknown:subj=xmlSecDSigCtxSignatureProcessNode:error=1:xmlsec library function failed: 


При попытке отловить ошибку, в результате которой подписать запрос не удалось, получаю следующую информацию:

Код:
(gdb) info break
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x00007ffff7b86910 in xmlSecError at errors.c:232
	breakpoint already hit 1 time

(gdb) where
#0  xmlSecError (file=file@entry=0x7ffff7957980 "evp_signatures.c", line=line@entry=466, func=func@entry=0x7ffff7957c20 <__func__.16543> "xmlSecOpenSSLEvpSignatureExecute", 
    errorObject=0x7ffff7bbe300 <xmlSecNameGost2001GostR3411_94> "gostr34102001-gostr3411", errorSubject=errorSubject@entry=0x7ffff79579f4 "EVP_SignFinal", reason=reason@entry=4, msg=0x7ffff7954bc8 "openssl error: %lu: %s: %s %s")
    at errors.c:232
#1  0x00007ffff793efcd in xmlSecOpenSSLEvpSignatureExecute (transform=0x7fffc4008950, last=<optimized out>, transformCtx=<optimized out>) at evp_signatures.c:465
#2  0x00007ffff7ba3373 in xmlSecTransformDefaultPushBin (transform=0x7fffc4008950, data=0x0, dataSize=0, final=1, transformCtx=0x7fffc4008710) at transforms.c:1917
#3  0x00007ffff7ba0036 in xmlSecTransformIOBufferClose (buffer=0x7fffc400d2c0) at transforms.c:2544
#4  0x00007ffff6f5b6a9 in xmlOutputBufferClose () from /usr/lib/x86_64-linux-gnu/libxml2.so.2
#5  0x00007ffff7b8320e in xmlSecTransformC14NPushXml (transform=0x7fffc4008860, nodes=0x7fffc400cca0, transformCtx=<optimized out>) at c14n.c:241
#6  0x00007ffff7ba2a5a in xmlSecTransformCtxXmlExecute (ctx=ctx@entry=0x7fffc4008710, nodes=nodes@entry=0x7fffc400cca0) at transforms.c:1034
#7  0x00007ffff7ba879c in xmlSecDSigCtxProcessSignatureNode (dsigCtx=dsigCtx@entry=0x7fffc4008450, node=node@entry=0x7fffc4002b50) at xmldsig.c:548
#8  0x00007ffff7ba90d4 in xmlSecDSigCtxSign (dsigCtx=0x7fffc4008450, tmpl=0x7fffc4002b50) at xmldsig.c:284

(gdb) call ERR_print_errors_fp(stdout)
140737224103568:error:0200100D:system library:fopen:Permission denied:bss_file.c:175:fopen('/var/log/gost_capi.log','a+')
140737224103568:error:2006D002:BIO routines:BIO_new_file:system lib:bss_file.c:180:


При этом в однопоточном режиме данная ошибка не возникает. В чём может быть причина подобной нестабильности?
Offline pd  
#328 Оставлено : 8 сентября 2017 г. 18:08:54(UTC)
pd


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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 65 раз в 54 постах
Автор: realmfoo Перейти к цитате
Так как программа запускается под обычным пользователем, а на папке /var/log установлены права 0775 (а где-то и 0755, владелец root), то создать файл никак не получится.

Логирование переосмыслим, пока отключим, должно хватить лога openssl.

Версия gost_capi с отключенным логом: https://update.cryptopro...0170908_gost_capi_nolog/

По ошибкам в многопоточном режиме нам мало что известно, мы рассчитываем, что синхронизацией занимается openssl и приложение его использующее.

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

Offline pd  
#329 Оставлено : 17 октября 2017 г. 15:12:58(UTC)
pd


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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 65 раз в 54 постах
Обновили наши криптографические библиотеки gost_capi и gostengy для OpenSSL до ревизии 164682: https://update.cryptopro...t/nginx-gost/bin/164682/

Обновили nginx с поддержкой ГОСТ 2012 для Windows: https://github.com/deemr...g/nginx-1.12.1-gost-12.7

Для пользователей Unix доступны скрипты автоматической сборки и настройки nginx с поддержкой ГОСТ 2012: https://www.cryptopro.ru...aspx?g=posts&t=12505

Изменения:


UPD:
Спустя 2 часа вышел новый nginx 1.12.2, обновили нашу сборку ещё раз: https://github.com/deemr...g/nginx-1.12.2-gost-12.9

Отредактировано пользователем 17 октября 2017 г. 17:05:35(UTC)  | Причина: Не указана

Offline chemtech  
#330 Оставлено : 30 октября 2017 г. 13:09:49(UTC)
chemtech

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

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

Сказал(а) «Спасибо»: 10 раз
Поблагодарили: 1 раз в 1 постах
Добрый день!
Скажите пожалуйста, можно ли использовать cprocsp-cpopenssl-gost с нативной OpenSSL при использовании nginx с КриптоПро CSP?
Или нужно обязательно использовать пропатченную OpenSSL?

Отредактировано пользователем 30 октября 2017 г. 13:10:24(UTC)  | Причина: Не указана

Offline pd  
#331 Оставлено : 30 октября 2017 г. 13:21:10(UTC)
pd


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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 65 раз в 54 постах
Автор: chemtech Перейти к цитате
Добрый день!
Скажите пожалуйста, можно ли использовать cprocsp-cpopenssl-gost с нативной OpenSSL при использовании nginx с КриптоПро CSP?
Или нужно обязательно использовать пропатченную OpenSSL?

Если используете только TLS 1.0, то можно использовать openssl из коробки.

В openssl 1.0.2 нет поддержи TLS 1.2 по ГОСТ, мы добавили.

В openssl 1.1.0 есть поддержка extended master secret для ГОСТа, что появилось в провайдере не очень давно и может привести к отказу на стороне клиента при использовании TLS 1.2, если ОС достаточно свежая, а CSP недостаточно свежий, поэтому мы это временно отключили на стороне сервера.

Если смущает чужой репозиторий, снимите diff, он там совсем мизерный получится.

Уточнение, да, наши engine будут работать с нативным openssl так же как и с пропатченым.

Отредактировано пользователем 30 октября 2017 г. 13:22:12(UTC)  | Причина: уточнение

thanks 1 пользователь поблагодарил pd за этот пост.
chemtech оставлено 30.10.2017(UTC)
Offline chemtech  
#332 Оставлено : 2 ноября 2017 г. 19:12:27(UTC)
chemtech

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

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

Сказал(а) «Спасибо»: 10 раз
Поблагодарили: 1 раз в 1 постах
Добрый день!
Подскажите, пожалуйста, на версии 1.0.2k-8.el7 чтобы openssl увидел gost engine все так же нужно делать Symlink?
Код:

ln -s /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.1.0.0
/sbin/ldconfig /usr/lib64


Код:
ldd /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so.0.0.0
ldd: warning: you do not have execution permission for `/opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so.0.0.0'
	linux-vdso.so.1 =>  (0x00007ffde3934000)
	libcrypto.so.1.0.0 => not found


После создания symlink openssl увидел gost engine
Код:

(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
(gost_capi) CryptoPro ENGINE GOST CAPI ($Revision: 147820 $)


Код:

nginx -v
nginx version: nginx/1.12.2
openssl 1.0.2k-8.el7
CentOS Linux release 7.4.1708 (Core)

Никаких подвижек в этом направлении не было?
Заранее спасибо.

Отредактировано пользователем 3 ноября 2017 г. 6:09:23(UTC)  | Причина: Не указана

Offline pd  
#333 Оставлено : 3 ноября 2017 г. 12:29:29(UTC)
pd


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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 65 раз в 54 постах
Автор: chemtech Перейти к цитате
Никаких подвижек в этом направлении не было?

Подвижек нет -- решение есть.

Почему CentOS решили именовать библиотеку отлично от оригинала нам неизвестно, мы собираемся с оригинальным openssl для покрытия как можно большего количества платформ.

Offline Alk919  
#334 Оставлено : 6 ноября 2017 г. 17:12:35(UTC)
Alk919

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

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

Доброго времени суток.
Подскажите, пожалуйста, как это настроить на Windows. Есть контейнер сертификата вида .000 на ГОСТ2001.
В какой формат нужно экспортировать сертификат и ключ, какая версия КриптоПро CSP(сейчас 4 версия КС2) нужна на сервере, и что нужно еще на сервера кроме специальной сборки nginx (nginx-1.12.2-gost-12.9)?
Offline pd  
#335 Оставлено : 6 ноября 2017 г. 21:21:52(UTC)
pd


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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 65 раз в 54 постах
Автор: Alk919 Перейти к цитате
Есть контейнер сертификата вида .000 на ГОСТ2001.
В какой формат нужно экспортировать сертификат и ключ, какая версия КриптоПро CSP(сейчас 4 версия КС2) нужна на сервере, и что нужно еще на сервера кроме специальной сборки nginx (nginx-1.12.2-gost-12.9)?

Про контейнеры вида .000 не знаем.

Должен быть сертификат в хранилище сертификатов и связанный с ним закрытый ключ в CSP. Проверка (протестировать) через оснастку CSP должна проходить для данного сертификата успешно. В nginx указывается файл сертификата в pem-формате (base64).

КС2 для Windows не обязательно, в режиме КС1 тоже работает. CSP должен быть любой версии от 4.0.

Основные вопросы разобраны в начале темы.

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