Рутокен ЭЦП под linux и windows

Есть задача использовать токен под обоими операционками. Насколько я понял Рутокен ЭЦП можно использовать в двух(по крайней мере режимах):
1. openct + pkcs15-init/pkcs15-tool + opensc-pkcs11.so
Завелось сразу - и консольный интерфейс pkcs15-init позволил интуитивно залить туда ssh private key и потом использовать ssh/ssh-agent с ключем на токене. Но я так понимаю формат хранения ключей/сертификатов не совместим с 'Рутокен Панель Управления' в винде... так?
2. pcsc(d) + pkcs11-tool + librtpkcs11ecp.so
Пришлось повтыкать во взаимоотношения между opensc/ct/pcsc но завелось и  работает аппаратная генерация ключей, но вот загрузить туда существующий ssh ключ пока не удалось.  Правильно ли я понимаю что этот вариант будет совместим с windows рутокен CSP?

Re: Рутокен ЭЦП под linux и windows

Есть кто живой?

Re: Рутокен ЭЦП под linux и windows

Здравствуйте.

Ну вообще то правильнее использовать сгенерированные на токене ключи. Иначе не очень понятно, зачем вообще токен :)
Но если Вам необходимо импортировать ключ, то думаю, что не всё потеряно.

Процедура использования ssh ключей с Рутокеном ЭЦП описана здесь: http://dev.rutoken.ru/pages/viewpage.ac … Id=3440675
Вообще то, Рутокен ЭЦП поддерживает импорт ключей, но так как ssh ключи по другому закодированы, напрямую через pkcs11-tool импортировать их не получится.
Нужно разобраться как перекодировать ключ в нормальный формат и после этого скормить pkcs11-tool-у. Так должно получиться.
Вместо пункта 3.1 будет что-то другое. Остальное не изменится.
Если у Вас получится - поделитесь пожалуйста "тайным знанием", мы добавим в наш FAQ.

Re: Рутокен ЭЦП под linux и windows

Импорт ключа нужен чтоб иметь возможность использовать уже существующие ключи.

С генерацией на токене работает отлично. Смущает вот эта фраза "Рутокен ЭЦП, отформатированный через Панель управления Рутокен." - могу ли я выполнить форматирование из под линукса?

(2014-02-19 14:15:18 отредактировано taviscaron)

Re: Рутокен ЭЦП под linux и windows

С инструкцией для Linux все понятно, вроде бы работает, а как можно использовать тот же самый ключ, сгенерированный на токене, в Windows? Так и не могу понять, какое ПО для этого использовать, всякие модификации Putty заставить работать пока не удалось.

Re: Рутокен ЭЦП под linux и windows

У putty есть форк, работающий через pkcs11, называется putty-sc
http://www.joebar.ch/puttysc/

Re: Рутокен ЭЦП под linux и windows

У меня она не видит ничего на токене.

C:\Users\sychev\Downloads>pprint.exe -l c:\Windows\system32\rtPKCS11ECP.dll -h
Putty SC pkcs11 public key list tool v1.2
see http://www.joebar.ch/puttysc/ for more information

--------------------------------------------
sc: Found token: Taviscaron
--------------------------------------------

На токене есть ключи, сгенерированные так:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45

Re: Рутокен ЭЦП под linux и windows

Добрый день.
У нас пока есть идея, что putty-sc пытается увидеть pkcs11 сертификаты вместе с ключами.

А у Вас только ключи.
Так же мы попытались сгенерировать ssh-keygen-ом и тоже получили такой же результат. Завтра проверим эту теорию.

Re: Рутокен ЭЦП под linux и windows

Добрый день!

Работающее решение мы добавили на наш портал документации http://developer.rutoken.ru/x/I4A0, раздел Порядок действий для клиента на Windows. Пожалуйста, сообщите о ваших успехах.

Re: Рутокен ЭЦП под linux и windows

Т.е. получается, что универсального решения с генерацией ключей на токене - нет?

Re: Рутокен ЭЦП под linux и windows

taviscaron пишет:

Т.е. получается, что универсального решения с генерацией ключей на токене - нет?

Для того чтобы PuttySC увидела ключи, на токене должен присутствовать сертификат.

Если в вашем случае критична аппаратная генерация, то вы можете сначала сгенерировать ключи на токене с помощью pkcs11-tool, а затем выписать для них сертификат с помощью openssl и импортировать его на токен с помощью pkcs11-tool:

$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45
$ sudo apt-get install libengine-pkcs11-openssl
$ openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so
OpenSSL> req -engine pkcs11 -new -key id_45 -keyform engine -x509 -out cert.cert -text -days 365 -text
OpenSSL> x509 -in cert.cert -out cert.der -outform der
OpenSSL> exit
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w cert.der --id 45 --label Rutoken1