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

Уведомление

Icon
Error

67 Страницы«<2930313233>»
Опции
К последнему сообщению К первому непрочитанному
Offline realmfoo  
#301 Оставлено : 1 сентября 2017 г. 15:23:57(UTC)
realmfoo

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

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

Поблагодарили: 1 раз в 1 постах
Могу, конечно, ошибаться, но gdb считает, что указатель pem_str структуры EVP_PKEY_ASN1_METHOD ссылается не на настоящий адрес:

Код:
(gdb) where
#0  strlen () at ../sysdeps/x86_64/strlen.S:106
#1  0x00007ffff73c06c7 in look_str_cb (nid=815, sk=0x5555557fa9d0, def=<optimized out>, arg=0x7fffffffcee0) at tb_asnmth.c:218
#2  0x00007ffff73cc6fc in doall_util_fn (arg=0x7fffffffceb0, arg@entry=0x7fffffffce70, func_arg=func_arg@entry=0x7ffff73be960 <int_cb_LHASH_DOALL_ARG>, func=0x0, use_arg=1, lh=0x5555557fa760) at lhash.c:285
#3  lh_doall_arg (lh=0x5555557fa760, func=func@entry=0x7ffff73be960 <int_cb_LHASH_DOALL_ARG>, arg=arg@entry=0x7fffffffceb0) at lhash.c:300
#4  0x00007ffff73beea1 in engine_table_doall (table=<optimized out>, cb=cb@entry=0x7ffff73c0620 <look_str_cb>, arg=arg@entry=0x7fffffffcee0) at eng_table.c:355
#5  0x00007ffff73c0b13 in ENGINE_pkey_asn1_find_str (pe=pe@entry=0x7fffffffcf20, str=str@entry=0x7ffff77467b9 "gost-mac", len=len@entry=8) at tb_asnmth.c:237
#6  0x00007ffff73f4ff3 in EVP_PKEY_asn1_find_str (pe=pe@entry=0x7fffffffcf80, str=str@entry=0x7ffff77467b9 "gost-mac", len=8, len@entry=-1) at ameth_lib.c:208
#7  0x00007ffff773a367 in get_optional_pkey_id (pkey_name=pkey_name@entry=0x7ffff77467b9 "gost-mac") at ssl_ciph.c:393
#8  0x00007ffff773afd2 in ssl_load_ciphers () at ssl_ciph.c:452
#9  0x00007ffff7741db8 in SSL_library_init () at ssl_algs.c:153
#10 0x00005555555921fc in ?? ()
#11 0x000055555557951d in ?? ()
#12 0x000055555557c15a in ?? ()
#13 0x0000555555586f64 in ?? ()
#14 0x0000555555561f03 in ?? ()
#15 0x00007ffff6abc3f1 in __libc_start_main (main=0x555555560870, argc=2, argv=0x7fffffffdb28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdb18) at ../csu/libc-start.c:291
#16 0x0000555555562199 in ?? ()
(gdb) print
The history is empty.
(gdb) frame 1
#1  0x00007ffff73c06c7 in look_str_cb (nid=815, sk=0x5555557fa9d0, def=<optimized out>, arg=0x7fffffffcee0) at tb_asnmth.c:218
218	tb_asnmth.c: No such file or directory.
(gdb) p e
$2 = (ENGINE *) 0x5555557d66e0
(gdb) p *e
$3 = {id = 0x7ffff7e8d2c3 "gost_capi", name = 0x7ffff7e8ca48 "CryptoPro ENGINE GOST CAPI ($Revision: 162493 $)", rsa_meth = 0x0, dsa_meth = 0x0, dh_meth = 0x0, ecdh_meth = 0x0, ecdsa_meth = 0x0, rand_meth = 0x0, store_meth = 0x0, 
  ciphers = 0x7ffff7e4c8a0 <ngg_get_nids_cipher>, digests = 0x7ffff7e4c840 <ngg_get_nids_hash>, pkey_meths = 0x7ffff7e46780 <ngg_get_nids_pkey>, pkey_asn1_meths = 0x7ffff7e46a40 <ngg_get_nids_pkey_asn1>, 
  destroy = 0x7ffff7e47230 <ngg_engine_destroy>, init = 0x7ffff7e4a3b0 <ngg_engine_init>, finish = 0x7ffff7e4a380 <ngg_engine_finish>, ctrl = 0x7ffff7e4b940 <ngg_engine_ctrl>, load_privkey = 0x7ffff7e4c370 <ngg_pkey_load>, 
  load_pubkey = 0x0, load_ssl_client_cert = 0x0, cmd_defns = 0x0, flags = 8, struct_ref = 9, funct_ref = 8, ex_data = {sk = 0x5555557d68b0, dummy = 0}, prev = 0x5555557d6570, next = 0x0}
