Mifare Classic is the most used cards and I can't understand why HCE (Host-based Card Emulation) only supports ISO 14443-4, but not Mifare Classic type.
Because NXP stops them from using their proprietary protocols and algorithms? Or because they didn’t implement Mifare Classic in Android OS level?
Any comments will be very appreciated.
Cloning Mifare NFC cards with a mobile phone:The easiest way to clone Mifare NFC Classic 1K Cards is by using an Android smartphone with NFC capabilities. That's right, your cellphone can be used to compromise the security of a company if they are using these types of cards (RFID security system).
HCE is a technology built into the device operating system which allows a mobile device to emulate a payment (or other) card, enabling users to make cloud-based near field communication (NFC) mobile payments and other NFC 'transactions'.
In either case, NfcA will also be enumerated on the tag, because all MIFARE Classic tags are also NfcA . Note: Methods that perform I/O operations require the Manifest. permission. NFC permission.
NFC has been widely used on Android Pay, Apple Pay and Device Connection. With NFC on Android Phone, it's even easy to read datas in the mifare card, such as Metro Card, RFID Parking card and etc.
Short answer: Because Google decided to support only ISO/IEC 7816-4 over ISO-DEP (ISO/IEC 14443-4).
Speculations on why they decided that way:
First of all, ISO/IEC 7816-4 over ISO-DEP is the highes protocol layer that could be used to route communication to the application processor through NCI (NFC Controller Interface). Routing lower protocol layers is possible (read: "the NCI protocol supports this"), though there is no need for the NFC controller to even support routing of lower layer communication.
ISO/IEC 7816-4 over ISO-DEP permits routing on a per-application basis. I.e. the reader selects a specific application and only then, the NFC controller decides if the communication is passed to a secure element or to the application processor. The application processor can perform a similar routing mechanism to route communication to a specific app (that's what's done on Android now).
Using lower protocol layers (e.g. ISO/IEC 14443-3) there is no way of doing per-application routing. Instead all communication on that level would be routed to either a secure element or to the application processor. If routed to the application processor, then the operating system has no means to choose between multiple apps. Instead only one app could be registered for that type of communication. However, considering the multitude of app developers for a platform like Android, permitting only a single app would be rather inhibiting development.
MIFARE Classic is proprietary technology from NXP. I don't expect them to license a pure software implementation (on the application processor/Android system) of the MIFARE Classic protocol/tag platform.
MIFARE Classic uses non-standard framing for authentication commands, so it might be difficult to emulate over the NCI Frame RF interface (though I'm not sufficiently familiar with that protocol to confirm if there's an actual limitation that prevents MF Classic emulation).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With