2016-10-21 11 views
0

У меня есть апплет, установленный на JavaCard. Я хочу удалить этот апплет через сообщение (OTA), отправив команды APDU. Ниже приведены команды APDU Я посылаю через кард-ридер для удаления й апплет:Удалить JavaCard-апплет через OTA

1) A4 04 00 00 
2) ExAuth 00 02 00 01 00 404142434445464748494A4B4C4D4E4F 
3) 80 E4 00 00 0D 4F 0B A0 00 00 00 00 01 02 03 03 01 02 
4) 80 E4 00 00 0D 4F 0B A0 00 00 00 00 01 02 03 03 00 00 

Я следовал за этим: https://adywicaksono.wordpress.com/2008/05/21/understanding-gsm-0348/

Но я не смог удалить апплет, поскольку есть некоторые каждый ошибка. Спасибо.

ответ

1

Под моим предположением, что ваш JavaCard использует рамки Глобальной платформы (что почти каждый JavaCard делает), необходимо выполнить следующие действия:

  1. Выберите CardManager
  2. Идентифицироваться
  3. Удалить апплет

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

Для аутентификации существуют различные протоколы, например. SCP01, SCP02 и т. Д. SCP02 является стандартом де-факто для современных карт. Тогда, конечно, вам также нужны правильные ключи для аутентификации, поскольку для большинства открываемых карт есть ключи по умолчанию, которые у вас уже есть. Точная процедура объясняется в спецификации Global Platform. Бревно образца из моего инструмента выглядит следующим образом:

=> 00 A4 04 00 08 A0 00 00 01 51 00 00 00 00   .........Q.... 
(9407 usec) 
<= 6F 64 84 08 A0 00 00 01 51 00 00 00 A5 58 9F 65 od......Q....X.e 
    01 FF 9F 6E 06 47 91 23 47 41 00 73 49 06 07 2A ...n.G.#GA.sI..* 
    86 48 86 FC 6B 01 60 0B 06 09 2A 86 48 86 FC 6B .H..k.`...*.H..k 
    02 02 02 63 09 06 07 2A 86 48 86 FC 6B 03 64 0B ...c...*.H..k.d. 
    06 09 2A 86 48 86 FC 6B 04 02 55 65 0B 06 09 2B ..*.H..k..Ue...+ 
    85 10 86 48 64 02 01 03 66 0C 06 0A 2B 06 01 04 ...Hd...f...+... 
    01 2A 02 6E 01 02 90 00       .*.n.... 
Status: No Error 
cm> set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f 
cm> init-update 255 
=> 80 50 00 00 08 7D 62 4D F4 89 F6 07 E3 00   .P...}bM...... 
(55368 usec) 
<= 00 00 42 87 00 17 97 93 24 74 FF 02 00 01 3C 2B ..B.....$t....<+ 
    97 86 B8 3B 57 0A D0 9F 82 BF AD C2 90 00   ...;W......... 
Status: No Error 
cm> ext-auth plain 
=> 84 82 00 00 10 EA 1A 9D A0 24 E6 00 9E F8 84 96 .........$...... 
    1A 77 71 46 B4          .wqF. 
(56879 usec) 
<= 90 00            .. 
Status: No Error 
cm> delete ff4563686f4170706c6574 
=> 80 E4 00 00 0D 4F 0B FF 45 63 68 6F 41 70 70 6C .....O..EchoAppl 
    65 74 00           et. 
(956894 usec) 
<= 00 90 00           ... 
Status: No Error 

Как вы не хотите, чтобы выполнить все криптографический протокол самостоятельно есть инструменты там, которые делают работу за вас. Самый лучший бесплатный инструмент, на мой взгляд, - GlobalPlatformPro от Martin Paljek. Помните, что есть много других инструментов, которые могут быть устаревшими.