(gdb) p ameth
$4 = (EVP_PKEY_ASN1_METHOD *) 0x5555557d8870
(gdb) p ameth->pem_str
$5 = 0xa06806f <error: Cannot access memory at address 0xa06806f>
(gdb) p (*ameth)
$6 = {pkey_id = -143749008, pkey_base_id = 32767, pkey_flags = 93824994871472, pem_str = 0xa06806f <error: Cannot access memory at address 0xa06806f>, info = 0x21 <error: Cannot access memory at address 0x21>, 
  pub_decode = 0x7ffff76e9080 <DSA_str_functs+32>, pub_encode = 0x5555557feba0, pub_cmp = 0xa064035, pub_print = 0x21, priv_decode = 0x7ffff76e9090 <DSA_str_functs+48>, priv_encode = 0x55555582d7d0, priv_print = 0xa06506f, 
  pkey_size = 0x21, pkey_bits = 0x7ffff76e90a0 <DSA_str_functs+64>, param_decode = 0x5555557fec60, param_encode = 0xa07e0c2, param_missing = 0x21, param_copy = 0x7ffff76e90b0 <DSA_str_functs+80>, param_cmp = 0x55555582dd70, 
  param_print = 0xa070090, sig_print = 0x21, pkey_free = 0x7ffff76e90c0 <DSA_str_functs+96>, pkey_ctrl = 0x5555557d9760, old_priv_decode = 0xa0710f4, old_priv_encode = 0x21, item_verify = 0x7ffff76e90d0 <DSA_str_functs+112>, 
  item_sign = 0x55555582d9f0}
Offline Дмитрий Пичулин  
#302 Оставлено : 1 сентября 2017 г. 15:47:05(UTC)
pd

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

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

Сказал(а) «Спасибо»: 35 раз
Поблагодарили: 466 раз в 333 постах
Автор: realmfoo Перейти к цитате
Могу, конечно, ошибаться, но gdb считает, что указатель pem_str структуры EVP_PKEY_ASN1_METHOD ссылается не на настоящий адрес:

