Смарт-карты и их файлы

Насколько вам известно, мы можем перечислить апплеты, находящиеся в Java Card, с помощью таких инструментов, как GlobalPlaformPro, следующим образом:

GP: gp -list
AID: A000000003000000 (|........|)
     ISD OP_READY: Security Domain, Card lock, Card terminate, Default selected
 CVM (PIN) management

AID: 010203040506 (|......|)
     App SELECTABLE: (none)

AID: 0102030405 (|.....|)
     Exe LOADED: (none)

GP:

Вопросы:

  1. Где эти апплеты в карточке? (в MF? или в DF?)
  2. Кто выбирает это? (каталог, в который устанавливаются апплеты)
  3. Есть ли способ увидеть AID MF и всех остальных карт EF и DF?
  4. Какой у меня текущий каталог? Могу ли я изменить его?
  5. И как я могу создать DF?

Я пытался создать DF в отношении команд, определенных в ISO7816-part9, как показано ниже, но получаю только ошибки!

введите здесь описание изображения

GP: gp -s 00e00000 -d -v
# Detected readers from SunPCSC
[*] ACS CCID USB Reader 0
SCardConnect("ACS CCID USB Reader 0", T=*) -> T=0, 3Bxxxxxxxxxxxxxxxxxxxxxx
SCardBeginTransaction("ACS CCID USB Reader 0")
Reader: ACS CCID USB Reader 0
ATR: 3Bxxxxxxxxxxxxxxxxxxxxxx
More information about your card:
    http://smartcard-atr.appspot.com/parse?ATR=3Bxxxxxxxxxxxxxxxxxxxxxx

A>> T=0 (4+0000) 00A40400 00
A<< (0018+2) (60ms) 6F108408A000000003000000A5049F6501FF 9000
Auto-detected ISD AID: A000000003000000
A>> T=0 (4+0008) 80500000 08 78FF1563FF46D23B
A<< (0028+2) (166ms) 0000116001008A790AF9FF020138983B77E636B6C12237B087216130 90
00
Host challenge: 78FF1563FF46D23B
Card challenge: 0138983B77E636B6
Card reports SCP02 with version 255 keys
Master keys:
Version 0
ENC: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
MAC: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
KEK: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
Sequnce counter: 0138
Derived session keys:
Version 0
ENC: Ver:0 ID:0 Type:DES3 Len:16 Value:4544C6282153F89C2144A2C49784FCC3
MAC: Ver:0 ID:0 Type:DES3 Len:16 Value:017010873EFEC7A838D54C06A9AC2B40
KEK: Ver:0 ID:0 Type:DES3 Len:16 Value:A719298F33D1FECCD89334BA93FC3E70
Verified card cryptogram: C12237B087216130
Calculated host cryptogram: C1CF507F2B48CAEA
A>> T=0 (4+0016) 84820100 10 C1CF507F2B48CAEA7FFA4D851F5C0B1D
A<< (0000+2) (86ms) 9000
A>> T=0 (4+0008) 04E00000 08 08C1F21746AB8A16
A<< (0000+2) (24ms) 6E00
SCardEndTransaction()
SCardDisconnect("ACS CCID USB Reader 0", false)

GP: gp -s 00e000000a003400010101ffff0080 -d -v
# Detected readers from SunPCSC
[*] ACS CCID USB Reader 0
SCardConnect("ACS CCID USB Reader 0", T=*) -> T=0, 3Bxxxxxxxxxxxxxxxxxxxxxx
SCardBeginTransaction("ACS CCID USB Reader 0")
Reader: ACS CCID USB Reader 0
ATR: 3Bxxxxxxxxxxxxxxxxxxxxxx
More information about your card:
    http://smartcard-atr.appspot.com/parse?ATR=3Bxxxxxxxxxxxxxxxxxxxxxx

