Как взаимодействовать с несколькими приложениями javacard на одной физической смарт-карте (например, yubikey) - PullRequest
1 голос
/ 03 апреля 2020

Я установил популярный IsoApplet (https://github.com/philipWendland/IsoApplet) на мой 2.2.2 javacard и смог использовать pkcs11-tool и pkcs15-tool из проекта OpenS C для генерации частного ключи на карте и использовать их для аутентификации на серверах через S SH.

Отдельно я смог успешно использовать запрос-ответ моего Yubikey 5 (https://www.yubico.com/products/services-software/personalization-tools/challenge-response/) чтобы повысить безопасность дешифрования базы данных KeepassX C.

Теперь я хотел бы добавить https://github.com/arekinath/YkOtpApplet к тому же javacard, на котором установлен IsoApplet. Как внешние приложения взаимодействуют с отдельными приложениями на javacard? Могу ли я иметь оба этих приложения на одном и том же javacard? Являются ли ограничения только хранилищем на карте?

У меня есть две карты:

  • NXP JCOP3 J3H145 Java Карта 3.0.4
  • JavaCOS A22 155K Java Карта 2.2.2

1 Ответ

3 голосов
/ 03 апреля 2020

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

Каждое приложение имеет идентификатор с условным именем AID, «Идентификатор приложения», назначаемый при установке приложения на карту. Когда внешняя система хочет взаимодействовать с картой, первая команда (называемая SELECT) выбирает приложение, с которым она хочет общаться, используя AID в качестве параметра. Любая последующая команда затем направляется в это приложение, пока карта не будет сброшена или пока не будет получено SELECT в другое приложение.

...