Загрузить файл .cap на смарт-карту?

smartcard javacard apdu globalplatform

1049 просмотра

1 ответ

3319 Репутация автора

У меня есть свежая карта с приведенным ниже кодом в качестве ATR.

3B 68 00 00 00 73 C8 40 12 00 90 00

Я искал этот ATR в Google и, наконец, я знаю, что это «бразильская карта электронного CPF». вопрос в том, как я могу использовать эту карту? Я имею ввиду какие APDU например он поддерживает? есть ли данные для этого? это javacard? [если да] как я могу загрузить в него файл .cap? есть ли для него ключ по умолчанию? и много подобных вопросов.

главный вопрос заключается в следующем: какие данные я могу получить от ATR?

Кстати, я использую ACR38 SmartCard Reader. и я создаю .cap javacard программу в Eclipse.

Следующий вопрос: я использую GPJ.bat для развертывания (загрузки) файла .cap на этой карте. [файл .cap, созданный с помощью Eclipse программы Popular HelloWorld и его исходный код, находится здесь: http://umer555.wordpress.com/2012/05/17/java-card-hello-world-applet/]

Выход ниже. что не так с загрузкой? и с общим процессом!

E:\gpj>gpj -load e:\helloworld.cap -install

E:\gpj>java -jar gpj.jar -load e:\helloworld.cap -install
Found terminals: [PC/SC terminal ACS CCID USB Reader 0]
Found card in terminal: ACS CCID USB Reader 0
ATR: 3B 68 00 00 00 73 C8 40 12 00 90 00
DEBUG: Command  APDU: 00 A4 04 00 07 A0 00 00 01 51 00 00
DEBUG: Response APDU: 6A 82
Failed to select Security Domain GP211 A0 00 00 01 51 00 00 , SW: 6A 82
DEBUG: Command  APDU: 00 A4 04 00 08 A0 00 00 00 18 43 4D 00
DEBUG: Response APDU: 6A 82
Failed to select Security Domain GemaltoXpressPro A0 00 00 00 18 43 4D 00 , SW:
6A 82
DEBUG: Command  APDU: 00 A4 04 00 08 A0 00 00 00 03 00 00 00
DEBUG: Response APDU: 6F 10 84 08 A0 00 00 00 03 00 00 00 A5 04 9F 65 01 FF 90 0
0
Successfully selected Security Domain OP201a A0 00 00 00 03 00 00 00
DEBUG: Command  APDU: 80 50 00 00 08 34 F8 63 3E E3 BC 64 94
DEBUG: Response APDU: 00 00 11 60 01 00 7F 8B 0A F9 FF 02 00 01 6C 7F FC 11 3F B
9 3F 17 B8 84 02 AA C1 F0 90 00
DEBUG: Command  APDU: 84 82 00 00 10 08 EA 79 CD BA 32 F3 1C 69 1B 83 42 CD AA F
E 42
DEBUG: Response APDU: 90 00
DEBUG: Command  APDU: 84 82 00 00 08 08 EA 79 CD BA 32 F3 1C
DEBUG: Response APDU: 90 00
DEBUG: packagePath: helloWorld/javacard/
DEBUG: package: helloWorld
DEBUG: package AID: 01 02 03 04 05 06 07 08 09 00
DEBUG: applet AIDs: [01 02 03 04 05 06 07 08 09 00 00 ]
DEBUG: Command  APDU: 80 E6 02 00 17 0A 01 02 03 04 05 06 07 08 09 00 08 A0 00 0
0 00 03 00 00 00 00 00 00
DEBUG: Response APDU: 00 90 00
DEBUG: Command  APDU: 80 E6 02 00 17 0A 01 02 03 04 05 06 07 08 09 00 08 A0 00 0
0 00 03 00 00 00 00 00 00
DEBUG: Response APDU: 00 90 00
DEBUG: Command  APDU: 80 E8 00 00 FF C4 82 01 63 01 00 1F DE CA FF ED 02 02 06 0
0 01 0A 01 02 03 04 05 06 07 08 09 00 0A 68 65 6C 6C 6F 57 6F 72 6C 64 02 00 21
00 1F 00 21 00 0F 00 2A 00 22 00 5A 00 35 00 0A 00 0C 00 05 00 AA 00 00 00 00 00
 00 00 00 04 01 00 04 00 2A 04 00 01 07 A0 00 00 00 62 00 01 00 01 07 A0 00 00 0
0 62 00 03 03 01 07 A0 00 00 00 62 01 01 00 01 08 A0 00 00 00 62 01 01 01 03 00
0F 01 0B 01 02 03 04 05 06 07 08 09 00 00 00 13 06 00 5A 00 00 A1 81 00 0C 48 65
 6C 6C 6F 57 6F 72 6C 64 52 49 C1 82 02 22 83 05 00 FF 00 01 00 00 00 81 00 00 0
0 02 00 00 00 10 48 65 6C 6C 6F 57 6F 72 6C 64 52 49 49 6D 70 6C 01 00 02 00 82
03 00 FF 00 07 01 00 00 00 1C 42 80 00 00 FF 00 01 01 00 00 00 31 82 02 00 00 12
 01 01 07 00 35 00 01 10 18 8C 00 00 7A 01 10 18 8C 00 01 18 8B 00 02 7A 01 30 8
F
DEBUG: Response APDU: 69 85
DEBUG: Command  APDU: 80 E8 00 00 FF C4 82 01 63 01 00 1F DE CA FF ED 02 02 06 0
0 01 0A 01 02 03 04 05 06 07 08 09 00 0A 68 65 6C 6C 6F 57 6F 72 6C 64 02 00 21
00 1F 00 21 00 0F 00 2A 00 22 00 5A 00 35 00 0A 00 0C 00 05 00 AA 00 00 00 00 00
 00 00 00 04 01 00 04 00 2A 04 00 01 07 A0 00 00 00 62 00 01 00 01 07 A0 00 00 0
0 62 00 03 03 01 07 A0 00 00 00 62 01 01 00 01 08 A0 00 00 00 62 01 01 01 03 00
0F 01 0B 01 02 03 04 05 06 07 08 09 00 00 00 13 06 00 5A 00 00 A1 81 00 0C 48 65
 6C 6C 6F 57 6F 72 6C 64 52 49 C1 82 02 22 83 05 00 FF 00 01 00 00 00 81 00 00 0
0 02 00 00 00 10 48 65 6C 6C 6F 57 6F 72 6C 64 52 49 49 6D 70 6C 01 00 02 00 82
03 00 FF 00 07 01 00 00 00 1C 42 80 00 00 FF 00 01 01 00 00 00 31 82 02 00 00 12
 01 01 07 00 35 00 01 10 18 8C 00 00 7A 01 10 18 8C 00 01 18 8B 00 02 7A 01 30 8
F
DEBUG: Response APDU: 69 85
net.sourceforge.gpj.cardservices.exceptions.GPLoadException: Load failed, SW: 69
 85
        at net.sourceforge.gpj.cardservices.GlobalPlatformService.loadCapFile(Un
known Source)
        at net.sourceforge.gpj.cardservices.GlobalPlatformService.main(Unknown S
ource)
Автор: Abraham Источник Размещён: 15.05.2014 06:00

Ответы (1)


3 плюса

31781 Репутация автора

Решение

ATR обычно не дает много полезной информации о карте. Из трассировки APDU видно, что карта совместима с GlobalPlatform и что ее домен безопасности эмитента OPEN доступен через AID A0 00 00 00 03 00 00 00(это может - но не обязательно - указывает карту JCOP).

После того, как AID был выбран, GPJ выполняет успешную последовательность аутентификации (ОБНОВЛЕНИЕ ИНИЦИАЛИЗАЦИИ, сопровождаемое ВНЕШНЕЙ АУТЕНТИФИКАЦИЕЙ). Это означает, что у вас есть доступ к этой карте с использованием любого набора ключей, с которым вы настроили GPJ (или он использует некоторые ключи по умолчанию?).

Затем, после успешной аутентификации, GPJ пытается установить этот апплет helloworld Java Card. Команда INSTALL выполнена успешно, в то время как загрузка фактического пакета кода приложения не удалась. Это может иметь несколько причин. Наиболее распространенным (при условии, что карта является картой Java) является то, что апплет скомпилирован для API-интерфейса Java Card, отличного от поддерживаемого картой. В этом случае вам нужно будет перекомпилировать апплет для правильной версии платформы Java Card.

Автор: Michael Roland Размещён: 15.05.2014 10:49
Вопросы из категории :
32x32