Код EMV для чтения PAN - PullRequest
0 голосов
/ 30 апреля 2018

Мне нужно прочитать PAN-код каждой возможной карты через чип. В своей работе я должен использовать только C, и у меня нет процедур, которые могли бы помочь мне в этой скучной задаче. Итак, вот шаги APDU, которые я использую:

1) ВЫБРАТЬ 1PAY.SYS.DDF01

00 A4 0400 0E 315041592E5359532E4444463031    

и затем 00 C0 0000 22 315041592E5359532E4444463031 из ответа на чтение всех данных. Полный ответ:

6f 20 e 84 31 50 41 59 2e 53 59 53 2e 44 44 46 30 31 a5 e 88 1 1 5f 2d 69 8 74 65 6e 66 72 65 73 90

2) ПРОЧИТАЙТЕ ЗАПИСЬ, чтобы получить конкретный AID

00 B2 010C 00 

Полный ответ:

70 17 61 15 4f 7 a0 0 0 0 4 30 60 50 7 4d 41 53 54 52 45 4f 87 1 1 90

3) SELECT AID (в моем случае AID - A0000000043060 из предыдущего ответа)

00 A4 0400 07 A0000000043060

Также в этом случае у меня есть ответ: 61 36, поэтому я повторно вызываю команду с:

00 C0 0000 36 A0000000043060

Полный ответ:

6f 0 41 45 53 52 4f 54 87 1 1 34 84 a0 7 0 0 4 30 60 a5 29 50 7 4d 5f 2d 8 69 74 65 6e 72 66 65 73 bf c f 9f 4d 2 b a 9f 6e 3 7 80 0 0 30 30 0 90

Теперь каждая команда, которую я использую, получит неправильное сообщение. Я не понимаю, должен ли я использовать ЧИТАТЬ ДАННЫЕ, ЧИТАТЬ ЗАПИСЬ, ПОЛУЧИТЬ ПАРАМЕТРЫ ОБРАБОТКИ или что-то еще. Можете ли вы дать мне совет, что мне теперь делать?

Мне нужно получить 16-значный код карты, который обычно четко напечатан на карте.

Спасибо всем

1 Ответ

0 голосов
/ 02 мая 2018

8-байтовый (16-значный) код, напечатанный на смарт-карте (чип-карте оплаты), можно восстановить. Эта информация является частью «Дорожных эквивалентных данных 2», персонализированных в записях в теге 57.

Вы можете нарезать начальные 8 байтов этих «Эквивалентных данных дорожки 2», чтобы получить свой код.

Теперь, как получить «дорожку 2 эквивалентных данных»:

  1. ВЫБЕРИТЕ платежное приложение (исключая процесс PSE / PPSE, поскольку вы можете это сделать)

  2. Отправить команду GPO. Обычно 80 A8 00 00 02 83 00 - это APDU для объекта групповой политики, если в APDU команды GPO не требуются данные PDOL. (Если в ответе команды SELCT отсутствует тег 9F38, просто отправьте этот APDU, в противном случае необходимо создать PDOL). См. EMV 4.3, Книга 3, Раздел 6.5.8 для получения более подробной информации об ответе объекта групповой политики.

  3. Вы получите AFL в ответе объекта групповой политики и прочитаете все доступные записи из приложения согласно AFL. Обычно данные трека 2 можно найти в 2 или 3 начальных записях.

    Чтобы понять кодировку AFL, вы можете обратиться к Разделу 10.2 EMV 4.3, Книга 3.

    Чтобы понять конструкцию READ RECORD APDU, см. EMV 4.3, Книга 1, Раздел 11.2.

  4. Одна из записей должна содержать тег 57, и вы можете извлечь значение.

...