رمزنگاری – OpenSC قادر به اتصال javacard با اپلت PKCS نیست

کارت هوشمند JavaCOS A40 من خالی هست و می خواهم آن را PKCS PKI کارت کنم.

من قصد دارم از آن به عنوان کلید ssh و برای امضای قرارداد الکترونیکی استفاده کنم. روسیه برای شناسایی شهروندان مانند کشورهای عضو اتحادیه اروپا، نشانی اینترنتی الکترونیکی مبتنی بر کارت های هوشمند را ارائه نمی دهد. ارائه دهندگان امضای تجاری امری برخی از انواع درایوهای USB محافظت شده با رمز عبور را به فروش می رسانند که استفاده از آن ناامن است زیرا شما می توانید به راحتی کلید خصوصی صادر کنید. همچنین آنها کارت های معمولی را به فروش می رسانند، اما واقعا گران هستند (x10-x20 از javacard خالی) و کوتاه مدت (حدود 1 سال). بنابراین من می خواهم PKI خود را بر اساس الگوریتم RSA از javacard ایجاد کنم.

اکنون javacard من در حالت OP_READY است و من آن را تغییر نداده ام، چون تغییرات غیر قابل برگشت است. از کلید پیش فرض استفاده می کند و هر کسی می تواند هر چیزی را بارگذاری کند. من از ACR38U خواننده با pcsc راننده لینوکس در اوبونتو استفاده میکنم و به عنوان انتظار میرود، بنابراین از GlobalPlatformPro برای آپلود PKI IsoApplet به عنوان پیشفرض استفاده میکنم. بنابراین خروجی GP:

 java-jar gp.jar -list
هشدار: هیچ کلیدی داده نشده است، با استفاده از کلید تست پیش فرض 404142434445464748494A4B4C4D4E4F
ISD: A000000003000000 (OP_READY)
     Privs: SecurityDomain، CardLock، CardTerminate، CardReset، CVMManagement

APP: F276A288BCFBA69D34F31001 (SELECTABLE)
     Privs: CardReset

PKG: F276A288BCFBA69D34F310 (بارگیری شده)
     نسخه: 1.0
     اپلت: F276A288BCFBA69D34F31001

cardpeek با موفقیت به آن متصل می شود و می توانم دستورات سطح پایین را به اپلت ارسال کنم
 cardpeek

اما هنگام تلاش برای اتصال به کارت و اپلت با استفاده از opensc برای دیدن جواب به درخواست (ATR)، آن را شکست می دهد opensc-tool - خواننده 0 --atr . مشاهده حداکثر اطلاعات اشکالزدایی

نسخه کوتاه شده:

 opensc-tool --reader 0 --atr -vv
اتصال به کارت در خواننده 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
اتصال به کارت انجام نشد: دستور کارت شکست خورد
0x7fc849e7e740 22: 17: 14.797 [opensc-tool] ctx.c: 870: sc_release_context: نام

بر اساس اطلاعات تولید کننده، کارت پشتیبانی از T = 0 بیش از ISO7816 است، اما opensc تلاش می کند با T = 1 ارتباط برقرار کند. پس چگونه می توانم این را حل کنم؟

به نظر می رسد که ابزار opensc قابل تنظیم نیست. من باید از pkcs15-crypt استفاده کنم اما نمیتوانم اتصال برقرار کنم. آیا می توانم درایورها را تغییر دهم، opensc را مجددا با پچ ها باز کرده یا از ابزار دیگری استفاده کنم؟ چگونه روش های دیگر من می توانم برای مثال برای OpenPGP کار کنم؟