(2010-10-27 11:40:50 отредактировано sandman)

Rutoken ECP в Gentoo Linux

Добрый день, есть проблема, может кто подскажет как решать приобрел Рутокен ЭЦП, насколько я понимаю в Linux он работает, действительно вставляю в систему с OpenSuSE в ядре вижу строки
usb 3-4: Product: Rutoken ECP далее строку вида Manufacturer: Aktiv то есть всё видится
вставляю в основную Linux Gentoo машину в ядрк проскакивает
skipped 1 class/vendor specific interface descriptors
и, соответсвенно, токен не виден. Понятно что ядро не видит данный девайс, в связи с чем вопрос, кто может сказать какие необходимые модули ядра должны быть включены для работы с данным устройством? минимально необходимые параметры.
спасибо за ответы.

Re: Rutoken ECP в Gentoo Linux

Здравствуйте.
Никаких дополнительных модулей ядра для поддержки Рутокена не нужно.
Нужна лишь поддержка ядром usb-устройств.
Также необходим hal или udev. 
Для непосредственной работы с токеном, как устройством, аналогичным смарткарте, потребуется специальное программное обеспечение (middleware) OpenSC, OpenCT и (или) pcsc-lite.
В OpenSUSE почти все это настраивается по умолчанию, в Gentoo же все зависит от вас.

Re: Rutoken ECP в Gentoo Linux

наверное дело действительно в hal, он собран ещё до включения поддержки smartcard  ( в make.conf) попробую пересобрать...

Re: Rutoken ECP в Gentoo Linux

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

Никаких дополнительных модулей ядра для поддержки Рутокена не нужно.
Нужна лишь поддержка ядром usb-устройств.

Как минимум нужен драйвер хост-контроллера uhci_hcd (ohci_hcd ehci_hcd) и поддержка usbfs (или usbdev).

Re: Rutoken ECP в Gentoo Linux

sandman пишет:

наверное дело действительно в hal, он собран ещё до включения поддержки smartcard  ( в make.conf) попробую пересобрать...

HAL не нужен, если вы загружаете драйвера и предоставляете нужные права доступа (на запись) к устройству.

(2010-11-09 14:16:25 отредактировано sandman)

Re: Rutoken ECP в Gentoo Linux

Вобщем удалось собрать все программы поигравшись с USE флагами, теперь девайс виден.
Однако до конца не удалось завести данный токен, суть в том что при pkcs15-init -E
возникает ошибка  sc_pkcs15init_bind: Unsupported card driver default        
если подключаюсь по opensc-explorer, то тоже лезут ошибки... однако если указать конкретный драйвер         
opensc-     explorer -c  rutoken_ecp         то всё работает нормально, отрабатывают   ls         в том числе принимает ПИН по  verify         и выдает файлы по get         .
таким образом могу сделать вывод что работает всё нормально, только pkcs15-init делает это  через "   Unsupported card driver default". Кто знает как указать , где прописать чтбы всегда использовать по дефолту драйвер не "default" а "rutoken_ecp" ?      

Re: Rutoken ECP в Gentoo Linux

OpenSC у Вас работает через pcsc-lite или OpenCT ?

(2010-11-09 19:54:22 отредактировано sandman)

Re: Rutoken ECP в Gentoo Linux

Как я понимаю через pcsc-lite
home ~ # opensc-tool -l
Readers known about:
Nr.    Driver     Name
0      openct     OpenCT reader (detached)
1      openct     OpenCT reader (detached)
2      pcsc       Aktiv Rutoken ECP 00 00

Re: Rutoken ECP в Gentoo Linux

На текущий момент удалил все упоминания об openct пересобрал без него , в результате получил один ридер
# opensc-tool -l
Readers known about:
Nr.    Driver     Name
0      pcsc       Aktiv Rutoken ECP 00 00
opensc-explorer работает с токеном корректно,
однако при  комманде 
pkcs15-init --erase-card
появляется сообщение
Using reader with a card: Aktiv Rutoken ECP 00 00
и на этом виснет, причем USB порт  даже после перезагрузки не освобождается, в общем то система по reboot перегрузиться не может , виснет на начальной загрузке udev  ещё при закрузке с ramfs.  Освобождается порт  только при полном выключении питании (физически отключая шнур питания от системника). Кто подскажет что на этот раз может быть... ?

