Команда проверки PIN-кода возвращает 90 00

Я хочу проверить PIN1 на смарт-карте и прочитать счетчик повторов. Согласно ISO 7816-4, стр. 54 (1), счетчик повторов сохраняется в 2 младших бита SW2(SW1 должно быть 63) после команды проверки, но у меня SW1 SW2 = 90 00 в случае правильного пароля:

>> Reset
<<  3b 19 94 80 67 94 08 01 03 02 01 03
>>  ff 00 ff
<<  ff 00 ff
>>  a0 a4 00 00 02
<<  a4
>>  3f 00
<<  9f 16
>>  a0 f2 00 00 16
<<  f2 00 00 63 f4 3f 00 01 00 00 00 00 00 09 33 03 0a 08 00 83 8a 83 8a 90 00
0: pin enabled...
>>  a0 20 00 01 08
<<  20
>>  31 31 31 31 ff ff ff ff
<<  90 00

И 98 04 в случае неправильного PIN1:

>>  a0 20 00 01 08
<<  20
>>  31 31 31 32 ff ff ff ff
<<  98 04

Что я пропустил?

(1) http://www.embedx.com/pdfs/ISO_STD_7816/info_isoiec7816-4%7Bed2.0%7Den.pdf

2 ответа

Решение

Ваша смарт-карта выглядит как GSM SIM-карта. У байта класса явно установлен MSB, поэтому он не соответствует ISO 7816. В этом случае вам следует обратиться к 3GPP TS 11.11 (можно загрузить по этой ссылке).

Команда Verify CHV описана в разделах 9.2.9, 8.9 и 11.3.1.

Вот некоторые из возможных возвращенных слов состояния для этой команды:

  1. '9000': успешная проверка CHV
  2. '9804': неудачная проверка CHV, оставлена ​​хотя бы одна попытка.
  3. '9840': CHV заблокирован
  4. '9808': противоречит статусу CHV (т. е. проверяет PIN-код, который в настоящее время отключен)
  5. '91XX': также успешная проверка CHV, но есть активная команда в ожидании.

Количество оставшихся попыток может быть найдено в ответ на успешный ВЫБОР каталога (MF или DF) или путем отправки команды STATUS (INS). 'F2'). Нижний откусок байта 19 содержит оставшиеся попытки для CHV1/PIN1, байт 20 для PUK1, байт 21 для PIN2 и байт 22 для PUK2. Для получения более подробной информации см. Раздел 9.2.1.


Дополнительные примечания:

  1. Если карта является USIM, команда VERIFY соответствует ISO 7816. Вы можете использовать CLA '00' и найти 63CX статусное слово в этой карточке.
  2. Включенный или отключенный PIN1 может быть проверен из байта каталога SELECT 14. b8=0: CHV1 включен; b8=1: CHV1 отключен.

Хотя я не совсем понимаю ваш формат дампа, обратите внимание на следующее:

  • Возвращается только 63 Cx, если VERIFY отправлено без данных и право доступа еще не предоставлено.

  • Каждая операционная система карты может свободно реализовывать этот ответ счетчика повторов.

Правильная проверка (т. Е. ПРОВЕРКА с данными проверки), очевидно, должна возвращать 90 00, чтобы указать, что проверка прошла успешно. 98 04 - это код возврата, специфичный для GSM ("проприетарный"), который вы не найдете в ISO 7816.

Другие вопросы по тегам