jcop это единственный способ установить апплет в Java-карту? - PullRequest
4 голосов
/ 29 февраля 2012

Я пытаюсь понять концепцию java-карты, у меня есть некоторые сомнения, с которыми я хочу поделиться, возможно, вы бы мне посоветовали.

// Jcop. Я где-то читал, что Java Card OpenPlatform (JCOP) - это операционная система для смарт-карт для платформы Java Card, разработанная IBM Zürich Research Laboratory.

вопрос 1 - если приведенное выше предложение верно, это означает, что jcop - это операционная система, разработанная IBM, которая обрабатывает все операции внутри карты. Верно?
У меня есть карточка с указанием

ATR like- 3b 89 80 01 4a .... 40 (в символьной форме это указывает-; --- jcop41v22m),

так я могу сказать? это карта, которая сделана IBM. и нам требуется только и только инструмент JCOP для отправки колпачка внутри этой карты, потому что ОС внутри - это JCOP, а инструмент jcop будет единственным вариантом для связи с картой jCOp?

вопрос 2 - или есть какой-то другой способ, которым я могу отправить апплет внутри моей карты?

    enable_trace
    establish_context
    card_connect
    select -AID a0000000030000
    open_sc -security 1 -keyind 0 -keyver 0 -mac_key 404142434445464748494a4b4c4d4e4f -enc_key 404142434445464748494a4b4c4d4e4f // Open secure channel
    delete -AID D0D1D2D3D4D50101
    delete -AID D0D1D2D3D4D501
    delete -AID D0D1D2D3D4D50101
    install -file helloworld.cap -nvDataLimit 500 -instParam 00 -priv 2
    # getdata
    # close_sc // Close secure channel
    # putkey // Put key

  // options:
  //          -keyind Key index
  //          -keyver Key version
  //          -key Key value in hex
card_disconnect
release_context`

вопрос 3 - приведенный выше код, который я получил из gpshell 1.4.4, стиль кода указывает, что это также метод tp send cap file внутри java-карты, я хочу знать, что для случая моей карты {atr is -3b 89 80 01 4a .... 40 (в символьной форме это означает-; --- jcop41v22m)}, я могу применить gpshell для отправки файла .cap на мою карту.

вопрос 4 - используется ли gpshell для отправки колпачка в специальную java-карту, которая не поддерживает jcop или не имеет отношения к операционной системе jcop?

Есть так много техник, так много типов Java-карт, это меня смущает, я надеюсь, что вы, кажется, этот вопрос подлинный и даст мне вернуться С уважением: -

Ответы [ 6 ]

3 голосов
/ 28 января 2014

Ответ на тему вопроса:

NO.

Посмотрите на https://github.com/martinpaljak/GlobalPlatform

3 голосов
/ 16 марта 2012

Вопрос хороший.Я вижу много людей, которые годами работают со смарт-картой и до сих пор не могут понять ее.

То, что вы прочитали правильно, JCOP - операционная система для смарт-карт.

Хотя это НЕ правда, что вам нужно использовать инструмент JCOP для развертывания апплетов.Они могут быть полезны, но это не единственный способ.Фактически, вам нужно знать, какая версия Global Platform поддерживается вашей картой.Глобальная платформа - это стандарт, определяющий способ управления картой Contend.Это включает в себя установку, концепцию безопасности и так далее.Например, если ваша карта поддерживает GP 2.1.1, вы должны использовать этот документ в качестве справочного:

http://www.win.tue.nl/pinpasjc/docs/Card%20Spec%20v2.1.1%20v0303.pdf

Все инструменты, такие как gpshell, jcshell, оборачивают команды глобальной платформы в более удобныйкоманды, а также внедрение протоколов безопасности для вас.Таким образом, вы можете использовать любой инструмент, который поддерживает версию GP вашей целевой карты.

Надеюсь, это сделает его немного более понятным.

2 голосов
/ 01 марта 2012

NXP в настоящее время принадлежит JCOP, вы должны обращаться к ним с вопросами.

  1. Да, виртуальная машина внутри реализации Java-карты выполняет весь байт-код.
  2. Вы можете использовать любую библиотеку, совместимую с глобальной платформой, хотя есть некоторые ошибки реализации, которые могут изменить ситуацию.
  3. Попробуй, должно работать
  4. Java Card является стандартом, и реализации тестируются Oracle, поэтому отправка вашего апплета на другую карту должна работать * 1

* 1, если вы не сделаете предположения, которые не были очищены в Java Card, использовали слишком много стека или кучную память для этой карты, использовали криптоалгоритмы, которых нет, API Java Card, которые не были реализованы другой картой, или, конечно же, проприетарная функциональность JCOP.

1 голос
/ 28 мая 2015

Q1 & Q2. Нет. Совершенно верно, что Java Card OpenPlatform (JCOP) является операционной системой смарт-карт для платформы Java Card. Но это не единственный инструмент для развертывания апплета.Например, я использую PyAPDUTool для отправки файла cap внутри Java-карты.

Q3: Да, вы можете использовать gpshell для отправки файла .cap на вашу карту.1006 * Q4: НЕТ, вы также можете отправить апплет другим javacards.

1 голос
/ 22 июля 2012

Ответ на вопрос 1 - «нет».Вы не должны полагаться на исторические байты "jcop41v22" в ATR для распознавания типа карты.Любой апплет Java Card может изменить эти байты.

0 голосов
/ 27 мая 2015

NO. Вы можете взглянуть на этот сайт "www.javacos.com". По этому инструмент jcide также может получить то, что вы хотите, и это бесплатно. Хотя некоторые функции не очень совершенны.

...