Шаги, чтобы заставить NFC ePassport APDU аутентификацию работать?

Я работаю над проектом, где мобильное приложение должно общаться с ePassport через NCF. Мы должны извлечь только основные данные о пользователе, такие как имя и фамилия, DOB, фотография и т. Д. После прочтения похожих постов, чтения спецификаций на icao.int и кода библиотеки pyPassport, я все еще не уверен, что должна быть первой командой APDU, отправленной в ePassport. Как начать?

Согласно тому, что я прочитал, похоже, что это должно быть get challenge команда 00 84 00 00 08 (где-то есть B4 вместо 84) но к сожалению я всегда получаю 63 00 ответ (информация не указана).

Я знаю, что перед получением данных мне нужно сделать BAC. Я видел примеры в спецификации сверху и думаю, что смогу закодировать BAC, но как к этому добраться? Кто-нибудь знает последовательность / шаги, как начать и какую аутентификацию нужно сделать (пассивно / активно)? Благодарю.

1 ответ

Решение

Я не совсем уверен, почему вы получили ответ 6300, но я думаю, что это потому, что приложение epassport еще не выбрано. Хотя я могу ошибаться.

BAC - это комбинация GET CHALLENGE (00 84 00 00 08) и команды EXTERNAL AUTHENTICATE. Вам нужна только BAC-аутентификация, чтобы прочитать основную информацию о владельце паспорта.

Вот последовательность команд, которую нужно отправить, чтобы прочитать данные из паспорта:

  1. Select - выберите приложение epassport
  2. Получить вызов
  3. Внешний Аутентифицировать
  4. Чтение двоичного кода (защищено безопасным обменом сообщениями) - чтение файла DG1, который содержит основную информацию о владельце паспорта
  5. Read Binary (защищено безопасным обменом сообщениями) - прочитайте файл DG2, в котором содержится фотография с информацией о владельце паспорта

Я могу предоставить более подробную информацию, если это необходимо. Но пока вы можете также обратиться к документу ИКАО Doc 9303, Машиносчитываемые проездные документы, часть 3, том 2, для спецификаций ВАС.

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