Невозможно определить AFL на смарт-карте

Я работаю, чтобы получить полезные данные с кредитной карты VISA (например, PAN, срок действия...), используя список AID, которые я застрял.

Я был в состоянии получить доступ ко всем данным вручную. Используя следующий учебник: http://www.openscdp.org/scripts/tutorial/emv/reademv.html

>>00 A4 04 00 07 A0 00 00 00 03 10 10 00

В ASCII:

<<o<EM>„<BEL> <0><0><0><ETX><DLE><DLE>¥<SO>P<EOT>VISA¿<FF><ENQ>ŸM<STX><VT><LF><0>

В шестнадцатеричном:

<<6F 19 84 07 A0 00 00 00 03 10 10 A5 0E 50 04 56 49 53 41 BF 0C 05 9F 4D 02 0B 0A 90 00

После этого я использовал:

>>33 00 B2 01 0C 00 //sfi1, rec1
...
...
>>33 00 B2 10 FC 00 //sfi31, rec16

Я продолжил обучение и узнал, что правильным способом получения данных является использование команды GPO (Get Processing Options). И попробовал это дальше:

>>80 A8 00 00 0D 83 0B 00 00 00 00 00 00 00 00 00 00 00 00 // pdo = 83 0B 00 00 00 00 00 00 00 00 00 00 00 which suposse to be the correct one for VISA.
<< 69 85

Таким образом, условие использования не выполняется.

>> 80 A8 00 00 02 83 00 00 //pdo= 83 00 that should work with every non visa card
<< 80 0E 3C 00 08 01 01 00 10 01 04 00 18 01 03 01 90 00

Если этот ответ правильный и выглядит для меня достаточно хорошо, так как он начинается с 80 и заканчивается к 90 00, я не могу определить AFL, который, я думаю, позволил бы мне определить PAN, дату истечения срока... Может кто-нибудь Помоги мне?

1 ответ

Решение

FCI, который вы получили в ответ на команду выбора (00 A4 0400 07 A0000000031010 00) декодирует в

6F 19  (Шаблон информации управления файлами (FCI))
    84 07  (Имя выделенного файла (DF))
        A0000000031010
    A5 0E  (Собственный шаблон информации управления файлами (FCI))
        50 04  (Метка приложения)
            56495341  ("VISA")
        BF0C 05  (Файл Дискреционные данные эмитента управляющей информации (FCI)
            9F4D 02  (запись в журнале)
                0B0A  (SFI = 11; количество записей = 10)

Этот FCI не включает в себя PDOL (список данных опций обработки). Следовательно, вам нужно принять значение по умолчанию для PDOL (это пустой список для типа вашей карты). Следовательно, поле данных, связанных с PDOL, в команде GET PROCESSING OPTIONS должно быть пустым:

83 00

Где 0x83 - это тег для данных, связанных с PDOL, а 0x00 - это длина нулевых байтов.

Таким образом, правильная команда GPO (как вы уже узнали):

80 A8 0000 02 8300 00

Вы получили ответ

800E3C00080101001001040018010301 9000

Это декодирует в

80 0E  (Формат шаблона ответного сообщения 1)
    3C00  (профиль обмена приложениями)
    08010100 10010400 18010301  (локатор файлов приложений)

Следовательно, локатор файлов приложения содержит следующие три записи:

  • 08010100: SFI = 1, первая запись = 1, последняя запись = 1, записи, задействованные в автономной аутентификации данных = 0
  • 10010400: SFI = 2, первая запись = 1, последняя запись = 4, записи, связанные с автономной аутентификацией данных = 0
  • 18010301: SFI = 3, первая запись = 1, последняя запись = 3, записи, связанные с автономной аутентификацией данных = 1

Следовательно, вы можете прочитать эти записи с помощью команд READ RECORD:

00 B2 010C 00
00 B2 0114 00
00 B2 0214 00
00 B2 0314 00
00 B2 0414 00
00 B2 011C 00
00 B2 021C 00
00 B2 031C 00
Другие вопросы по тегам