Re: Поддержка Рутокен ЭЦП в OpenSSL

Проблема на вашей стороне. Ругается на watchguard

(2015-07-22 16:14:17 отредактировано maximus)

Re: Поддержка Рутокен ЭЦП в OpenSSL

Кирилл Мещеряков пишет:

Проблема на вашей стороне. Ругается на watchguard

У меня проксей http никаких нет, а watchguard proxy на Вашей стороне и в ее настройках судя по сообщению запрещена передача zip архивов.
Скачать любой zip архив с http://dev.rutoken.ru/ не возможно.

Re: Поддержка Рутокен ЭЦП в OpenSSL

Виктор Ткаченко пишет:

Вот тут все обновленное. В том числе и библиотеки
http://dev.rutoken.ru/pages/viewpage.ac … d=15728686

К сожалению из-за настроек watchguard proxy скачать архив engine-pkcs11_gost.zip не представляется возможным.
Возможно ли загрузить архив например сюда https://download.rutoken.ru/Rutoken/ или загрузить на общедоступный файлообменник.

Re: Поддержка Рутокен ЭЦП в OpenSSL

Добрый вечер друзья!

Столкнулся с аналогичной проблемой, как и maximus. Есть возможность скачать, только https://download.rutoken.ru/Rutoken/Sup … 11_gost.so . О zip архиве нет и речи. Аналогично ругается на watchguard, на моей стороне так же нет прокси.

Спасибо!

(2015-07-24 15:57:43 отредактировано maximus)

Re: Поддержка Рутокен ЭЦП в OpenSSL

Ubuntu Server 14.04.2 LTS 64 bit
OpenSSL 1.0.1f 6 Jan 2014

1. Устанавливаем пакеты:

 sudo apt-get install openssl libengine-pkcs11-openssl libccid libpcsclite1 libtool opensc pcscd


2. Включаем автостарт демона смарт-карт:

 sudo update-rc.d pcscd start 

3. Скачиваем библиотеки:
https://download.rutoken.ru/Rutoken/Sup … 11_gost.so
https://download.rutoken.ru/Rutoken/PKC … cs11ecp.so

4. Правим файл /etc/ssl/openssl.cnf:

openssl_conf = openssl_def

[openssl_def]
engines                 = engine_section

[engine_section]
pkcs11                  = pkcs11_section

[gost_section]
default_algorithms      = ALL

[pkcs11_section]
engine_id = dynamic
dynamic_path = /usr/lib/pkcs11-gost/pkcs11_gost.so
MODULE_PATH = /usr/lib/pkcs11-gost/librtpkcs11ecp.so
init = 0

5. Проверяем работоспособность электронного ключа:

pkcs11-tool --module /usr/lib/pkcs11-gost/librtpkcs11ecp.so -Ol
Using slot 0 with a present token (0x0)
Logging in to "Rutoken ECP <no label>".
Please enter User PIN: 
Public Key Object; GOSTR3410 
  PARAMS OID: 06072a850302022400
....

6. Пробуем подписать файл в формате PKCS#7, подпись в отдельном файле. Перед этим получил сертификат в формате PEM

openssl smime -engine pkcs11_gost -sign -in request.xml -out request.xml.p7s -outform der -noverify -binary -signer cert.pem -inkey 1c7e30060000000030691692631fd001 -keyform engine
invalid engine "pkcs11_gost"
139790633715360:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(/usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libpkcs11_gost.so): /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libpkcs11_gost.so: cannot open shared object file: No such file or directory
139790633715360:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
139790633715360:error:260B6084:engine routines:DYNAMIC_LOAD:dso not found:eng_dyn.c:450:
139790633715360:error:2606A074:engine routines:ENGINE_by_id:no such engine:eng_list.c:417:id=pkcs11_gost
139790633715360:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(libpkcs11_gost.so): libpkcs11_gost.so: cannot open shared object file: No such file or directory
139790633715360:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
139790633715360:error:260B6084:engine routines:DYNAMIC_LOAD:dso not found:eng_dyn.c:450:
no engine specified
unable to load signing key file

Openssl говорит что /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libpkcs11_gost.so - нет такого файла, берем pkcs11_gost.so переименовываем в libpkcs11_gost.so и кладем его по указанному пути.

