2015-04-01 10 views
5

У меня есть смарт-карты со следующей ATR:Как работать с SIM-картами (Установка апплета)

ATR = 3B 9E 94 80 1F 42 80 31 00 73 BE 21 10 66 54 59 53 04 4C 25 CF.

Основываясь на выходе atr-parse.appspot.com, я обнаружил, что это MCI (Мобильная коммуникационная компания Ирана) SIM-карта.

Таковы информация, которую я получил от исторических Bytes:

(компактный TLV объект данных)

Тэг: 3, Len: 1 (карта байт данных службы)

обслуживание карт байт данных: 0

  • EF.DIR и EF.Услуги доступа ATR: по GET RECORD (ов) команды

  • карты с MF

Tag: 7, Len: 3 (возможности карты)

методы отбора: 190

  • Подписанный номер записи

  • Короткое обозначение EF

  • Неявные Выбор DF

  • Выбор DF идентификатором файла

  • Выбор DF по пути

  • Выбор DF полное имя DF

данных кодирования байт: 33

  • Поведение функций записи: собственный

  • Значение 'FF' для первого байта полех тегов BER-TLV: действительного

  • блока данных в квартетах: 1

Command цепочки, длины и логические каналы: 16

  • Logica л о назначении канала номера: с помощью карточки

  • Максимального количества логических каналов: 1

Метки: 6, Len: 6 (предварительно выдачи данных)

данных: 54 59 53 04 4C 25 "TYS.L%"

Как вы видите выше, упоминается, что карта имеет MF.

Проблема в том, что я не могу ничего сделать с этой картой. На первом этапе я хочу перечислить его содержимое. Я посмотрел на 11.11TS, TS 102.221, TS 131.102 и TS 151.011 спецификации.

Насколько я понимаю из вышеперечисленных документов, системный файл карты состоит из Master File, что его AID - 3F00 и некоторые DF-s и EF-s. Например, основание в этой ниже таблице TS 151.011 спецификация Я попытался выбрать несколько DF-S:

enter image description here

Таковы результаты:

Connected to RTP CCID USB Reader 0 
ATR: 3B 9E 94 80 1F 42 80 31 00 73 BE 21 10 66 54 59 53 04 4C 25 CF 

> APDU 
> A0 A4 04 00 02 5F 30 
< 6A 82 

> APDU 
> A4 A4 04 00 00 
< 6E 00 

> APDU 
> A0 A4 04 00 00 
< 67 00 

> APDU 
> 00 A4 04 00 00 
< 61 13 

> APDU 
> 00 C0 00 00 13 
< 6F 11 84 09 A0 00 00 00 62 03 01 08 01 A5 04 9F 65 01 FF 
< 90 00 

> APDU 
> 00 A4 04 00 09 A0 00 00 00 62 03 01 08 01 
< 61 13 

> APDU 
> A0 A4 04 00 09 A0 00 00 00 62 03 01 08 01 
< 6E 00 

> APDU 
> 00 A4 04 00 09 A0 00 00 00 62 03 01 08 01 
< 61 13 

> APDU 
> 00 C0 00 00 13 
< 6F 11 84 09 A0 00 00 00 62 03 01 08 01 A5 04 9F 65 01 FF 
< 90 00 

> APDU 
> 00 A4 04 00 02 3F 00 
< 6A 82 

> APDU 
> A0 A4 04 00 02 3F 00 
< 6E 00 

Как вы видите выше, у меня не все из них, и я мог бы найти помощь ИСД только.

Я попытался перечислить содержимое с GlobalPlatformPro инструмента также, но мне кажется, что карта не поддерживает Initial команды Update APDU:

C:\Users\User\Desktop\today>java -jar gp.jar -visa2 -key 47454D5850524553534F53414D504C45 -unlock -list -v -d -i 
# Detected readers from SunPCSC 
[*] RTP CCID USB Reader 0 
SCardConnect("RTP CCID USB Reader 0", T=*) -> T=0, 3B9E94801F4280310073BE211066545953044C25CF 
SCardBeginTransaction("RTP CCID USB Reader 0") 
Reader: RTP CCID USB Reader 0 
ATR: 3B9E94801F4280310073BE211066545953044C25CF 
More information about your card: 
    http://smartcard-atr.appspot.com/parse?ATR=3B9E94801F4280310073BE211066545953044C25CF 

