Рутокен ЭЦП SC & OpenSC - Unsupported card

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

Что с этим делать?

snadezhdin@snadezhdin:~$ opensc-tool --reader 0 --atr
3b:9c:96:00:52:75:74:6f:6b:65:6e:45:43:50:73:63
snadezhdin@snadezhdin:~$ opensc-tool --reader 0 --name
Unsupported card

Debian 9+unstable(смешаная система). OpenSC 0.19.0-1.

Сделал выбор в пользу рутокен на основании саморекламных статей на хабре, типа этой:
https://habr.com/company/aktiv-company/blog/139183/
Где всё это? Почему не работает? :)

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

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

Опишите, пожалуйста, подробнее, какую задачу решаете — например, настраиваете удаленный доступ через SSH по Рутокен или что то еще (что именно)?
По какой инструкции настраиваете?

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

Да, настраиваю удаленный доступ через SSH, но застрял в самом начале - генерация ключа. Юзаю селективно эту инструкцию: https://dev.rutoken.ru/pages/viewpage.a … Id=3440696 .

snadezhdin@snadezhdin:~$ pkcs15-init -E
Using reader with a card: ACS ACR 38U-CCID 00 00
Failed to connect to card: Card is invalid or cannot be handled

Ридер исправен. Ведь тогда он бы не вернул адекватный ответ на --atr при предъявлении карты, так ведь?

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

Попробуйте вместо pam_p11 использовать pam_pkcs11.

(2018-10-19 09:42:22 отредактировано SNadezhdin)

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

Нет смысла дёргать PAM, если я даже карту инициализировать не могу.
Решил пойти путём с использованием официального инструмента с сайта(librtpkcs11ecp) раз заялвенный opensc не робит.
Получил следующее:

snadezhdin@snadezhdin:~/Downloads$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45
Using slot 0 with a present token (0x0)
Logging in to "Rutoken ECP <no label>".
WARNING: user PIN to be changed
Please enter User PIN: 
error: PKCS11 function C_GenerateKeyPair failed: rv = CKR_DEVICE_ERROR (0x30)
Aborting.
snadezhdin@snadezhdin:~/Downloads$ 

Может карта труп? Это первый случай в моей практике, когда смарт-карта не работает с рождения :/ Разочарование.

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

SNadezhdin пишет:

Может карта труп?

Потестируйте карту на нашем портале ra.rutoken.ru — тут можно сгенерировать ключевую пару, создать запрос на тестовый сертификат и записать его.
Сообщите о результатах, пожалуйста.

(2018-10-19 11:38:59 отредактировано SNadezhdin)

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

Карту определяет - пин-код меняет без проблем, но ключи не генеряться в упор:

Потеряна связь с токеном(красный круг и крест) Переподключите Rutoken. ECP <no label> к компьютеру.

Серийный номер, если что: 09 51 02 008 1

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

SNadezhdin пишет:

Карту определяет - пин-код меняет без проблем, но ключи не генеряться в упор:

Нужно отформатировать ( kb.rutoken.ru/display/KB/PU1001 ) карту при помощи утилиты "Панель управления Рутокен" и снова проверить генерацию.

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

Да, это решило одну из проблем: librtpkcs11ecp смог сгенерировать ключ после форматирования, но опять же возвращаемся к оригинальной проблеме: где заявленная поддержка opensc? Почему всё нужно было делать через винды? Почему очистка карты через opensc проваливается?
Я очень доволен собой, что приобрёл её только в одном экземпляре для тестов перед внедрением, так как теперь понимаю, что на деле ничего не работает как заявлено и это была бы грандиозная трата денег.
Разворачивать librtpkcs11ecp с этим километровым лицензионным соглашением - совсем не удобно также.

Будут ли приняты меры, чтобы всё-таки обеспечить заявленную полноценную работоспособность под opensc без танцев с бубном и виндами?

(2018-10-19 14:40:59 отредактировано Владимир Салыкин)

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

Добрый день, SNadezhdin.

