Searching the web far and wide has me almost out of hope in making Samsung's Galaxy S4 phone read the Mifare CLassic chip through NFC. But does anyone know of any form of work-around, or is this strictly a result of the NFC hardware in this phone?
2 Answers
Unfortunately, the NFC technology in mobile devices is ever-so-slightly different from RFID tech, making most cards unreadable. I was trying for the longest time to read HID cards on my phone, but I could never make it work.
Some cards are readable, depending on the frequency in which they operate. I can't remember off the top of my head what those are, however. This app on Play will read all the cards that your NFC chip technologically is compatible with: NFC Tag Info
According to the developer, that app can read Mifare Classic cards.
No, the S4 can't read MIFARE Classic cards. The main problem is that NXP does not license the reader-side of its proprietary MIFARE Classic technology (specifically the use of the (broken) Crypto-1 algorithm) to other chip manufacturers. As a result, the Broadcom NFC controller inside the S4 does not support communication with such cards.
This alone would not be too difficult to circumvent. The Crypto-1 algorithm has been reverse-engineered and published, so it could easily be implemented in software within an Android app. However, the MIFARE Classic protocol does not fully comply to ISO/IEC 14443-3 (NFC-A) in that the authentication command uses a non-standard frame format. As a result, the communication facilities accessible on Android (the closest would be the NfcA
tag technology, that requires adherence to ISO/IEC 14443-3 framing) can't be used to communicate with MIFARE Classic tags.
-
So the non-standard frame format is at a lower level than you can access via the Broadcom NFC hardware inside one of these devices? Just wondering whether this is an API limitation or a hardware compatibility issue. I'd be surprised if Broadcom didn't include a small workaround for so many popular non-standard cards to make their controllers more versatile. Commented Sep 10, 2014 at 0:13
-
Hard to tell without having access to the documentation of the NFC chip. It's at least an Android API limitation (
NfcA
will auto-append a CRC to each frame), but that limitation could just as well reach down to the NFC controller (if the NFC controller only implements the standards). Commented Sep 10, 2014 at 5:03 -
There is a MifareClassic API interface, so maybe the fact that that is not implemented for Broadcom chips means it is a hardware limitation then. Commented Sep 10, 2014 at 9:56
-
Not necessarily. If a chip officially supports MIFARE Classic it will be likely that its software library also implements the
MifareClassic
tag technology. However, I doubt that this will happen for any non-NXP hardware due to legal reasons (as I wrote above, NXP does not currently license the reader-side to any other manufacturer). Commented Sep 10, 2014 at 10:20 -
1@JohnyTex Yubikey Neo uses standard ISO/IEC 14443-4 (i.e. ISO-DEP) so it will work just fine. There is no MIFARE Classic involved in typically Yubikey usecases. Commented Feb 22, 2017 at 7:26