A>> T=0 (4+0000) 00A40400 00 
A<< (0019+2) (249ms) 6F118409A00000006203010801A5049F6501FF 9000 
Auto-detected ISD AID: A00000006203010801 
***** Card info: 
A>> T=0 (4+0000) 80CA9F7F 00 
A<< (0000+2) (73ms) 6A86 
GET DATA(CPLC) returned SW: 6A86 
NO CPLC 
***** CARD DATA 
A>> T=0 (4+0000) 80CA0066 00 
A<< (0000+2) (81ms) 6E00 
NO CARD DATA 
***** KEY INFO 
A>> T=0 (4+0000) 80CA00E0 00 
A<< (0000+2) (82ms) 6E00 
A>> T=0 (4+0000) 00CA00E0 00 
A<< (0000+2) (60ms) 6E00 
GET DATA(Key Information Template) not supported 
A>> T=0 (4+0008) 80500000 08 FE44F8E8DF60349B 00 
A<< (0000+2) (61ms) 6D00 
pro.javacard.gp.GPException: INITIALIZE UPDATE failed SW: 6D00 
     at pro.javacard.gp.GlobalPlatform.check(GlobalPlatform.java:1092) 
     at pro.javacard.gp.GlobalPlatform.openSecureChannel(GlobalPlatform.java:398) 
     at pro.javacard.gp.GPTool.main(GPTool.java:371) 

C:\Users\User\Desktop\today> 

Я хочу знать, что случилось? Как я могу установить апплеты java-карты на эту SIM-карту?

Обратите внимание, что я уже успешно работал с Java-картой, но я полностью смущен этими SIM-картами. Я понимаю, что любой может пролить свет на эту проблему. С уважением.

+0

Поддерживает ли ваша карта SCP02 ?? –

+0

Я понятия не имею. Я не мог найти документацию. Это та же SIM-карта, что и наш оператор сети для телекоммуникаций. – Abraham

+0

@AnuragSharma Есть ли способ проверить его без документов? – Abraham

ответ

2

Если вы получаете карту с рынка (а не свою собственную карту разработки), установить апплеты на нее практически невозможно, так как вы не знаете набор ее ISD. Это делается для того, чтобы предоставить только владельцу карты и владельцу карты (MNO) полный контроль над содержимым SIM-карты.

Другим возможным объяснением является то, что не все SIM-карты полностью поддерживают GP или Javacard. Существуют существующие SIM-карты, которые соответствуют только стандарту 2G/3G/4G (GSM 11.11, 11.14, 102.222 и т. Д.), Чтобы пользователь мог аутентифицироваться только в сети. Такая SIM-карта также может использовать приложение STK, но это не обязательно реализуется как javacard-апплет.

+0

Вы имеете в виду, что мне кажется, что моя карточка в вопросе не соответствует ни Global-Platform, ни Java-Card? – Abraham

+1

, вероятно, да, у меня когда-то была разработана такая сим-карта. Он имеет приложение STK (портировано из апплета Javacard), встроенное в его ОС. Такая карта обычно существует в развивающейся стране для снижения стоимости карты. –

+0

Возможно ли, что у меня есть карта GP и JC, но мне нужно проверить PIN-код перед отправкой других команд APDU? – Abraham

1

Согласно вашему последнему протоколу команды Initialize Update, могут быть некоторые возможности: 1. Scp02/Scp03 не поддерживается на вашей карте, меньше возможностей, если он поддерживает GP. 2. ISD не настроен с параметрами, поддерживаемыми SCP. 3. Существует еще один защищенный канал, который ранее выполнялся на том же логическом канале, на карте.

По моему мнению, могут быть последние 2 возможности.

Для проверки 3-ий, вы должны попытаться начать Scp02 с следующим набором шагов: 1. Отправить холодный сброс (POWERON-Power-OFF) 2. Выберите ISD 3. Отправить команду Инициализировать Update.

Если он не работает, вам нужна информация о параметрах приложения ISD, и из этих параметров вы можете определить, что ISD поддерживает SCP02/03 или нет?

Эти параметры могут быть следующими: «C9 04 81 02 XX YY» (здесь поддерживается XX-SCP и значение «i» параметра YY для SCP).