2014-09-08 1 views
-1

У меня есть куча гибридных смарт-карт с чипом SmartMX (smartmx-m3b.03.d3-NX212A, если быть точным), которые содержат MIFARE Classic 4k. Я пытаюсь получить доступ к части карт MIFARE, и, делая это на Android, довольно тривиальная задача получить доступ к тегу android.nfc.tech.MifareClassic, я не знаю, как это сделать в Windows. Должен ли я искать специальные команды PCSC Reader для доступа к MIFARE Classic на этой карте? Или я должен искать специальный чип SmartMX для APDU для переноса команд для MIFARE classic?SmartMX Hybrid Card - Как получить доступ к MIFARE Classic

+0

Является ли ваша карта гибридной картой (т.е. SmartMX с контактным интерфейсом упакована вместе с бесконтактным чипом MIFARE Classic в одну пластиковую карту) или с двух интерфейсной картой (т.е. SmartMX с эмуляцией MIFARE Classic и как с контактом, так и с бесконтактный интерфейс)? –

+0

Вы хотите получить доступ к памяти MIFARE Classic через контакт или бесконтактный интерфейс при доступе к карте из Windows? –

+0

@MichaelRoland Это двойная интерфейсная карта. SmartMX с эмуляцией MIFARE Classic. Я хочу получить доступ к MIFARE Classic по бесконтактному интерфейсу, получая доступ к карте от разных читателей и операционных систем. –

ответ

2

Это зависит от используемого устройства чтения смарт-карт. Прежде всего, как указывал mictter, ваш читатель должен поддерживать технологию MIFARE Classic (что в основном означает, что вы застряли с бесконтактными считывателями на основе набора микросхем NXP или читателей, которые (несмотря на политику лицензирования NXP на технологию чтения MF Classic) реализуют MIFARE Классическая функциональность считывателя).

Затем вы, вероятно, столкнетесь с проблемой автоматической активации протокола чтения. Большинство считывателей PS/SC, которые я использовал до сих пор (например, HID Omnikey 5321), автоматически выполняют активацию протокола до уровня доступных протоколов. Для микросхемы SmartMX, которая предоставляет как MIFARE Classic, так и ISO-DEP (ISO/IEC 14443-4, с протоколами APDU ISO/IEC 7816-4 сверху) через бесконтактный интерфейс, это означает, что считыватель автоматически выполнит ISO-DEP активация ссылки. Это эффективно отключает доступ через протокол MIFARE Classic (поскольку протокол MF Classic работает поверх нижнего уровня -> ISO/IEC 14443-3).

Таким образом, вы в основном есть два варианта:

  • использовать апплет, который говорит ПБДП с одной стороны, и получает доступ к области памяти Mifare Classic на другой стороне. NXP предоставляет готовый апплет для этого, который может или не может быть включен для бесконтактного интерфейса. Кроме того, NXP предоставляет API, который вы можете использовать в своем собственном аплете для доступа к области памяти MIFARE Classic . Таким образом, вы можете написать свой собственный апплет

  • Заставьте считыватель смарт-карт активироваться только на уровне протокола ISO/IEC 14443-3, чтобы получить доступ к карте в виде карты MIFARE Classic. В зависимости от вашего читателя это может быть нечто среднее между тривиальным и невозможным. Некоторые читатели, как и вышеупомянутый читатель HID Omnikey, поддерживают изменение уровня автоматической активации протокола с помощью параметра реестра (или с помощью инструмента HID Workbench). Некоторые считыватели (например, ACR122U в своем более раннем варианте) позволяют выполнять ручное перечисление и активацию бесконтактных карт, где вы можете свободно выбирать уровень активированного протокола. Спецификация PC/SC в текущей версии (что означает, что эти функции могут не поддерживаться некоторыми/многими считывателями), определяет команду SWITCH_PROTOCOL, которая может использоваться для принудительной ручной активации бесконтактной карты до пользовательского протокола (см. PC/SC 2 specification, Part 3, Supplemental Document 2 - Contactless ICCs о том, как эта команда работает).


) Читать либо как "область памяти MIFARE Classic" или как "виртуальной карты MIFARE Classic". Я не нашел много информации об этом типе. В зависимости от того, насколько новый чип и его программное обеспечение, а не область памяти MIFARE Classic, чип может (я сомневаюсь, что) будет способен управлять настоящими виртуальными картами MIFARE Classic в соответствии с новой версией спецификации MIFARE4Mobile.

) Я предполагаю, что SmartMX, который вы используете, запускает JCOP OS и вы можете установить произвольные апплеты Java Card.

+0

Спасибо за очень подробный ответ. Я немного поработал и выяснил, что выбор протокола основан на значении SAK карты. –

+0

Кто-нибудь нашел решение для переключения протокола с помощью SCL3711? – Bebeoix

0

Поскольку MIFARE Classic - это проприетарная технология, вам понадобится, чтобы ее поддерживал читатель. Например, только Android-телефоны с контроллерами NFC, производимые NXP, могут получить к нему доступ (у моего собственного Nexus 5 есть Broadcom, поэтому я не могу получить доступ к android.nfc.tech.MifareClassic).

Подходящим решением является MIFARE4Mobile: вы можете отправлять APPU GlobalPlatform в апплет JavaCard (как правило, предоставляется NXP, но есть и другие реализации), и апплет, называемый «Service Manager», управляет элементом MIFARE Classic на карте.

+0

Оба моих читателя поддерживают MIFARE Classic. Но я не знаю, как рассказать читателю рассматривать карту как MIFARE Classic вместо _smart card_. –

+0

Боюсь, вам придется посмотреть документацию читателя. Некоторые читатели, которых я использовал, имеют команды типа APDU, другие - собственные API. Насколько мне известно, в PCSC нет команд Mifare Classic. – mictter

+0

Мои читатели имеют APDU, как команды для классических карт MIFARE, но эти команды не работают с гибридными картами. Видимо, с гибридной картой все команды обрабатываются чипом _smarter_ на карте –

Смежные вопросы