A>> T=0 (4+0000) 00A40400 00
A<< (0018+2) (55ms) 6F108408A000000003000000A5049F6501FF 9000
Auto-detected ISD AID: A000000003000000
A>> T=0 (4+0008) 80500000 08 1B81F8C4D44CC86A
A<< (0028+2) (166ms) 0000116001008A790AF9FF0201391213E503ADE77D8CC6A546AE3537 90
00
Host challenge: 1B81F8C4D44CC86A
Card challenge: 01391213E503ADE7
Card reports SCP02 with version 255 keys
Master keys:
Version 0
ENC: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
MAC: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
KEK: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
Sequnce counter: 0139
Derived session keys:
Version 0
ENC: Ver:0 ID:0 Type:DES3 Len:16 Value:F02DB909386D90DA638ACA4AB92501E1
MAC: Ver:0 ID:0 Type:DES3 Len:16 Value:FD6A2A492566BDE1940C54127C022126
KEK: Ver:0 ID:0 Type:DES3 Len:16 Value:98FAA5CF01E133557688FD90E1571FAC
Verified card cryptogram: 7D8CC6A546AE3537
Calculated host cryptogram: 14C22B8CE836A4D4
A>> T=0 (4+0016) 84820100 10 14C22B8CE836A4D4C2F1C20A8CD56F8C
A<< (0000+2) (85ms) 9000
A>> T=0 (4+0018) 04E00000 12 003400010101FFFF0080B9174FA320EEC470
A<< (0000+2) (24ms) 6E00
SCardEndTransaction()
SCardDisconnect("ACS CCID USB Reader 0", false)

GP:

Почему я не могу создать нужный файл?


person Jean    schedule 11.03.2015    source источник


Ответы (1)


Где эти апплеты на карточке? (в MF или в DF?)

Считайте, что каждое приложение Java Card является DF непосредственно ниже MF. Однако имейте в виду, что карты Java Card используют только части концепции файловой системы ISO 7816-4 и что сам MF не обязательно выбирается по умолчанию.

Кто это выбрал? (Каталог, в котором установлены апплеты)

Спецификации Java Card частично определяют это (через то, как определяется команда SELECT (by AID); за исключением этого, Java Cards не используют концепцию файловой системы).

Есть ли способ увидеть AID MF и все остальные EF и DF карты?

С точки зрения API только имена DF могут быть AID. Считайте AID именами DF, соответствующими определенному формату. MF и EF имеют идентификаторы файлов. Однако, поскольку в картах Java Card отсутствует концепция файловой системы, по умолчанию нет адресуемых файлов MF и EF (вы можете эмулировать эту функцию с помощью кода апплета). Таким образом, единственными перечисляемыми компонентами, которые находятся на карте Java, являются апплеты и пакеты апплетов (которые вы уже обнаружили в списке через управление картами Global Platform для вашей карты).

Какой у меня текущий каталог? Могу ли я изменить его?

См. выше. Нет концепции файловой системы -> нет понятия «текущий каталог». Если вы находитесь внутри приложения (выбранного апплета), апплет может эмулировать файловую систему. В этом случае такие вещи, как «текущий» каталог, зависят от реализации апплета.

И как я могу создать DF?

Установив (и сделав доступным для выбора) апплет.

person Michael Roland    schedule 12.03.2015
comment
Хороший ответ, чтобы еще раз прояснить: спецификации вообще не являются обязательными, и только потому, что ISO7816-4 определяет файловую систему tetxbook, не означает, что у Javacard она есть. Если вам нужна файловая система, совместимая с 7816, вам нужно закодировать ее как часть вашего апплета. - person Paul Bastian; 12.03.2015
comment
Означает ли это, что все команды, упомянутые в 7816-9 (Card-Management), должны быть реализованы в апплетах? (И JCRE/Card Manager их не распознает)? - person Ebrahim Ghasemi; 12.03.2015
comment
@Abraham JCRE обрабатывает только команды SELECT (по имени AID/DF) и MANAGE CHANNEL. Приложение диспетчера карт GlobalPlatform (если оно выбрано) обрабатывает все команды, необходимые для выполнения управления картами в соответствии со спецификациями GlobalPlatform. - person Michael Roland; 12.03.2015
comment
@Abraham: Если вам нужна более полная функциональность файловой системы, вы можете выбрать не-Javacard (иногда эта категория карт называется собственными картами, но поддерживаемая функциональность зависит от производителя). - person guidot; 13.03.2015
comment
@guidot Спасибо. Как программа для этих карт обычно? Есть ли возможность разрабатывать для них приложения? Есть ли в них возможность многозадачности? МультОС это родная карта? Соответствуют ли они также спецификациям GP? (Я знаю, что они отличаются друг от друга, но как типичные родные карты?) - person Ebrahim Ghasemi; 13.03.2015