Разные отклики в разных устройствах Android при взаимодействии с МСПД - PullRequest
0 голосов
/ 22 мая 2018

В настоящее время я работаю над приложением Android, которое читает электронные паспорта и другие документы с поддержкой NFC.

Я проверил код на нескольких устройствах Android, но обнаружил, что одно из них не удалось прочитать документы.

Взяв в качестве примера электронный паспорт, он корректно передает вызов Select Application и возвращает код состояния 90 00. Я также получаю действительный вызов BAC, но когда я вызываю EXTERNAL AUTHENTICATE, он возвращает статускод 69 86 (команда не разрешена (без текущей EF)).Все остальные мои тестовые телефоны возвращают код состояния 90 00.

Мой вопрос заключается в том, почему одна модель телефона дает мне другой ответ APDU.Я пытался прочитать об оборудовании NFC в Android, но не нашел ответа на вопрос, почему это может происходить.Я могу предположить, что это проблема протокола?

Если бы кто-нибудь мог пролить свет на это, я был бы очень признателен.

1 Ответ

0 голосов
/ 01 августа 2019

Не анализируя фактическое общение, можно только догадываться, что там происходит.Однако есть две возможные причины:

  1. То, что вы испытываете, может быть вызвано механизмом проверки наличия тегов Android.По умолчанию, если вы отправляете команды недостаточно быстро, Android перемежает ваше общение с помощью механизма проверки присутствия.На некоторых устройствах эта проверка присутствия использует APDU, отправленные по основному логическому каналу.Следовательно, они принимаются и обрабатываются приложением МСПД в паспорте и могут вызывать изменения состояния.См. Ошибка цепочки команд Android IsoDep .

  2. Криптографические операции на МСПД требуют больше энергии, чем другие операции.Если для вашего паспорта требуется больше энергии, чем для этого конкретного тестового устройства (помните, что телефоны NFC предназначены для чтения меток NFC с низким энергопотреблением, а не для взаимодействия с жадными бесконтактными смарт-картами, потребляющими энергию), связь с паспортом может быть потеряна илив худшем случае может вызвать неожиданные изменения состояния в приложении смарт-карты (хотя чипы смарт-карт обычно предназначены для принудительного сброса в этих случаях).

...