Re: Rutoken ECP в Gentoo Linux

Спасибо за информацию, мы попробуем разобраться с этим.
Попробуйте сделать наоборот, подключите Рутокен через OpenCT, вместо pcsc-lite.

(2010-11-11 18:56:43 отредактировано sandman)

Re: Rutoken ECP в Gentoo Linux

Дополнительная информация, pcsc-lite собран с поддержкой usb но без поддержки hal (если собрать с hal то как раз и происходит зависание порта usb) 
в общем вот такая картина:
home bin # opensc-tool -l 
Readers known about:
Nr.    Driver     Name
0      pcsc       Aktiv Rutoken ECP 00 00
home bin # opensc-explorer -c rutoken_ecp 
OpenSC Explorer version 0.11.13
Using reader with a card: Aktiv Rutoken ECP 00 00
OpenSC [3F00]> ls 
FileID  Type  Size
[6000]    DF     0
[1000]    DF     0
OpenSC [3F00]> ^C 
home bin # opensc-explorer 
OpenSC Explorer version 0.11.13
Using reader with a card: Aktiv Rutoken ECP 00 00
[opensc-explorer] card.c:213:sc_connect_card: unable to find driver for inserted card 
[opensc-explorer] card.c:228:sc_connect_card: returning with: Card is invalid or cannot be handled                                                        
Failed to connect to card: Card is invalid or cannot be handled                                                                                         
home bin # pkcs15-init -E 
Using reader with a card: Aktiv Rutoken ECP 00 00
[pkcs15-init] card.c:213:sc_connect_card: unable to find driver for inserted card 
[pkcs15-init] card.c:228:sc_connect_card: returning with: Card is invalid or cannot be handled                                                            
Failed to connect to card: Card is invalid or cannot be handled

Re: Rutoken ECP в Gentoo Linux

Пришлите нам, пожалуйста, все логи, которые только можно получить.
Начиная от uname -a до отладочного вывода opensc и pcscd при работе pkcs15-init. 
(в opensc режим отладки включается в файле /etc/opensc.conf, а pcscd запустите с параметрами -afddddd)

Re: Rutoken ECP в Gentoo Linux

Подниму старую тему

Linux 3.14.14-gentoo #1 SMP Fri Aug 1 14:11:49 YEKT 2014 x86_64 Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz GenuineIntel GNU/Linux

Система упорно не хочет работать с Рутокен ЭЦП:

# pkcs15-tool -C
No smart card readers found.

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -Ol
No slot with a token was found.

openconnect -c "pkcs11:id=..." -v https://адрес_шлюза
Attempting to connect to server адрес_шлюза:443
Using PKCS#11 certificate pkcs11:id=...;object-type=cert;pin-source=openconnect...
Error loading certificate from PKCS#11: The requested data were not available.
Loading certificate failed. Aborting.
Failed to open HTTPS connection to адрес_шлюза
Failed to obtain WebVPN cookie


Установил, кажется, все, что нужно. OpenSC, OpenCT, pcsc-lite, openssl с нужными флагами.
При подключении ключа система его видит и корректно распознает:
Aug 11 13:36:02 host kernel: usb 3-7: USB disconnect, device number 14
Aug 11 13:36:06 host kernel: usb 3-7: new full-speed USB device number 15 using xhci_hcd
Aug 11 13:36:06 host kernel: usb 3-7: New USB device found, idVendor=0a89, idProduct=0030
Aug 11 13:36:06 host kernel: usb 3-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Aug 11 13:36:06 host kernel: usb 3-7: Product: Rutoken ECP
Aug 11 13:36:06 host kernel: usb 3-7: Manufacturer: Aktiv

При работе с ключом в логах:
Aug 11 13:37:23 khusainov-ar pcscd: winscard.c:240:SCardConnect() Reader  Not Found

