This is killing me... I am trying to find an NFC/RFID tag that:
Implements encryption and/or cryptographic signing of data sent to the tag such that the tag can be authenticated by the reader. I do not care if the tag attempts to authenticate the reader, and
Is widely supported by Android phones and the standard NFC libraries, and
Stores the cryptographic key(s) in a secure manner (reading it should be impossible after a config fuse is blown).
I do not care what sort of payload can be stored on the tag and I have no use for NDEF messages. I do not care if the encryption used is symmetric or asymmetric. All I want to do is send a bit of data to the tag and have it, using a shared secret, encrypt or sign that data and send it back to the phone, whereupon my code will perform the same function and compare the results with the tag's response to validate the tag.
I have samples of Atmel CryptoRF* tags and while they would probably do most of what I need, they aren't detected properly by the only Android phone I have. The phone dings and I'm filtering for 'android.nfc.action.TECH_DISCOVERED' with the appropriate tech-list entries but I get nothing. Atmel's tech support is worse than useless (because I wasted time asking questions they never bothered to answer). Logcat looks like:
I don't see any previous entries suggesting that the tag was ever recognized by Android.
This seems like such a simple, obvious and needed type of tag that it must exist somewhere.
NFCGuy or others - any ideas?
Thanks!
*The Atmel CryptoRF data sheet says the following, which may or may not be helpful in determining whether these things could ever be read by an Android phone:
What is NFC? NFC, or near-field communication, refers to technology that allows enabled devices that are near each other to wirelessly share data. NFC technology evolved from radio frequency identification (RFID) technology, and is more fine-tuned.
NFC standards and protocols are based on the existing RFID standards including ISO/IEC 14443, FeliCa, ISO/IEC 18092 and those defined by NFC Forum. So, in other words, NFC technology builds upon the existing high-frequency RFID and is often used in proximity access control solutions.
Thanks to the NFC reader integrated into the NFC Code Touch, you can use a combination of these NFC tags and codes to create a highly encrypted and feature-rich access solution.
You can use NFC tags for contactless payments, sharing contact information as a business card, location tracking, identity verification, access control along with hundreds of other uses and applications.
Mifare Desfire will do what you ask for except for one thing:
Crypto support is not available on API level.
You have to write code that does all the authentication and cryptography and talk to the Desfire tag directly. The Android API provides the tools to do so via the low-level access function IsoDep.transceive
. The crypto functions itself can be found in javax.crypto.spec
Unlike other tags with cryptography documentation of the required steps to do authentication and encryption are available on the internet.
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