Шаги, чтобы заставить 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-аутентификация, чтобы прочитать основную информацию о владельце паспорта.
Вот последовательность команд, которую нужно отправить, чтобы прочитать данные из паспорта:
- Select - выберите приложение epassport
- Получить вызов
- Внешний Аутентифицировать
- Чтение двоичного кода (защищено безопасным обменом сообщениями) - чтение файла DG1, который содержит основную информацию о владельце паспорта
- Read Binary (защищено безопасным обменом сообщениями) - прочитайте файл DG2, в котором содержится фотография с информацией о владельце паспорта
Я могу предоставить более подробную информацию, если это необходимо. Но пока вы можете также обратиться к документу ИКАО Doc 9303, Машиносчитываемые проездные документы, часть 3, том 2, для спецификаций ВАС.