Код:
(gdb) where
#0  strlen () at ../sysdeps/x86_64/strlen.S:106
#1  0x00007ffff73c06c7 in look_str_cb (nid=815, sk=0x5555557fa9d0, def=<optimized out>, arg=0x7fffffffcee0) at tb_asnmth.c:218
#2  0x00007ffff73cc6fc in doall_util_fn (arg=0x7fffffffceb0, arg@entry=0x7fffffffce70, func_arg=func_arg@entry=0x7ffff73be960 <int_cb_LHASH_DOALL_ARG>, func=0x0, use_arg=1, lh=0x5555557fa760) at lhash.c:285
#3  lh_doall_arg (lh=0x5555557fa760, func=func@entry=0x7ffff73be960 <int_cb_LHASH_DOALL_ARG>, arg=arg@entry=0x7fffffffceb0) at lhash.c:300
#4  0x00007ffff73beea1 in engine_table_doall (table=<optimized out>, cb=cb@entry=0x7ffff73c0620 <look_str_cb>, arg=arg@entry=0x7fffffffcee0) at eng_table.c:355
#5  0x00007ffff73c0b13 in ENGINE_pkey_asn1_find_str (pe=pe@entry=0x7fffffffcf20, str=str@entry=0x7ffff77467b9 "gost-mac", len=len@entry=8) at tb_asnmth.c:237
#6  0x00007ffff73f4ff3 in EVP_PKEY_asn1_find_str (pe=pe@entry=0x7fffffffcf80, str=str@entry=0x7ffff77467b9 "gost-mac", len=8, len@entry=-1) at ameth_lib.c:208
#7  0x00007ffff773a367 in get_optional_pkey_id (pkey_name=pkey_name@entry=0x7ffff77467b9 "gost-mac") at ssl_ciph.c:393
#8  0x00007ffff773afd2 in ssl_load_ciphers () at ssl_ciph.c:452
#9  0x00007ffff7741db8 in SSL_library_init () at ssl_algs.c:153
#10 0x00005555555921fc in ?? ()
#11 0x000055555557951d in ?? ()
#12 0x000055555557c15a in ?? ()
#13 0x0000555555586f64 in ?? ()
#14 0x0000555555561f03 in ?? ()
#15 0x00007ffff6abc3f1 in __libc_start_main (main=0x555555560870, argc=2, argv=0x7fffffffdb28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdb18) at ../csu/libc-start.c:291
#16 0x0000555555562199 in ?? ()
(gdb) print
The history is empty.
(gdb) frame 1
#1  0x00007ffff73c06c7 in look_str_cb (nid=815, sk=0x5555557fa9d0, def=<optimized out>, arg=0x7fffffffcee0) at tb_asnmth.c:218
218	tb_asnmth.c: No such file or directory.
(gdb) p e
$2 = (ENGINE *) 0x5555557d66e0
(gdb) p *e
$3 = {id = 0x7ffff7e8d2c3 "gost_capi", name = 0x7ffff7e8ca48 "CryptoPro ENGINE GOST CAPI ($Revision: 162493 $)", rsa_meth = 0x0, dsa_meth = 0x0, dh_meth = 0x0, ecdh_meth = 0x0, ecdsa_meth = 0x0, rand_meth = 0x0, store_meth = 0x0, 
  ciphers = 0x7ffff7e4c8a0 <ngg_get_nids_cipher>, digests = 0x7ffff7e4c840 <ngg_get_nids_hash>, pkey_meths = 0x7ffff7e46780 <ngg_get_nids_pkey>, pkey_asn1_meths = 0x7ffff7e46a40 <ngg_get_nids_pkey_asn1>, 
  destroy = 0x7ffff7e47230 <ngg_engine_destroy>, init = 0x7ffff7e4a3b0 <ngg_engine_init>, finish = 0x7ffff7e4a380 <ngg_engine_finish>, ctrl = 0x7ffff7e4b940 <ngg_engine_ctrl>, load_privkey = 0x7ffff7e4c370 <ngg_pkey_load>, 
  load_pubkey = 0x0, load_ssl_client_cert = 0x0, cmd_defns = 0x0, flags = 8, struct_ref = 9, funct_ref = 8, ex_data = {sk = 0x5555557d68b0, dummy = 0}, prev = 0x5555557d6570, next = 0x0}
