Monday, March 10, 2025

NFC Alphabet Soup


I'm starting to get to the point where I'm learning some of the abbreviations, acronyms and jargon, but I'm starting to forget them as quickly as I'm picking them up. So I thought I'd make a list. This isn't really advancing the story, just here for reference. I will put more acronyms here as I find them. I've tried to put them in alphabetical order, but I'm not particularly good at that, so do look around :-)

ACS - Advanced Card Systems Ltd, of Hong Kong. They appear to be a major supplier of card readers, but it could just be they are good at Web Advertising. Either way, they supplied my card reader, so they're an important part of this project

ACR1552U - The actual card reader I bought.

APDU - Application Protocol Data Unit. It would seem that most of the communication between NFC devices is half-duplex (i.e. request/response) packet communication. Each packet is an "APDU", but then it would seem the term has grown to encompass the whole communication protocol.

ATR - Answer to Reset. When you start a "new" transaction, you "reset" the reader and the card. As you send "reset" to the card, it sends back a string of bytes indicating its setup and capabilities.

EMV - Europay, Mastercard and Visa. This appears to be a protocol (sub-protocol of APDU?) which is expressly used for processing payments. As such, it is of no interest to me, and it also seems that the whole payments processing is in a separate "module" (SAM) from standard NFC for security reasons. While I spent some time looking at it, it is of no interest to us.

ISO 7816. An internation (ISO) standard for communication between cards and devices.

HCE - Host Card Emulation. The process by which a phone pretends it's a card. Normally, the phone wants to think of itself as "the adult in the room" reading cards and tags. But, in conversations between two intelligent devices, only one can take the "host" role, and the other needs to emulate a card. It's possible that the card reader could emulate a card, but I didn't pursue that.

NDEF - NFC Data Exchange Format (who doesn't love nested acronyms?). This is a standard for writing cards and interacting with phones. Surprisingly, I have been unable to find out how to use it so far, although the book I bought focuses on it almost exclusively, as does the Android documentation. I suspect it is very much more useful for writing static tags than for doing the kind of computer to phone application communication that I have in mind here.

NFC - Near Field Communication. The basic wireless technology we are using here to communicate over very short (centimetric) distances.

PC/SC - Personal Computer, Smart Cards. This appears to have become something of an acronym that means "how to communicate between your computer and a smart card reader" in spite of the fact that it clearly doesn't actually say that.

pcscd - the name of the PC/SC daemon on linux.

PICC - Proximity Integrated Circuit Card. The proper name for "wafty-wafty" or "contactless" cards. The key words being "proximity" (you don't need to insert it or make a mechanical connection), "integrated circuit" (it has a chip on it for doing cunning things, powered by the reader) and "card" (a physical card).

SAM - Secure Access Module or Secure Application Module (I have seen both and I think they're interchangeable terms). This refers to the portion of the NFC circuitry on a phone which deals with payments processing. For obvious reasons, the phone manufacturers don't want to share your wallet information with "random apps", so the wallet information is kept separate from everything else.

SCard - Smart Card. This is an abbreviation I have seen used without definition. I assume it is just a synonym for PICC, but it is possible it extends to all proximity cards and tags.

SNEP - Simple NDEF Exchange Protocol. (Yes, that's three levels of acronyms!). This is a protocol by which devices can exchange NDEF. I did not find it simple at all.

Tag. Not actually an abbreviation, but a "tag" refers to a proximity card which may or may not be capable of being programmed, but is generally not a smart card, but just one that can hold a fixed packet of data (usually in NDEF) which it will hand over to any reader. Hotel room keys and building fobs are in this category. I haven't used these as such here, but it would be a useful tool in my "train seat reservation" application

No comments:

Post a Comment