Давайте разбираться по всем вопросам.
1. Поддержка opensc, к сожалению, плавает от версии к версии, и к нашему большому сожалению почти не зависит от нас. У проекта OpenSC в целом оригинальный взгляд на мир токенов\смарт-карт, который считает, что все они идеально поддерживают PKCS#15. В реальном мире таких устройств не существует. Мы стараемся проверять все релизные версии opensc и пишем патчи, но скорость их применения не самая высокая. А уж скорость обновления версий opensc в дистрибутивах и того ниже. Мы всегда заявляем, что лучше пользоваться нашим pkcs#11, так как он в наших руках и поддерживается куда лучше, а pkcs#15 и opensc брать только в том случае, если он очень нужен по каким-то причинам. Похоже пора это прям в инструкции добавить.
2. На самом деле Винда для форматирования не обязательна, просто посоветовали самое типовое решение. Для Linux у нас есть консольная утилита форматирования rtAdmin (https://dev.rutoken.ru/pages/viewpage.a … Id=7995615).
3. Очистку через opensc еще раз проверим сегодня. Но как я писал в первом пункте нюансов много. upd. Проблему воспроизвели. Будем брать в работу.
4. Про librtpkcs11ecp не совсем понял, что вы имели ввиду про лицензионное соглашение. Проблема в том, что оно длинное? В том, что оно вообще есть на сайте или в чем?
5. Надеюсь, Вы понимаете, что в данном случае проблема даже не с поддержкой наших устройств в OpenSC, а с поддержкой своих ридеров в OpenSC компанией ACS ACR.

upd2. Похоже компания ACS решила, что для своих ридеров они будут делать свой альтернативный ccid драйвер. Можете попробовать - https://packages.debian.org/sid/libacsccid1

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

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

Понимаю, но очень много официальных статей, которые не обозначают этот аспект. Да, указать на эту особенность очень было бы желательно - если бы это было обозначено, то всей этой проблемы и не было бы.
Документация нуждаеться в серьёзной доработке - так как сам факт существования всего этого добра очень не очевиден. Есть ли возможность собрать утилиту из исходников или всё привязано к бинарной совместимости конкретных предоставленных сборок? Что насчёт встраивания этого? Распространяеться ли общая лицензия из SDK на это?

По поводу лицензии - есть общая лицензия, да, но архивы скачанные с сайта(за исключением sdk) не имееют вложенной лицензии и совсем не понятно являеться ли предустановка, переупаковка, стороннее онлайн-обновление пакетов(и тому подобное) модификацией.

По поводу пятого: Тогда почему отсутсвует упоминание 3b:9c:96:00:52:75:74:6f:6b:65:6e:45:43:50:73:63 в кодобазе openSC? Здесь явно что-то не чисто. И на ридер не жалуюсь - Рутокен ЭЦП SC первая смарт-карта, которая под OpenSC отказалась быть определяемой(из тех, которые я использовал).

В общем есть над чем работать. Как средство авторизации и аутентификации в офисе рутокен использовать можно. Для интеграции в публичный продукт - это пока останется под вопросом, т.к. работа с рутокеном занимает необосновано много времени, в отличии от аналогов(более дорогостоящих, надо отдать должное, но лучше переплатить, чем затем страдать :)

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

Добрый день, SNadezhdin.

1. Все официальные статьи написаны для токенов, так как там мы делаем и считыватель и саму смарт-карточную часть. Но согласен, что документацию можно и нужно дорабатывать. Мы стараемся по каждому такому обращению вносить правки.
2. rtAdmin предоставляется в бинарном виде. Если сборка по тем или иным причинам не заработает или требуется под специальную архитектуру мы готовы такие сборки предоставлять. Жестких бинарных зависимостей там нет в принципе. Что вы подразумеваете под встраиванием rtAdmin непонятно. Вызов из скриптов? Это не отличается от обычного использования.
3. Предустановка, переупаковка и обновление не является модификацией. Под модификацией подразумевается в первую очередь бинарная модификация с целью изменить функциональность на не заложенную нами.
4. Как я и говорил, порой в OpenSC происходят не контролируемые нами изменения. Будем разбираться, почему смарт-карты не работают.

Спасибо за Вашу обратную связь. Будем работать над улучшением поддержки наших продуктов в Linux.

(2020-09-08 23:26:01 отредактировано sanyo)

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

Попробовал повторить подобный фокус с новой картой Rutoken ECP2 2100 в ридере ACR3901U-H3, который обозначен у вас как совместимый по крайне мере с Rutoken ибо есть в списке возможных заказов:
https://forum.rutoken.ru/post/14712/#p14712
http://web.archive.org/web/202009082015 … id_61.html

root@host:~# lsusb | grep -i acr
Bus 004 Device 020: ID 072f:b000 Advanced Card Systems, Ltd ACR3901U

root@host:/download# ./rtadmin -f
Formatting was successful. Token Id: 0x3b89646b
0x3b89646b / 998859883 : Format passed : 87654321 : 12345678 : SM mode = 0
Next token... (Or press "q")

root@host:/download# pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45
Using slot 0 with a present token (0x0)
Logging in to "Rutoken".
Please enter User PIN: 

Ввожу: 12345678
Некоторое время моргает лампочка на ридере, видимо он что-то пытается генерировать, а потом:

error: PKCS11 function C_GenerateKeyPair failed: rv = CKR_DEVICE_ERROR (0x30)

Aborting.

OpenSC вашу карту вообще не признает:

root@backup1:~# opensc-tool -n
Using reader with a card: ACS ACR3901U ICC Reader 00 00
Unsupported card

Если бы не эта ветка, то я бы не запустил rtadmin и продолжал бы думать, что либо карта неисправна либо считыватель. У меня пара таких считывателей, на обоих считывателях карта ведет себя одинаково, что делать дальше, как добиться работы смарт карты аналогично USB токену?

USB токен Rutoken ECP2 работает на том же самом хосте нормально, удается сгенерировать ключ и использовать его в OpenSSH.

Теперь проделываем тоже самое, включая форматирование, с другой вашей картой: Rutoken ECP2 2151:

root@host:/download# ./rtadmin -f
Next token... (Or press "q")
Formatting was successful. Token Id: 0x3cfe59ed
0x3cfe59ed / 1023302125 : Format passed : 87654321 : 12345678 : SM mode = 0
Next token... (Or press "q")

root@host:/download# pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45
Using slot 0 with a present token (0x0)
Logging in to "Rutoken".
Please enter User PIN: 12345678
error: PKCS11 function C_GenerateKeyPair failed: rv = CKR_ATTRIBUTE_VALUE_INVALID (0x13)

Aborting.

Это нормально? Мучаюсь уже целый месяц с этими смарткартами, перебирая считыватели.

Можно ли сделать вывод, что если форматирование с помощью rtadmin проходит нормально (по крайне мере судя по его сообщению), то в целом и считыватель и карта работают нормально, но есть какие-то устранимые софтовые несовместимости, которые мешают PKCS11 работать корректно? Успешный проход rtadmin является показателем полной совместимости и работоспособности карты и считывателя?

(2020-09-08 23:45:54 отредактировано sanyo)

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

Антон Тихиенко пишет:
SNadezhdin пишет:

Может карта труп?

Потестируйте карту на нашем портале ra.rutoken.ru — тут можно сгенерировать ключевую пару, создать запрос на тестовый сертификат и записать его.
Сообщите о результатах, пожалуйста.

Удалось зайти в панель управления ra.rutoken.ru, после ввода пин кода.

При попытке генерации любого поддерживаемого ключа (ГОСТ 256 или RSA) пишет: "Невозможно выполнить операцию", причем для обоих карт ФСБ и Микрон. ПИН код тоже не удается поменять.

Re: Рутокен ЭЦП SC & OpenSC - Unsupported card

Владимир Салыкин пишет:

5. Надеюсь, Вы понимаете, что в данном случае проблема даже не с поддержкой наших устройств в OpenSC, а с поддержкой своих ридеров в OpenSC компанией ACS ACR.

Какой же все-таки ридер самый самый совместимый с Linux и самый безспроблемный?
Почему бы вам тщательно не протестировать хоть один ридер и не предложить его пользователям Linux в качестве точно работающего с OpenSC?  Вы сами с каким ридером тестируете свои смарткарты во время разработки?

Владимир Салыкин пишет:

upd2. Похоже компания ACS решила, что для своих ридеров они будут делать свой альтернативный ccid драйвер. Можете попробовать - https://packages.debian.org/sid/libacsccid1

Тоже самое, нисколько не лучше.