Возможно, не установлен или не настроен какой-то из ридеров:
ls -al /usr/lib/readers/usb/
total 24
drwxr-xr-x 6 root root 4096 Aug  8 19:25 .
drwxr-xr-x 3 root root 4096 Aug  8 18:31 ..
drwxr-xr-x 3 root root 4096 Aug  8 19:25 ifd-GemPC430.bundle
drwxr-xr-x 3 root root 4096 Aug  8 18:31 ifd-ccid.bundle
drwxr-xr-x 3 root root 4096 Aug  8 18:53 openct-ifd.bundle
drwxr-xr-x 2 root root 4096 Aug  8 19:25 serial

Но я не смог найти ебилд для еще каких-то ридеров.

Re: Rutoken ECP в Gentoo Linux

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

a.khusainov пишет:

Установил, кажется, все, что нужно. OpenSC, OpenCT, pcsc-lite, openssl с нужными флагами.

ls -al /usr/lib/readers/usb/
total 24
drwxr-xr-x 6 root root 4096 Aug  8 19:25 .
drwxr-xr-x 3 root root 4096 Aug  8 18:31 ..
drwxr-xr-x 3 root root 4096 Aug  8 19:25 ifd-GemPC430.bundle
drwxr-xr-x 3 root root 4096 Aug  8 18:31 ifd-ccid.bundle
drwxr-xr-x 3 root root 4096 Aug  8 18:53 openct-ifd.bundle
drwxr-xr-x 2 root root 4096 Aug  8 19:25 serial

Если использование openct не является обязательным, попробуйте его удалить.
Похожая на Вашу проблема описана тут: https://forum.rutoken.ru/post/4434/#p4434

Если проблема не решится после удаления openct или конфигурирования его по мотивам https://forum.rutoken.ru/post/4434/#p4434, пришлите, пожалуйста, вывод

pcscd -afd


в момент подключения токена.

Re: Rutoken ECP в Gentoo Linux

Евгений, спасибо!
Удаление openct частично помогло.

Сейчас появилась следующая проблема - почему-то работа с ключом через pkcs#15 проходит нормально (можно получить список объектов, загрузить сертификат через pkcs15-tool), а вот pkcs#11 - ни в какую.

openconnect (см. предыдущее сообщение) выдает то же самое - не может агрузить сертификат с токена,

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
выдает пустой список

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -tv
выдает следующее:

Using slot 0 with a present token (0x0)
C_SeedRandom() and C_GenerateRandom():
  seeding (C_SeedRandom) not supported
  ERR: C_GenerateRandom(buf1,0) failed: CKR_ARGUMENTS_BAD (0x7)
Digests:
  Note: C_DigestUpdate(), DigestFinal() not supported
error: PKCS11 function C_Digest failed: rv = CKR_OPERATION_NOT_INITIALIZED (0x91)

Aborting.

openssl rsautl -engine pkcs11 -keyform engine -inkey 1 -decrypt
сначала не мог найти движок:

invalid engine "pkcs11"
140019541694096:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:187:filename(/usr/lib64/engines/libpkcs11.so): /usr/lib64/engines/libpkcs11.so: cannot open shared object file: No such file or directory
140019541694096:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
140019541694096:error:260B6084:engine routines:DYNAMIC_LOAD:dso not found:eng_dyn.c:450:
140019541694096:error:2606A074:engine routines:ENGINE_by_id:no such engine:eng_list.c:418:id=pkcs11
140019541694096:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:187:filename(libpkcs11.so): libpkcs11.so: cannot open shared object file: No such file or directory
140019541694096:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
140019541694096:error:260B6084:engine routines:DYNAMIC_LOAD:dso not found:eng_dyn.c:450:
no engine specified
unable to load Private Key

Затем, после ln -s /usr/lib64/engines/engine_pkcs11.so /usr/lib64/engines/libpkcs11.so
стал выдавать:

unable to load module (null)
can't use that engine
140449394554512:error:80001401:PKCS11 library:PKCS11_CTX_load:Unable to load PKCS#11 module:p11_load.c:68:
140449394554512:error:260B806D:engine routines:ENGINE_TABLE_REGISTER:init failed:eng_table.c:174:
no engine specified
unable to load Private Key