Загрузить файл CAP на смарт-карту с помощью APDU

Я пытаюсь установить апплет (файл .cap) на смарт-карту. Я читал, что это можно сделать с помощью APDU. Я создал свой апплет с помощью Netbeans, и его помощником является //aid/9AE9BE4D27/53.

Сначала создайте apdu, который выберет installer applet:

0x00 0xA4 0x04 0x00 0X09 0xA0 0x00 0x00 0x00 0x62 0x03 0x01 0x08 0x01 0x7F;

Затем создайте apdu, который создаст мой апплет (следуя этой структуре):

header: 0x80 0xb8 0x00 0x00

lc aid:

aid:

le: 0x7F;

Я разработал приложение, которое может отправить команду apdu на реальную карту, используя channel.transmit(new CommandAPDU(apdu). Я предполагаю, что если я отправлю правильную команду установки, мой файл .cap должен быть установлен на карту.

С помощью этой информации кто-нибудь может помочь мне собрать правильный apdu для установки моего файла шапки в реальную карту?

Спасибо.


person Charles    schedule 25.01.2013    source источник
comment
Не могли бы вы, пожалуйста, прочитать FAQ сайта и принять некоторые ответы?   -  person Maarten Bodewes    schedule 26.01.2013
comment
Я принял каждый ответ, который нашел полезным во всех своих постах. Не знаю, что ты имеешь в виду, Оулстед.   -  person Charles    schedule 28.01.2013
comment
Вы действительно нажали на значок v рядом с ответом? Потому что я не вижу ни одного принятого ответа на ваши 5 вопросов.   -  person Maarten Bodewes    schedule 28.01.2013
comment
Я нажал на Clic to set this answer as your accepted answer в ответе ниже. Это то, что вы имеете в виду?   -  person Charles    schedule 28.01.2013
comment
Не дошло, большая метка v рядом с ответом загорелась зеленым? Вы пробовали щелкнуть саму метку v?   -  person Maarten Bodewes    schedule 28.01.2013
comment
Вау, теперь я знаю, что ты имел в виду. Да, теперь он зеленый.   -  person Charles    schedule 28.01.2013


Ответы (3)


Если карта использует Global Platform, то это не так просто, вам нужно пройти аутентификацию в менеджере карт. Затем вы отправляете несколько команд для загрузки файла .cap (поскольку APDU может содержать только 255 байт полезной нагрузки - GP не использует расширенную длину). Затем вы вводите команду INSTALL for INSTALL для создания экземпляра апплета (используя AID экземпляра).

К счастью для вас, существуют библиотеки с открытым исходным кодом, созданные поверх javax.smartcardio. Тем не менее, я бы порекомендовал ознакомиться с основами Global Platform, документы можно получить онлайн бесплатно.

http://sourceforge.net/projects/gpj/

person Maarten Bodewes    schedule 25.01.2013
comment
Спасибо за ответ, раньше не мог переиграть, потому что проект был в офисе. Я обновлю пост с результатами. С Уважением. - person Charles; 28.01.2013
comment
Кажется, это будет не так просто. Любая попытка связи с картой ПК/SC не удалась (Failed to select Security Domain). Я думаю, мне нужно будет как-то аутентифицироваться. - person Charles; 28.01.2013
comment
Какой AID вы использовали для выбора? Более новые карты могут использовать AID на основе Глобальной платформы вместо AID на основе VISA. Обсудите эти детали с вашим поставщиком. - person Maarten Bodewes; 28.01.2013

Да, если вы отправляете правильные командные APDU, вы сможете установить его, но в случае карт глобальной платформы вам нужно будет сначала создать безопасный канал, а затем вы можете отправить InstallForLoad и последующие команды загрузки/установки. Последовательность шагов будет такой:

  • Выберите менеджер карт
  • Аутентифицируйте свою карту с помощью SCP01/SCO02 в зависимости от того, что поддерживается вашей картой.
  • Отправить команду InstallForInstall
  • Отправить команды загрузки
  • Отправить команду InstallForInstall

Каждая команда должна заканчиваться 0x9000, это означает, что команда выполнена успешно.

Но поскольку вы новичок, вам следует использовать некоторые инструменты, такие как GPSShell, чтобы загрузить файл .cap на карту, а затем попытаться проанализировать APDU, которые появляются после установки.

person Umer    schedule 12.02.2013

Чтобы установить апплет и персонализировать его на карту, вам потребуется взаимная аутентификация, состоящая из команд INTERNAL AUTHENTICATE и EXTERNAL AUTHENTICATE. Пожалуйста, прочитайте EMV CPS или GlobalPlatform для получения подробной информации.

Вы также можете легко установить апплет, если используете эмулятор. Я использую JAVACos, и это очень просто, и поддерживает библиотеки JC и GP. Разработал апплет в eclipse с использованием библиотеки JAVACos и эмулировал апплет с помощью эмулятора JAVACos, используя scrypt для тестирования апплета.

person Raja P.B.    schedule 10.04.2017