(gdb) p ameth
$4 = (EVP_PKEY_ASN1_METHOD *) 0x5555557d8870
(gdb) p ameth->pem_str
$5 = 0xa06806f <error: Cannot access memory at address 0xa06806f>
(gdb) p (*ameth)
$6 = {pkey_id = -143749008, pkey_base_id = 32767, pkey_flags = 93824994871472, pem_str = 0xa06806f <error: Cannot access memory at address 0xa06806f>, info = 0x21 <error: Cannot access memory at address 0x21>, 
  pub_decode = 0x7ffff76e9080 <DSA_str_functs+32>, pub_encode = 0x5555557feba0, pub_cmp = 0xa064035, pub_print = 0x21, priv_decode = 0x7ffff76e9090 <DSA_str_functs+48>, priv_encode = 0x55555582d7d0, priv_print = 0xa06506f, 
  pkey_size = 0x21, pkey_bits = 0x7ffff76e90a0 <DSA_str_functs+64>, param_decode = 0x5555557fec60, param_encode = 0xa07e0c2, param_missing = 0x21, param_copy = 0x7ffff76e90b0 <DSA_str_functs+80>, param_cmp = 0x55555582dd70, 
  param_print = 0xa070090, sig_print = 0x21, pkey_free = 0x7ffff76e90c0 <DSA_str_functs+96>, pkey_ctrl = 0x5555557d9760, old_priv_decode = 0xa0710f4, old_priv_encode = 0x21, item_verify = 0x7ffff76e90d0 <DSA_str_functs+112>, 
  item_sign = 0x55555582d9f0}

Да, загадка, как будто gost_capi скомпилирован с другой версией и структуры отличаются. Либо кто-то портит память. Странно, что нигде больше данная ошибка не проявляется.

Может у wget есть какая-то особенность?

Какой-то ещё функционал вызывает подобную ошибку?

Знания в базе знаний, поддержка в техподдержке
Offline realmfoo  
#303 Оставлено : 1 сентября 2017 г. 16:19:09(UTC)
realmfoo

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

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

Поблагодарили: 1 раз в 1 постах
Я нашёл похожее поведение wget здесь: https://bugs.launchpad.n...enssl-ibmca/+bug/1543455

Особенность wget в том, что инициализация движка OpenSSL выполняется дважды и это считается "фичей".

В первый раз при инициализации мы получаем:

Код:
Thread 1 "wget" hit Breakpoint 3, look_str_cb (nid=811, sk=0x5555557fa920, def=<optimized out>, arg=0x7fffffffcee0) at tb_asnmth.c:218
218	in tb_asnmth.c
(gdb) p *ameth
$4 = {pkey_id = -152708056, pkey_base_id = 32767, pkey_flags = 93824994871392, pem_str = 0x5555557d8850 "\340\257\177UUU", info = 0x55555582b480 "@\210}UUU", pub_decode = 0x7ffff7e4b040 <ngg_asn1_public_decode_3410>, 
  pub_encode = 0x7ffff7e48cd0 <ngg_asn1_public_encode_3410>, pub_cmp = 0x7ffff7e48bf0 <ngg_asn1_public_cmp_3410>, pub_print = 0x7ffff7e48af0 <ngg_asn1_public_print_3410_unsupported>, 
  priv_decode = 0x7ffff7e49290 <ngg_asn1_decode_3410_unsupported>, priv_encode = 0x7ffff7e49240 <ngg_asn1_encode_3410_unsupported>, priv_print = 0x7ffff7e491f0 <ngg_asn1_print_3410_unsupported>, 
  pkey_size = 0x7ffff7e48ad0 <ngg_asn1_public_key_size_3410>, pkey_bits = 0x7ffff7e48a10 <ngg_asn1_public_key_bits_3410>, param_decode = 0x7ffff7e491a0 <ngg_asn1_param_decode_3410_unsupported>, 
  param_encode = 0x7ffff7e49150 <ngg_asn1_param_encode_3410_unsupported>, param_missing = 0x7ffff7e468a0 <ngg_asn1_param_missing_3410>, param_copy = 0x7ffff7e48eb0 <ngg_asn1_param_copy_3410>, 
  param_cmp = 0x7ffff7e48390 <ngg_asn1_param_cmp_3410>, param_print = 0x7ffff7e48e60 <ngg_asn1_param_print_3410_unsupported>, sig_print = 0x0, pkey_free = 0x7ffff7e4b270 <ngg_asn1_free_3410>, 
  pkey_ctrl = 0x7ffff7e481d0 <ngg_asn1_public_ctrl_3410>, old_priv_decode = 0x0, old_priv_encode = 0x0, item_verify = 0x0, item_sign = 0x0}

А при повторной инициализации уже падаем:

