Что означает ответ APDU 910B для карты DESFire EV2?
Я программирую карты DESFire EV1 и DESFire EV2 с помощью команд DESFire в качестве обернутых APDU. Когда карта представлена, я использую команду GetVersion, чтобы получить UID (который я затем использую для просмотра истории карт и для диверсификации ключей). Я посылаю эту команду, чтобы получить информацию о версии карты:
90 60 00 00 00
Обычно я получаю ответ в несколько байтов плюс 91 AF
указывая, что есть дополнительная информация для запроса, которую мы повторяем и т. д. согласно документам. Это прекрасно работает для карт DESFire EV1 и DESFire EV2, пока мы не используем их в считывателе OMNIKEY 5x21 (считыватели представлены в двух моделях принтеров для карт HID, HDP5000 и DTC4500e). Когда мы делаем это, мы получаем ответ 91 0B
и никаких данных - но только с карт EV2 мы не видим проблем с EV1. Я не вижу, чтобы этот ответ был документирован нигде, и мне неясно, что это может означать.
Повторим - мы видим это только в считывателях omnikey с картами DESFire EV2. Карты DESFire EV1 этого не делают, и мы не видим этого вообще с другими устройствами для чтения карт (пока).
У нас был некоторый ограниченный успех в вращении карт. Один из наших удаленных инженеров добился успеха с особой ориентацией карт, которая предполагает, что есть некоторая проблема EM/ дальности / антенны, но QA и производство пока не могут воспроизвести это вообще.
Я также разместил этот вопрос на форумах NXP без ответа. В этом посте есть немного больше деталей.
1 ответ
Я видел исходный код прошивки HID для читателей OMNIKEY и могу сказать, что это катастрофический беспорядок. Считыватель OK5x21 довольно старый, поэтому я бы посоветовал вам напрямую связаться с HID и запросить обновление прошивки. Это помогло мне тогда во многих случаях, потому что устаревшая прошивка не могла должным образом взаимодействовать с более новыми смарт-картами, такими как DESFire EV2, что приводило к странным ответным состояниям и т. Д.