Re: Поддержка Рутокен ЭЦП в OpenSSL
Формат PKCS#7 предполагает наличие сертификата. У вас конфиг берется не из того места. Вам надо правильно указать переменную окружения OPENSSL_CONF
Вы не авторизованы. Пожалуйста, войдите или зарегистрируйтесь.
Форум Рутокен → Рутокен и Open Source → Поддержка Рутокен ЭЦП в OpenSSL
Страницы Назад 1 … 4 5 6 7 8 … 17 Далее
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
Формат PKCS#7 предполагает наличие сертификата. У вас конфиг берется не из того места. Вам надо правильно указать переменную окружения OPENSSL_CONF
Подскажите, возможна ли миграция с КриптоПро на openssl ?
Опишу ситуацию подробнее, чтобы был понятен вопрос. Для работы с некоторым сайтом была преобретена ЭЦП. Удостоверяющий центр выдал нам USB носитель рутокен и комплект ПО "Крипто Про CSP". Мой коллега с помощью данного ПО подписал запрос на сайт (т.е. все необходимые действия для инициализации токена уже выполнены, с помощью КриптоПро можно подписывать запросы). Сейчас стоит задача переноса всего этого хозяйства на сервер. Проблема в том, что у нас нет виндовых серверов, по этому использовать КриптоПро мы не можем. Но нам отлично подойдет openssl для подписи запросов.
Подскажите каким образом в этой замечательной схеме мне заменить КриптоПро/windows на openssl/linux?
p.s. ключи внутри токена не экспортируемые.
Подскажите, возможна ли миграция с КриптоПро на openssl ?
Опишу ситуацию подробнее, чтобы был понятен вопрос. Для работы с некоторым сайтом была преобретена ЭЦП. Удостоверяющий центр выдал нам USB носитель рутокен и комплект ПО "Крипто Про CSP". Мой коллега с помощью данного ПО подписал запрос на сайт (т.е. все необходимые действия для инициализации токена уже выполнены, с помощью КриптоПро можно подписывать запросы). Сейчас стоит задача переноса всего этого хозяйства на сервер. Проблема в том, что у нас нет виндовых серверов, по этому использовать КриптоПро мы не можем. Но нам отлично подойдет openssl для подписи запросов.
Подскажите каким образом в этой замечательной схеме мне заменить КриптоПро/windows на openssl/linux?
p.s. ключи внутри токена не экспортируемые.
Если ключи неэкспортируемые, просто так их достать из контейнера наверное не получится. Возможно, следует рассмотреть вариант использования КриптоПро для Linux или КриптоПро JCP.
Ответ от нашего разработчика, который разбирался в проблеме:
Тут речь идет об архитектуре x86_64, но думаю что для x86 будет похоже.Из-за экспортных ограничений USA в дистрибутивах fedora, rhel, centos, и т.д. используется openssl без поддержки эллиптических кривых.
Идея, как это исправить, взята тут: https://bitcointalk.org/index.php?topic … #msg946289
yum install mock yumdownloader --source openssl
Далее предполагается, что структура каталогов для сборки пакетов уже настроена.
rpm -ivh openssl-1.0.0j-1.fc17.src.rpm
правим SPECS/openssl.spec:
Заменяем SOURCE0 на скачанный из
http://www.openssl.org/source/openssl-1.0.0j.tar.gz
Включаем сборку с EC.
После "./Configure" примерно на третей строке увидите:enable-cms enable-md2 no-idea no-mdc2 no-rc5 no-ec no-ecdh no-ecdsa \
меняем так, чтобы получилось:
enable-cms enable-md2 no-idea no-mdc2 no-rc5 enable-ec enable-ecdh enable-ecdsa \
Отключаем
Source1: hobble-openssl
(line 29) чтобы стало так:
#Source1: hobble-openssl
закомментируем еще одну строчку
%{SOURCE1} > /dev/null
получилось так:
#%{SOURCE1} > /dev/null
Увеличим номер релиза "Release:"
"Release:"
меняем
Release: 1%{?dist}
должно получиться так:
Release: 2%{?dist}
(готовый openssl.spec)
rpmbuild -bs ~/redhat/SPECS/openssl.spec mock -r fedora-17-x86_64 ~/redhat/SRPMS/openssl-1.0.0j-2.fc17.R.src.rpm
устанавливаем, результат.
rpm -Uvh ~/redhat/RPMS/x86_64/openssl-1.0.0j-2.fc17.R.x86_64.rpm
yum install pcsc-lite-ccid pcsc-tools.x86_64 service pcscd restart
Fedora 18, проделал все вышеописанные махинации:
1) скачал не обрезанный openSSL
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
2) прописал его в spec
30: Source: openssl-%{version}.tar.gz
3) включил ec
228: enable-cms enable-md2 no-mdc2 no-rc5 enable-ec no-ec2m enable-ecdh enable-ecdsa no-srp \
4) закоментил Source1
31: #Source1: hobble-openssl
142: #%{SOURCE1} > /dev/null
5) Увеличил номер релиза
24: Release: 8%{?dist}
Запускаю построение
rpmbuild -bb ~/rpmbuild/SPECS/openssl.spec
получаю ошибку:
make[2]: Entering directory `/home/mikhail/rpmbuild/BUILD/openssl-1.0.1c/apps'
../libcrypto.so: undefined reference to `FIPS_ecdsa_openssl'
../libcrypto.so: undefined reference to `FIPS_ec_key_generate_key'
../libcrypto.so: undefined reference to `FIPS_ecdh_openssl'
../libcrypto.so: undefined reference to `fips_ec_gfp_nist_method'
../libssl.so: undefined reference to `EVP_ecdsa'
../libcrypto.so: undefined reference to `fips_ec_gfp_mont_method'
../libcrypto.so: undefined reference to `fips_ec_gfp_simple_method'
collect2: error: ld returned 1 exit status
make[2]: *** [link_app.gnu] Error 1
make[2]: Leaving directory `/home/mikhail/rpmbuild/BUILD/openssl-1.0.1c/apps'
make[1]: *** [openssl] Error 2
make[1]: Leaving directory `/home/mikhail/rpmbuild/BUILD/openssl-1.0.1c/apps'
make: *** [build_apps] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.rYYbgG (%build)
в чем проблема?
В RedHat мне подсказали, что fips патчи виноваты в итоге после исключения патчей 40, 56, 58, 67 удалось собрать rpm пакет.
https://bugzilla.redhat.com/show_bug.cgi?id=319901
Но это не решило проблему использования вашей библиотеки:
$ openssl ciphers
Error configuring OpenSSL
3075643116:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:187:filename(/usr/lib/pkcs11-gost/libpkcs11_gost.so): libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
3075643116:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
3075643116:error:260B6084:engine routines:DYNAMIC_LOAD:dso not found:eng_dyn.c:450:
3075643116: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
3075643116:error:0E07606D:configuration file routines:MODULE_RUN:module initialization error:conf_mod.c:235:module=engines, value=engine_section, retcode=-1
Скажите, а /usr/lib/pkcs11-gost/libpkcs11_gost.so существует?
Скажите, а /usr/lib/pkcs11-gost/libpkcs11_gost.so существует?
# ls -la /usr/lib/pkcs11-gost
total 2388
drwxr-xr-x. 2 root root 4096 янв. 11 13:17 .
dr-xr-xr-x. 196 root root 102400 янв. 14 13:00 ..
-rwxr-xr-x. 1 root root 190263 дек. 9 2011 libpkcs11_gost.so
-rwxr-xr-x. 1 root root 2138760 дек. 8 2011 librtpkcs11ecp.so
/usr/lib/libp11.so.2 именно из нашего архива? Libtool установлен?
$ md5sum /usr/lib/libp11.so.2
890251a241b9041de7885046d4b1b04a /usr/lib/libp11.so.2
$ sha1sum /usr/lib/libp11.so.2
3d161218dc7bd163232144e252e56f7b3b8e47a8 /usr/lib/libp11.so.2
$ rpm -q libtool
libtool-2.4.2-7.fc18.i686
День добрый.
Пытаюсь прикрутить поддержку ГОСТ/OpenSSL к Debian Squeeze x64. Пока, к сожалению, безуспешно.
Что сделано:
Поставил обновлённые пакеты из Wheezy (дополнительных зависимостей они с собой практически не потянули)
$ apt-show-versions openssl opensc pcscd libtool libccid libpcsclite1
libccid 1.4.7-1 newer than version in archive
libpcsclite1 1.8.4-1 newer than version in archive
libtool 2.4.2-1.1 newer than version in archive
opensc 0.12.2-3 newer than version in archive
openssl 1.0.1e-1 newer than version in archive
pcscd 1.8.4-1 newer than version in archive
Скачал архив с http://ubuntuone.com/2vPRtZZA1jSHRilHa292xd , библиотеки положил по инструкции в /usr/lib/ и /usr/lib/pkcs11-gost/ , ваш конфиг в /etc/ssl/
Токен видится, форматируется через pkcs15-init, Openssl алгоритм из конфига подхватывает:
$ openssl ciphers -v | grep GOST
GOST2001-GOST89-GOST89 SSLv3 Kx=unknown Au=unknown Enc=unknown Mac=unknown
сертификаты вроде бы нормально создаются и подписываются.
Проблема:
После выхода из сессии gnome отказывается стартовать, то есть дальше загрузочного экрана gdm3 дело не идёт. С openssl.cnf который был в пакете по умолчанию или вообще без него загрузка проходит нормально, а с вашим конфигом - вылетает. При этом .xsession-errors явно ругается на openssl:
/etc/gdm3/Xsession: Beginning session setup...
bind failed
Auto configuration failed
3817:error:260B606D:engine routines:DYNAMIC_LOAD:init failed:eng_dyn.c:521:
3817:error:260BC065: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
3817:error:0E07606D:configuration file routines:MODULE_RUN:module initialization error:conf_mod.c:235:module=engines, value=engine_section, retcode=-1
На всякий случай обновил openssl из sid - получил версию 1.0.1e-2, ошибка та же самая.
Пытался искать причины ошибки - в основном ссылаются на некую удалённую страницу с сайта opensc, плюс пишут что эта проблема возникает когда openssl пытается дважды загрузить конфиг.
Пожалуйста, подскажите хотя бы в какую сторону искать. С openssl я раньше не работал, поэтому слабо представляю себе в чём может быть проблема.
Добрый день.
Помогите, пожалуйста, разобраться в ситуации.
Выполняю команду генерацию ключа
openssl genpkey -engine pkcs11_gost -algorithm GOST2001 -pkeyopt slot_key_id:100 -pkeyopt paramset:A -pkeyopt pin:12345678
на токене появляется два объекта - private key и public key
создаю сертификат
openssl req -engine pkcs11_gost -x509 -new -key 100 -keyform engine -out ca.crt
Но значения public key ca.crt и public key на токене разные. Я что-то делаю неправильно?
ОС: Ubuntu 12.04
настройка проводилась по инструкции https://forum.rutoken.ru/topic/1639/
В сертификате открытый ключ уложен по-другому
День добрый.
Пытаюсь прикрутить поддержку ГОСТ/OpenSSL к Debian Squeeze x64. Пока, к сожалению, безуспешно.
Что сделано:
Поставил обновлённые пакеты из Wheezy (дополнительных зависимостей они с собой практически не потянули)$ apt-show-versions openssl opensc pcscd libtool libccid libpcsclite1 libccid 1.4.7-1 newer than version in archive libpcsclite1 1.8.4-1 newer than version in archive libtool 2.4.2-1.1 newer than version in archive opensc 0.12.2-3 newer than version in archive openssl 1.0.1e-1 newer than version in archive pcscd 1.8.4-1 newer than version in archive
Скачал архив с http://ubuntuone.com/2vPRtZZA1jSHRilHa292xd , библиотеки положил по инструкции в /usr/lib/ и /usr/lib/pkcs11-gost/ , ваш конфиг в /etc/ssl/
Токен видится, форматируется через pkcs15-init, Openssl алгоритм из конфига подхватывает:
$ openssl ciphers -v | grep GOST GOST2001-GOST89-GOST89 SSLv3 Kx=unknown Au=unknown Enc=unknown Mac=unknown
сертификаты вроде бы нормально создаются и подписываются.
Проблема:
После выхода из сессии gnome отказывается стартовать, то есть дальше загрузочного экрана gdm3 дело не идёт. С openssl.cnf который был в пакете по умолчанию или вообще без него загрузка проходит нормально, а с вашим конфигом - вылетает. При этом .xsession-errors явно ругается на openssl:/etc/gdm3/Xsession: Beginning session setup... bind failed Auto configuration failed 3817:error:260B606D:engine routines:DYNAMIC_LOAD:init failed:eng_dyn.c:521: 3817:error:260BC065: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 3817:error:0E07606D:configuration file routines:MODULE_RUN:module initialization error:conf_mod.c:235:module=engines, value=engine_section, retcode=-1
На всякий случай обновил openssl из sid - получил версию 1.0.1e-2, ошибка та же самая.
Пытался искать причины ошибки - в основном ссылаются на некую удалённую страницу с сайта opensc, плюс пишут что эта проблема возникает когда openssl пытается дважды загрузить конфиг.
Пожалуйста, подскажите хотя бы в какую сторону искать. С openssl я раньше не работал, поэтому слабо представляю себе в чём может быть проблема.
Нюнасов 2. Форматировать токен нужно не утилитами opensc, а нашей панелью управления. Наш конфиг - урезанный. Вам имеет смысл использовать умолчательный конфиг (который идет с openssl), а для работы с нашим engine - наш конфиг.
В сертификате открытый ключ уложен по-другому
Спасибо за быстрый ответ!
Подскажите тогда такую вещь, правильно ли я импортирую сертификат на токен?
pkcs11-tool --module=/usr/lib/pkcs11-gost/librtpkcs11ecp.so --write-object test.der --type cert --login --id 100 --label "testcertforlogin"
Сомнения возникли из-за того, что при настройке PAM-аутентификации в pam_p11
authkey = PKCS11_find_key(authcert);
не находит private ключа для сертификата.
вообще говоря и не обязан. Потому что сертификат гостовый. Какую версию libp11 вы используете c PAM-ом? И что у вас за проет, если не секрет?
Страницы Назад 1 … 4 5 6 7 8 … 17 Далее
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
Форум Рутокен → Рутокен и Open Source → Поддержка Рутокен ЭЦП в OpenSSL