Код:
Thread 1 "wget" hit Breakpoint 3, look_str_cb (nid=815, sk=0x5555557fa9d0, def=<optimized out>, arg=0x7fffffffcee0) at tb_asnmth.c:218
218	in tb_asnmth.c
(gdb) p *ameth
$5 = {pkey_id = -143749008, pkey_base_id = 32767, pkey_flags = 93824994871472, pem_str = 0xa06806f <error: Cannot access memory at address 0xa06806f>, info = 0x21 <error: Cannot access memory at address 0x21>, 
  pub_decode = 0x7ffff76e9080 <DSA_str_functs+32>, pub_encode = 0x5555557feba0, pub_cmp = 0xa064035, pub_print = 0x21, priv_decode = 0x7ffff76e9090 <DSA_str_functs+48>, priv_encode = 0x55555582d7d0, priv_print = 0xa06506f, 
  pkey_size = 0x21, pkey_bits = 0x7ffff76e90a0 <DSA_str_functs+64>, param_decode = 0x5555557fec60, param_encode = 0xa07e0c2, param_missing = 0x21, param_copy = 0x7ffff76e90b0 <DSA_str_functs+80>, param_cmp = 0x55555582dd70, 
  param_print = 0xa070090, sig_print = 0x21, pkey_free = 0x7ffff76e90c0 <DSA_str_functs+96>, pkey_ctrl = 0x5555557d9760, old_priv_decode = 0xa0710f4, old_priv_encode = 0x21, item_verify = 0x7ffff76e90d0 <DSA_str_functs+112>, 
  item_sign = 0x55555582d9f0}


Можете это исправить в gost_capi?
thanks 1 пользователь поблагодарил realmfoo за этот пост.
pd оставлено 01.09.2017(UTC)
Offline Дмитрий Пичулин  
#304 Оставлено : 1 сентября 2017 г. 16:20:41(UTC)
pd

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

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

Сказал(а) «Спасибо»: 35 раз
Поблагодарили: 466 раз в 333 постах
Автор: realmfoo Перейти к цитате
Особенность wget в том, что инициализация движка OpenSSL выполняется дважды и это считается "фичей".

...

Можете это исправить в gost_capi?

Спасибо, исправим в ближайшее время.

Знания в базе знаний, поддержка в техподдержке
Offline cryptofan  
#305 Оставлено : 1 сентября 2017 г. 16:35:02(UTC)
cryptofan

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

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

а тут где-то случайно не описан порядок действий, чтобы из PHP курлом можно было работать с API НБКИ ?
там у них тоже гост
говорят надо так:
Цитата:
1. Обновить в дистрибутиве библиотеку OpenSSL до версии не ниже 1.0.1с и настроить поддержку ГОСТ.
2. Преобразовать выданный ключ и сертификат в формат, понятный OpenSSL. Проверить работу OpenSSL.
3. Подправить расширение OpenSSL в PHP и перекомпилировать сам PHP. Протестировать работу SOAP на PHP.

но 3м пунктом вроде как можно просто curl компильнуть, а ПХП не надо
ваше участие тут в п.2:
Цитата:
Для этого нам понадобится Windows машина с установленным CryptoPRO CSP 3.6. Я его слил с сайта разработчика (там дается демонстрационный режим режим на 3 месяца).
Первое что делаем — экспортируем ключевой контейнер в реестр средствами КриптоПро. Для этого открываем КриптоПро из панели управления Windows. Вставляем наш ключевой носитель в компьютер. Для обычной флешки убеждаемся, что у нас среди считывателей на вкладке «Оборудование» есть «Все съемные диски» и «Реестр». Если у вас не обычная флешка а что-то типа РуТокен либо Etoken либо другой носитель — необходимо наличие его драйверов и библиотеки для использования в КриптоПро (Его должно быть видно в разделе «Настроить Считыватели» на той же вкладке).

и там ещё много действий...

есть что-то попроще?

