Re: Поддержка Рутокен ЭЦП в OpenSSL
У вас до сих пор остались части openct в системе, попробуйте перезагрузиться или перезапустить pcscd и браузер.
Вы не авторизованы. Пожалуйста, войдите или зарегистрируйтесь.
Форум Рутокен → Рутокен и Open Source → Поддержка Рутокен ЭЦП в OpenSSL
Страницы Назад 1 … 7 8 9 10 11 … 17 Далее
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
У вас до сих пор остались части openct в системе, попробуйте перезагрузиться или перезапустить pcscd и браузер.
У вас до сих пор остались части openct в системе, попробуйте перезагрузиться или перезапустить pcscd и браузер.
Да похоже рестарт решил проблему
Спасибо за помощь.
Добрый вечер.
Помогите решить проблему.
uname -a
Linux tohil-OEM 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
openssl version
OpenSSL 1.0.1e 11 Feb 2013
opensc-tool -l
# Detected readers (pcsc)
Nr. Card Features Name
0 Yes Aktiv Co. Rutoken S 00 00
Рутокен виден, но странно то что когда подключаю его то в логе pcscd пишет следующее:
sudo pcscd -df
00000000 pcscdaemon.c:233:main() pcscd set to foreground with debug send to stdout
00000163 configfile.l:245:DBGetReaderListDir() Parsing conf directory: /etc/reader.conf.d
00000050 configfile.l:257:DBGetReaderListDir() Skipping non regular file: .
00000030 configfile.l:298:DBGetReaderList() Parsing conf file: /etc/reader.conf.d/libccidtwin
00000090 configfile.l:257:DBGetReaderListDir() Skipping non regular file: ..
00000034 pcscdaemon.c:525:main() pcsc-lite 1.8.6 daemon ready.
00002496 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0001, path: /dev/bus/usb/002/001
00000265 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0001, path: /dev/bus/usb/003/001
00000232 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0001, path: /dev/bus/usb/004/001
00000218 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0001, path: /dev/bus/usb/005/001
00000166 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0001, path: /dev/bus/usb/005/001
00000176 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x046D, PID: 0xC313, path: /dev/bus/usb/005/002
00000169 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x046D, PID: 0xC313, path: /dev/bus/usb/005/002
00000218 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
21797712 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x0A89, PID: 0x0020, path: /dev/bus/usb/002/008
00000023 hotplug_libudev.c:312:HPAddDevice() Adding USB device: Aktiv Co. Rutoken S
00000051 readerfactory.c:978:RFInitializeReader() Attempting startup of Aktiv Co. Rutoken S 00 00 using /usr/lib/pcsc/drivers/ifd-rutokens.bundle/Contents/Linux/librutokens.so
00000188 readerfactory.c:868:RFBindFunctions() Loading IFD Handler 3.0
00132744 readerfactory.c:327:RFAddReader() Using the pcscd polling thread
00005999 eventhandler.c:256:EHStatusHandlerThread() powerState: POWER_STATE_POWERED
00000029 Card ATR: 3B 6F 00 FF 00 56 72 75 54 6F 6B 6E 73 30 20 00 00 90 00
00403981 eventhandler.c:446:EHStatusHandlerThread() powerState: POWER_STATE_UNPOWERED
в этой ветел была подобна я проблема, и там говорилось что нужно переустановить библиотеку libusb.
Но это не дало никаких результатов
+ если проблемы при работе с pkcs11-tool
pkcs11-tool --module /usr/lib/pkcs11-gost/librtpkcs11ecp.so -Ol
Auto configuration failed
140204998088384:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(/usr/lib/pkcs11-gost/libpkcs11_gost.so): /usr/lib/pkcs11-gost/libpkcs11_gost.so: undefined symbol: EC_ex_dup_data_fun
140204998088384:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
140204998088384:error:260B6084:engine routines:DYNAMIC_LOAD:dso not found:eng_dyn.c:450:
140204998088384:error:260BC066:engine routines:INT_ENGINE_CONFIGURE:engine configuration error:eng_cnf.c:204:section=pkcs11_section, name=dynamic_path, value=/usr/lib/pkcs11-gost/libpkcs11_gost.so
140204998088384:error:0E07606D:configuration file routines:MODULE_RUN:module initialization error:conf_mod.c:235:module=engines, value=engine_section, retcode=-1
Нужно создать отсоединенную ЭП файла (PKCS#7). Дальнейшая работа с openssl мне понятна. А вот вытащить закрытый ключ не получается.
Спасибо.
Здравствуйте, Вы пытаетесь работать с библиотекой rtPKCS11ecp которая не поддерживает Рутокен S.
Опишите, пожалуйста, что и как Вы хотите сделать и как были сгенерированы ключи и сертификаты на вашем токене.
Скажите, пожалуйста, правильно я понимаю, что для того чтобы это решение работало на сервере, необходимо чтобы рутокен был физически подключен к этому серверу?
Спасибо.
Скажите, пожалуйста, правильно я понимаю, что для того чтобы это решение работало на сервере, необходимо чтобы рутокен был физически подключен к этому серверу?
Спасибо.
Верно. Подключён, либо каким-нибудь образом проброшен.
Кирилл, а не можно почитать о способах пробросить рутокен на удаленный сервер?
Особо ничего посоветовать не могу.
Если сервер виртуальный, то проще пользоваться пробросом непосредственно от средства виртуализации.
У разных вендоров это по разному делается, надо знать, какая именно виртуализация.
Если это железный сервер или доступа к инструментам виртуализации нет (как в удалённом хостинге, например) то надо попробовать различные usb-over-ip решения.
Здравствуйте!
Очень интересует, каков статус данного "плагина" к OpenSSL в плане его сертификации.
Рутокен ЭЦП и МагПро КриптоПакет являются сертифицированными СКЗИ, однако не ясно, допустимо ли использование данного плагина для обеспечения взаимодействия между ними с ситуациях, когда сертифицированность СКЗИ играет важную роль.
Здравствуйте!
Очень интересует, каков статус данного "плагина" к OpenSSL в плане его сертификации.
Рутокен ЭЦП и МагПро КриптоПакет являются сертифицированными СКЗИ, однако не ясно, допустимо ли использование данного плагина для обеспечения взаимодействия между ними с ситуациях, когда сертифицированность СКЗИ играет важную роль.
Здравствуйте, glaz.
Учитывая тот факт, что криптография внутри плагина не производится, данный плагин не является СКЗИ и, следовательно, сертификация плагина не требуется. В данном случает вся криптография выполняется внутри носителя Рутокен ЭЦП.
Здравствуйте, glaz.
Учитывая тот факт, что криптография внутри плагина не производится, данный плагин не является СКЗИ и, следовательно, сертификация плагина не требуется. В данном случает вся криптография выполняется внутри носителя Рутокен ЭЦП.
Я охотно верю, что криптографических операций внутри самого энджина не производится, однако энджины в openssl как раз служат для реализации внешних(по отношению к openssl) реализаций криптографических алгоритмов, по этому не понимаю, как доказать сертифицирующему органу, что данный энджин является лишь прослойкой между openssl и аппаратным СКЗИ при условии отсутствия исходных кодов.
Я охотно верю, что криптографических операций внутри самого энджина не производится, однако энджины в openssl как раз служат для реализации внешних(по отношению к openssl) реализаций криптографических алгоритмов, по этому не понимаю, как доказать сертифицирующему органу, что данный энджин является лишь прослойкой между openssl и аппаратным СКЗИ при условии отсутствия исходных кодов.
Вы хотите получить в ФСБ сертификат о корректности встраивания?
Добрый день!
Подскажите, пожалуйста, сейчас по-прежнему утилита инициализации рутокен ЭЦП есть только под windows?
Столкнулся со следующей проблемой.
При генерации ключа, если id уже используется, при завершении программы получаю Segmentation fault:
./TokenLib
key with such ID allready exists on token
Segmentation fault (core dumped)
код основан на примерах из этой темы форума:
ENGINE* LoadEngine(const char* pin)
{
ENGINE* engine_pkcs11=NULL;
engine_pkcs11=ENGINE_by_id("dynamic");
if(!engine_pkcs11)
{
return NULL;
}
if(!ENGINE_ctrl_cmd_string(engine_pkcs11, "SO_PATH", "/usr/lib/pkcs11-gost/libpkcs11_gost.so", 0) ||
!ENGINE_ctrl_cmd_string(engine_pkcs11, "ID", "pkcs11_gost", 0) ||
!ENGINE_ctrl_cmd_string(engine_pkcs11, "LOAD", NULL, 0) ||
!ENGINE_ctrl_cmd_string(engine_pkcs11, "MODULE_PATH", "/usr/lib/pkcs11-gost/librtpkcs11ecp.so", 0))
return NULL;
if(!ENGINE_ctrl(engine_pkcs11, CMD_MODULE_PATH, 0,
(void*)"/usr/lib/pkcs11-gost/librtpkcs11ecp.so", NULL)) {
ENGINE_free(engine_pkcs11);
return NULL;
}
if(pin) {
if(!ENGINE_ctrl(engine_pkcs11, CMD_PIN, 0,
(void*)pin, NULL)) {
ENGINE_free(engine_pkcs11);
return NULL;
}
}
if(!ENGINE_init(engine_pkcs11)) {
ENGINE_free(engine_pkcs11);
return NULL;
}
if(!ENGINE_set_default(engine_pkcs11, ENGINE_METHOD_ALL)) {
ENGINE_free(engine_pkcs11);
return NULL;
}
return engine_pkcs11;
}
void UnloadEngine(ENGINE* engine_pkcs11)
{
ENGINE_finish(engine_pkcs11);
ENGINE_free(engine_pkcs11);
}
int en_key(char* argv1, char *argv2)
{
BIO* bio_req=NULL;
X509_REQ* pRequest=NULL;
EVP_PKEY* key1=NULL;
EVP_PKEY* newkey=NULL;
EVP_PKEY_CTX* ctx=NULL;
ENGINE* engine_pkcs11=NULL;
if(!argv1 || !argv2) {
fprintf(stderr, "Bad parameters!");
return 1;
}
/* инициализируем OpenSSL */
ENGINE_load_builtin_engines();
OPENSSL_add_all_algorithms_noconf();
/* загружаем engine, реализующую работу с
Рутокен ЭЦП через библиотеку PKCS#11 */
engine_pkcs11=LoadEngine(
//"pkcs11",
// "rtPKCS11ECP.dll",
argv2);
if(!engine_pkcs11)
return 1;
key1=EVP_PKEY_new();
if(!key1) {
UnloadEngine(engine_pkcs11);
return 1;
}
/* тип ключа ГОСТ Р 34.10-2001 */
if(!EVP_PKEY_set_type(key1, GOST2001_KEY_TYPE)) {
EVP_PKEY_free(key1);
UnloadEngine(engine_pkcs11);
return 1;
}
ctx=EVP_PKEY_CTX_new(key1, NULL);
if(!ctx) {
EVP_PKEY_free(key1);
UnloadEngine(engine_pkcs11);
return 1;
}
if(!EVP_PKEY_keygen_init(ctx)) {
EVP_PKEY_CTX_free(ctx);
UnloadEngine(engine_pkcs11);
return 1;
}
/* параметры ключа */
if(!EVP_PKEY_CTX_ctrl_str(ctx, "paramset", "A")) {
EVP_PKEY_CTX_free(ctx);
UnloadEngine(engine_pkcs11);
return 1;
}
/* ID ключа */
if(!EVP_PKEY_CTX_ctrl_str(ctx, "slot_key_id", argv1)) {
EVP_PKEY_CTX_free(ctx);
UnloadEngine(engine_pkcs11);
return 1;
}
/* PIN-код токена */
if(!EVP_PKEY_CTX_ctrl_str(ctx, "pin", argv2)) {
EVP_PKEY_CTX_free(ctx);
UnloadEngine(engine_pkcs11);
return 1;
}
/* генерация ключа */
if(!EVP_PKEY_keygen(ctx,&newkey)) {
EVP_PKEY_CTX_free(ctx);
UnloadEngine(engine_pkcs11);
return 1;
}
BIO_free(bio_req);
bio_req=NULL;
X509_REQ_free(pRequest);
EVP_PKEY_free(newkey);
EVP_PKEY_CTX_free(ctx);
UnloadEngine(engine_pkcs11);
return 0;
}
valngrid указывает на CApplication::deleteAllCashPin()
valgrind ./TokenLib -v
==18406== Memcheck, a memory error detector
==18406== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==18406== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==18406== Command: ./TokenLib -v
==18406==
key with such ID allready exists on token
==18406== Invalid read of size 4
==18406== at 0x6892110: CApplication::deleteAllCashPin() (in /usr/lib/pkcs11-gost/librtpkcs11ecp.so)
==18406== by 0x68EF609: my_fini (in /usr/lib/pkcs11-gost/librtpkcs11ecp.so)
==18406== by 0x68880E7: ??? (in /usr/lib/pkcs11-gost/librtpkcs11ecp.so)
==18406== by 0x699F7AF: ??? (in /usr/lib/pkcs11-gost/librtpkcs11ecp.so)
==18406== by 0x400F464: _dl_fini (dl-fini.c:259)
==18406== by 0x47EFF50: __run_exit_handlers (exit.c:78)
==18406== by 0x47EFFDC: exit (exit.c:100)
==18406== by 0x47D64DA: (below main) (libc-start.c:258)
==18406== Address 0x6431810 is 0 bytes inside a block of size 32 free'd
==18406== at 0x402BCFC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==18406== by 0x6891D27: CApplication::~CApplication() (in /usr/lib/pkcs11-gost/librtpkcs11ecp.so)
==18406== by 0x47EFF50: __run_exit_handlers (exit.c:78)
==18406== by 0x47EFFDC: exit (exit.c:100)
==18406== by 0x47D64DA: (below main) (libc-start.c:258)
команда
openssl genpkey -engine pkcs11_gost -algorithm GOST2001 -pkeyopt slot_key_id:42 -pkeyopt paramset:A -pkeyopt pin:12345678
отрабатывает корректно, даже в случае занятого id (сообщение key with such ID allready exists on token, valngrid не ругается)
При этом "Invalid read of size 4" проявляется во всех примерах - похоже, что неправильно загружается/выгружается engine.
Ubuntu 12.04 32 bit
Подскажите, пожалуйста, в чем может быть проблема?
Столкнулся со следующей проблемой.
Подскажите, пожалуйста, в чем может быть проблема?
Добрый день.
Информация передана разработчикам. В данный момент производится исследование причин данного поведения.
О результатах исследования будет сообщено дополнительно.
Страницы Назад 1 … 7 8 9 10 11 … 17 Далее
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
Форум Рутокен → Рутокен и Open Source → Поддержка Рутокен ЭЦП в OpenSSL