Какова последовательность команд APDU для установки апплета на карту Java?

У меня есть файл .CAP (апплет), и я хочу установить его на свою карту Java. Я знаю, что для этого можно использовать такие инструменты, как GPSShell или apdutool (от JCDK), но я хочу воспроизвести процесс установки самостоятельно.

Сбивает с толку то, что в стандарте GP процесс установки выглядит следующим образом: команда APDU INSTALL [для загрузки], за которой следуют несколько команд LOAD, за которыми следует команда INSTALL [для установки].

В то время как документация Oracle предлагает другую последовательность команд APDU для установки файла .CAP: Select(Домен безопасности издателя?), CAP begin, Component ## Begin+Data+End (для каждого компонента), CAP End, Create Applet.

Оба метода установки апплета эквивалентны?

Что содержит поле DATA команды LOAD? В стандарте GP это не указано, и я знаю, что отправка необработанных байтов из файла .CAP неверна. Я использовал GPSShell для успешной установки апплета, но поле DATA команды LOAD не имело для меня смысла. вывод GPShell

Для метода оракула я использовал scriptgen из комплекта разработки карт Java для создания команд APDU, но байт INS из этих команд (B0,B2,B4,BC,BA) не имеет ссылки на GP.вывод скриптгена


person Vbs    schedule 19.09.2017    source источник
comment
Не могли бы вы указать документацию Oracle? Существуют разные способы загрузки файлов .cap; официально GP не нужно использовать. Однако GP используется в 99% случаев; более вероятно, что это другой способ описания одного и того же процесса.   -  person Maarten Bodewes    schedule 19.09.2017
comment
Я удалил тег applet по той простой причине, что веб-апплеты предполагаются при использовании тега. Достаточно просто javacard.   -  person Maarten Bodewes    schedule 19.09.2017
comment
Ссылка на документ оракула: docs.oracle.com/cd/E59935_01/guide/. Скорее всего, стандарт GP не охватывает эту область команд (байт INS B0, B2, B4, BC, BA). Однако я попытаюсь использовать последовательность команд apdu с платформы oracle и посмотрю, работает ли она.   -  person Vbs    schedule 19.09.2017


Ответы (1)


В то время как документация Oracle предлагает другую последовательность команд APDU для установки файла .CAP: Select(Домен безопасности издателя?), CAP begin, Component ## Begin+Data+End (для каждого компонента), CAP End, Create Applet.

Перед установкой апплета необходимо выбрать диспетчер карты (домен безопасности эмитента — Root), поскольку он отвечает за загрузку и установку апплета на карту. Также обратите внимание, что вам нужно будет пройти аутентификацию с помощью диспетчера карт, установив безопасный канал (предпочтительно SCP02).

Выполните следующую последовательность APDU для установки апплета:

  1. Выберите домен безопасности эмитента (ISD). 00 a4 04 00 Lc AID_ISD

  2. Авторизоваться с помощью ISD.

    Настройте SCP02 (см. обновление команды инициализации, внешняя аутентификация). Здесь вам потребуются ключи 3DES карты. См. документацию, прилагаемую к карте.

  3. Отправьте apdu, установите [для загрузки].

Сбивает с толку то, что в стандарте GP процесс установки выглядит следующим образом: команда APDU INSTALL [для загрузки], за которой следуют несколько команд LOAD, за которыми следует команда INSTALL [для установки].

  1. Отправить apdu, загрузить блоки.

    Файл .cap апплета, который у вас будет, представляет собой zip-файл составляющих его файлов CAP (http://pfa12.free.fr/doc_java/javacard_specifications/specs/jcvm/html/JCVM06cap.html). Таким образом, вам нужно отправить каждый файл CAP один за другим на карту.

    Загрузить (Header.cap), Загрузить (Directory.cap)... и т.д.

  2. Отправьте apdu, установите [для установки]. Установка завершена.

person hsg    schedule 19.09.2017
comment
ОП может захотеть взглянуть на Исходный код GlobalPlatformPro, где подготовлены блоки для ЗАГРУЗКИ. - person vlp; 20.09.2017