Отредактировано пользователем 1 сентября 2017 г. 16:46:58(UTC)  | Причина: Не указана

Offline ElenaS  
#306 Оставлено : 1 сентября 2017 г. 17:30:44(UTC)
Елена Серебренникова

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

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Автор: cryptofan Перейти к цитате
а тут где-то случайно не описан порядок действий, чтобы из PHP курлом можно было работать с API НБКИ ?
там у них тоже гост
говорят надо так:
Цитата:
1. Обновить в дистрибутиве библиотеку OpenSSL до версии не ниже 1.0.1с и настроить поддержку ГОСТ.
2. Преобразовать выданный ключ и сертификат в формат, понятный OpenSSL. Проверить работу OpenSSL.
3. Подправить расширение OpenSSL в PHP и перекомпилировать сам PHP. Протестировать работу SOAP на PHP.

но 3м пунктом вроде как можно просто curl компильнуть, а ПХП не надо
ваше участие тут в п.2:
Цитата:
Для этого нам понадобится Windows машина с установленным CryptoPRO CSP 3.6. Я его слил с сайта разработчика (там дается демонстрационный режим режим на 3 месяца).
Первое что делаем — экспортируем ключевой контейнер в реестр средствами КриптоПро. Для этого открываем КриптоПро из панели управления Windows. Вставляем наш ключевой носитель в компьютер. Для обычной флешки убеждаемся, что у нас среди считывателей на вкладке «Оборудование» есть «Все съемные диски» и «Реестр». Если у вас не обычная флешка а что-то типа РуТокен либо Etoken либо другой носитель — необходимо наличие его драйверов и библиотеки для использования в КриптоПро (Его должно быть видно в разделе «Настроить Считыватели» на той же вкладке).

и там ещё много действий...

есть что-то попроще?


Да, машина с Windows не нужна.
В этой теме http://www.cryptopro.ru/....aspx?g=posts&t=9975 и в этой теме http://www.cryptopro.ru/....aspx?g=posts&t=8733 есть упоминания о том, как ставить сертификат. Важно чтобы этот сертификат был доверенным и совпадал по формату с сертификатом доверенного CA, то есть, либо все .pem, либо .cer, был связан с ключом и доступен для служб, которые его используют.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline cryptofan  
#307 Оставлено : 1 сентября 2017 г. 18:28:08(UTC)
cryptofan

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

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

Автор: ElenaS Перейти к цитате
Да, машина с Windows не нужна.
В этой теме http://www.cryptopro.ru/....aspx?g=posts&t=9975 и в этой теме http://www.cryptopro.ru/....aspx?g=posts&t=8733 есть упоминания о том, как ставить сертификат. Важно чтобы этот сертификат был доверенным и совпадал по формату с сертификатом доверенного CA, то есть, либо все .pem, либо .cer, был связан с ключом и доступен для служб, которые его используют.


Елена, там похоже есть один нюанс...
Цитата:
Нашел для себя некоторые интересные моменты, труд имеет смысл. Но вот скажите, зачем вы пишите «Для того чтобы экспортировать данный сертификат в формате PKSC#12 вместе с закрытым ключом — нам понадобится сторонняя утилита. Которую можно либо купить здесь либо найти на просторах интернета по имени p12fromgostcsp.» ??
Если ключ помечен как экспортируемый, то это действие выполняется через диалог просмотра сертификата -> вкладка «состав» -> Копировать в файл. А если ключ не помечен как экспортируемый, то она ничем не поможет. Бесполезная софтина, на мой взгляд.


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

Цитата:
MAC verified OK
Bag Attributes
localKeyID: 01 00 00 00
friendlyName: REGISTRY\\mstaff
Microsoft CSP Name: Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
Error outputting keys and certificates
140017040754368:error:06074079:digital envelope routines:EVP_PBE_CipherInit:unknown pbe algorithm:evp_pbe.c:167:TYPE=1.2.840.113549.1.12.1.80
140017040754368:error:23077073:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 algor cipherinit error:p12_decr.c:83:
140017040754368:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:130:


