У меня пустая смарт-карта JavaCOS A40 и я хочу сделать ее PKI-картой PKCS.
Я собираюсь использовать его как ключ ssh и для подписания электронных контрактов. Россия не предоставляет e-id для смарт-карт гражданам, как это делают страны ЕС. Коммерческие провайдеры электронной подписи продают какие-то защищенные паролем USB-накопители, которые небезопасны в использовании, поскольку вы можете легко экспортировать закрытый ключ. Также они продают обычные смарт-карты, но они действительно дорогие (х10-х20, чем пустой javacard) и недолговечные (около 1 года). Поэтому я хочу сделать свою собственную карту PKI на основе алгоритмов RSA из javacard.
Теперь мой javacard находится в состоянии OP_READY
, и я не изменил его, потому что изменения необратимы. Он использует ключ по умолчанию, и каждый может загрузить что угодно. Я использую ACR38U
ридер с pcsc
драйвером linux для Ubuntu
, и он работает как положено, поэтому я использовал GlobalPlatformPro для загрузки PKI IsoApplet по умолчанию. Таким образом, вывод GP:
java -jar gp.jar -list
Warning: no keys given, using default test key 404142434445464748494A4B4C4D4E4F
ISD: A000000003000000 (OP_READY)
Privs: SecurityDomain, CardLock, CardTerminate, CardReset, CVMManagement
APP: F276A288BCFBA69D34F31001 (SELECTABLE)
Privs: CardReset
PKG: F276A288BCFBA69D34F310 (LOADED)
Version: 1.0
Applet: F276A288BCFBA69D34F31001
cardpeek
успешно подключается к нему, и я могу отправлять низкоуровневые команды апплету

Но когда я пытаюсь подключиться к карте и апплету, используя пробер opensc
, чтобы увидеть ответ на запрос (ATR), происходит сбой opensc-tool --reader 0 --atr
. См. Максимальную отладочную информацию
Укороченная версия:
opensc-tool --reader 0 --atr -vv
Connecting to card in reader ACS ACR 38U-CCID 00 00...
0x7fc849e7e740 22:17:14.634 [opensc-tool] card.c:200:sc_connect_card: called
0x7fc849e7e740 22:17:14.634 [opensc-tool] card-entersafe.c:138:entersafe_match_card: called
Failed to connect to card: Card command failed
0x7fc849e7e740 22:17:14.797 [opensc-tool] ctx.c:870:sc_release_context: called
Согласно информации производителя, карта поддерживает T=0
по ISO7816, но opensc пытается связаться с T=1
. Так как я могу это исправить?
Кажется, что инструменты opensc не настраиваются. Мне нужно использовать pkcs15-crypt
, но он не может подключиться. Могу ли я изменить драйверы, перекомпилировать opensc с патчами или использовать другую утилиту? Как еще можно использовать, например, для работы с OpenPGP?