openssl smime -engine pkcs11_gost -sign -in request.xml -out request.xml.p7s -outform der -noverify -binary -signer cert.pem -inkey 1c7e30060000000030691692631fd001 -keyform engine
can't use that engine
140604207441568:error:260B806D:engine routines:ENGINE_TABLE_REGISTER:init failed:eng_table.c:174:
Ошибка сегментирования (сделан дамп памяти)

Что я делаю не так?

Re: Поддержка Рутокен ЭЦП в OpenSSL

добрый день.
конфиг файл должен выглядеть примерно так:

[openssl_def]
engines = engine_section

[engine_section]
gost = gost_section
pkcs11 = pkcs11_section

[gost_section]
engine_id = gost
dynamic_path = /path_to_openssl/lib/engines/libgost.so
default_algorithms = ALL
init = 0

[pkcs11_section]
engine_id = pkcs11_gost
dynamic_path = path_to_rutoken/pkcs11gost.so
MODULE_PATH = path_to_rutoken/librtpkcs11ecp.so
init = 0

До того, как начнёте выполнять боевые команды - выполните

openssl engine -v

Если все равно будет крэшдамп - пришлите его пожалуйста.

(2015-08-03 22:28:06 отредактировано maximus)

Re: Поддержка Рутокен ЭЦП в OpenSSL

Поправил конфиг:

openssl_conf = openssl_def

[openssl_def]
engines                 = engine_section

[engine_section]
gost                    = gost_section
pkcs11                  = pkcs11_section

[gost_section]
engine_id = gost
dynamic_path = /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgost.so
default_algorithms      = ALL
init = 0

[pkcs11_section]
engine_id = pkcs11_gost
dynamic_path = /usr/lib/pkcs11-gost/pkcs11_gost.so
MODULE_PATH = /usr/lib/pkcs11-gost/librtpkcs11ecp.so
init = 0

Как и в прошлый раз openssl жаловался на отсутствие libpkcs11_gost.so, переименовал pkcs11_gost.so и положил сюда /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/

openssl engine -v
(rsax) RSAX engine support
(dynamic) Dynamic engine loading support
     SO_PATH, NO_VCHECK, ID, LIST_ADD, DIR_LOAD, DIR_ADD, LOAD
openssl smime -engine pkcs11_gost -sign -in request.xml -out request.xml.p7s -outform der -noverify -binary -signer cert.pem -inkey 1c7e30060000000030691692631fd001 -keyform engine
can't use that engine
140402035947168:error:260B806D:engine routines:ENGINE_TABLE_REGISTER:init failed:eng_table.c:174:
Ошибка сегментирования (сделан дамп памяти)

Крэш дамп отправил по почте.

Re: Поддержка Рутокен ЭЦП в OpenSSL

Причина в OpenSSL 1.0.1f
В этой версии баг, который не позволяет одновременно использовать 2 engine.

На этой странице написано http://dev.rutoken.ru/pages/viewpage.ac … d=15728731

(2015-08-04 21:35:06 отредактировано maximus)

Re: Поддержка Рутокен ЭЦП в OpenSSL

Виктор Ткаченко пишет:

Причина в OpenSSL 1.0.1f
В этой версии баг, который не позволяет одновременно использовать 2 engine.

На этой странице написано http://dev.rutoken.ru/pages/viewpage.ac … d=15728731

Здравствуйте.
Скачал и собрал OpenSSL 1.0.1p

sudo apt-get install zlib1g-dev
wget https://github.com/openssl/openssl/archive/OpenSSL_1_0_1p.tar.gz
tar xzf openssl-1.0.1p.tar.gz
cd openssl-OpenSSL_1_0_1p
./config -fPIC shared zlib enable-rfc3779
make depend
make all
make tests
sudo make install

openssl.cnf

openssl_conf = openssl_def

[openssl_def]
engines                 = engine_section

[engine_section]
gost                    = gost_section
pkcs11                  = pkcs11_section

[gost_section]
engine_id = gost
dynamic_path = /usr/local/ssl/lib/engines/libgost.so
default_algorithms      = ALL
init = 0

[pkcs11_section]
engine_id = pkcs11_gost
dynamic_path = /usr/lib/pkcs11_gost/pkcs11_gost.so
MODULE_PATH = /usr/lib/pkcs11_gost/librtpkcs11ecp.so
init = 0
/usr/local/ssl/bin/openssl version
OpenSSL 1.0.1p 9 Jul 2015

/usr/local/ssl/bin/openssl engine -v
(rsax) RSAX engine support
(dynamic) Dynamic engine loading support
     SO_PATH, NO_VCHECK, ID, LIST_ADD, DIR_LOAD, DIR_ADD, LOAD