Вот как раз эта утилита и позволяет избежать такой ошибки. Цитирую разработчиков данной утилиты:

Цитата:
Контейнер PKCS#12, создаваемый утилитой P12FromGostCSP полностью совместим с аналогичными контейнерами, создаваемыми ООО «КриптоКом» (в рамках проекта openssl) и ООО «Топ Кросс», чего, к сожалению, не скажешь о контейнере, создаваемом программными средствами, входящими в состав КриптоПро CSP (начиная с версии R3).

Просмотреть ASN1-структуры контейнера PKCS#12, созданного средствами КриптоПро CSP R3, и контейнеров, созданных другими средствами, удобно утилитами openssl или lirssl следующего вида:

#openssl asn1parse –inform DER –in <контейнер PKCS#12>

Если вы сравните эти структуры, то вам сразу бросится в глаза, что, например, вместо алгоритма хэширования ГОСТ Р 34.11-94 в контейнере от КриптоПро используется SHA1. Еще более интересный результат вы получите, если попробуете посмотреть содержимое контейнера, выполнив следующую команду:

#openssl pkcs12 –in <контейнер PKCS#12>
Offline artioz  
#308 Оставлено : 1 сентября 2017 г. 18:51:51(UTC)
artioz

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

Группы: Участники
Зарегистрирован: 01.09.2017(UTC)
Сообщений: 1
Казахстан
Откуда: Москва

Вот здесь: Настройка ГОСТ-TLS через КриптоПро есть отличное описание как контейнер перевести в формат OpenSSL (проверено, работает!), ну и другие аспекты освещены.

Цитата:
Чтобы сконвертировать ключевой контейнер КриптоПро в нормальный ASN.1/PEM формат,
нужно использовать утилиту http://svn.yourcmc.ru/vi...key-to-openssl.c?view=co (источник: https://habrahabr.ru/post/275039/)


PS. Если здесь запрещены ссылки на сторонние ресурсы, то извините, это мое первое письмо.
Offline ElenaS  
#309 Оставлено : 1 сентября 2017 г. 18:56:21(UTC)
Елена Серебренникова

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

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Автор: artioz Перейти к цитате
Вот здесь: Настройка ГОСТ-TLS через КриптоПро есть отличное описание как контейнер перевести в формат OpenSSL (проверено, работает!), ну и другие аспекты освещены.

Цитата:
Чтобы сконвертировать ключевой контейнер КриптоПро в нормальный ASN.1/PEM формат,
нужно использовать утилиту http://svn.yourcmc.ru/vi...key-to-openssl.c?view=co (источник: https://habrahabr.ru/post/275039/)


PS. Если здесь запрещены ссылки на сторонние ресурсы, то извините, это мое первое письмо.


там верно написано в части изменения формата. также этот вопрос обсуждался в начале этой темы на второй странице.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline cryptofan  
#310 Оставлено : 1 сентября 2017 г. 19:03:56(UTC)
cryptofan

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

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

там пишут:
Цитата:
После этого всё ПО, использующее OpenSSL (в частности, nginx) сможет использовать ГОСТ в протоколе TLS.

ну у меня уже openssl engine показывает gost
и openssl ciphers -v | grep GOST - тоже показывает их
НО этого недостаточно... надо чтобы curl --engine list показывал gost... а для этого нужна ПЕРЕКОМПИЛЯЦИЯ, ведь команда:
openssl s_client -connect icrs.nbki.ru:443
говорит: Cipher: GOST2001-GOST89-GOST89
а CURL ругается: SSL routines:SSL3_GET_SERVER_HELLO:unknown cipher returned
т.е. неизвестный шифр, хотя он есть в openSSL:
Цитата:
openssl ciphers|tr ':' '\n'|grep GOST
GOST2001-GOST89-GOST89
GOST94-GOST89-GOST89

значит надо, как минимум, ПЕРЕКОМПИЛИРОВАТЬ CURL с новым openSSL

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

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