Пытаемся подписать файл:
(pkcs11_gost.so был переименован в libpkcs11_gost.so и положен в папку /usr/local/ssl/lib/engines/, здесь еще одна его копия /usr/lib/pkcs11_gost/pkcs11_gost.so)

/usr/local/ssl/bin/openssl smime -engine pkcs11_gost -sign -in request.xml -out request.xml.p7s -outform der -noverify -binary -signer cert.pem -inkey 1c7e30060000000030691692631fd001 -keyform engine
can't use that engine
140085809129120:error:260B806D:engine routines:ENGINE_TABLE_REGISTER:init failed:eng_table.c:175:
no engine specified
unable to load signing key file

Re: Поддержка Рутокен ЭЦП в OpenSSL

Кирилл Мещеряков пишет:

этот способ будет работать на 100% если вы далее используете opensc-pkcs11.so
но форматировать так действительно можно, хотя на токене конечно останется "мусор" от формата opensc

Утилита пока только готовится к релизу, я вышлю вам промежуточную версию на почту. Какая платформа вас интересует?

Добрый день.
Утилита уже вышла в релиз? Где можно её скачать?
Спасибо.

Re: Поддержка Рутокен ЭЦП в OpenSSL

Прошел уже месяц, ответа от тех. поддержки нет.
Как подписать файл в формате PKCS#7?

(2015-12-15 15:59:49 отредактировано Vermin)

Re: Поддержка Рутокен ЭЦП в OpenSSL

Здравствуйте, maximus!
Извиняюсь за нашу задержку с ответом.

Судя по тому, что у вас

/usr/local/ssl/bin/openssl engine -v
(rsax) RSAX engine support
(dynamic) Dynamic engine loading support
     SO_PATH, NO_VCHECK, ID, LIST_ADD, DIR_LOAD, DIR_ADD, LOAD

вы не указали в файле конфигурации

# Extra OBJECT IDENTIFIER info:
#oid_file               = $ENV::HOME/.oid
oid_section             = new_oids
openssl_conf            = openssl_def

Должно быть так:

tester@tester-pc:~$ openssl engine -v
(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
     SO_PATH, NO_VCHECK, ID, LIST_ADD, DIR_LOAD, DIR_ADD, LOAD
(gost) Reference implementation of GOST engine
     CRYPT_PARAMS
(pkcs11_gost) pkcs11 gost engine
     SO_PATH, MODULE_PATH, VERBOSE, QUIET, PIN

Re: Поддержка Рутокен ЭЦП в OpenSSL

Vermin пишет:

Здравствуйте, maximus!
Извиняюсь за нашу задержку с ответом.

Судя по тому, что у вас

/usr/local/ssl/bin/openssl engine -v
(rsax) RSAX engine support
(dynamic) Dynamic engine loading support
     SO_PATH, NO_VCHECK, ID, LIST_ADD, DIR_LOAD, DIR_ADD, LOAD

вы не указали в файле конфигурации

# Extra OBJECT IDENTIFIER info:
#oid_file               = $ENV::HOME/.oid
oid_section             = new_oids
openssl_conf            = openssl_def

Должно быть так:

tester@tester-pc:~$ openssl engine -v
(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
     SO_PATH, NO_VCHECK, ID, LIST_ADD, DIR_LOAD, DIR_ADD, LOAD
(gost) Reference implementation of GOST engine
     CRYPT_PARAMS
(pkcs11_gost) pkcs11 gost engine
     SO_PATH, MODULE_PATH, VERBOSE, QUIET, PIN

Здравствуйте :-)
Обалдеть работает!!!
У меня эта строка(openssl_conf = openssl_def) в другом разделе конфигурации была.
Кстати с версией OpenSSL 1.0.1f, тоже все работает.
Спасибо!!!
P.S. Обновили бы шапку темы, что бы она соответствовала реальному положению вещей.

Re: Поддержка Рутокен ЭЦП в OpenSSL

А что у вас за проект, если не секрет?

Re: Поддержка Рутокен ЭЦП в OpenSSL

Виктор Ткаченко пишет:

А что у вас за проект, если не секрет?

Получение реестра запрещенных сайтов. Для получения реестра необходимо сгенерировать запрос и подписать его в формате PKCS#7.
https://github.com/Prototype-X/blacklist-rkn-tool

Документация - http://vigruzki.rkn.gov.ru/docs/descrip … actual.pdf