Sunday, October 21, 2012

NFC

One of the TLAs I mentioned previously was NFC (Near Field Communication).

There's been a lot of "noise" about NFC and using this feature for mobile payments. That gets complicated real fast because everybody wants their cut of the transaction. Google has implemented Google Wallet on the Nexus devices but initially this would only support MasterCards. This has been addressed and now supports more credit/debit cards. Several of the wireless carriers, e.g. AT&T, Verizon, and T-Mobile, have blocked Google Wallet on their devices and are promoting their own ISIS service. ISIS uses a special SIM card for authentication.

Using NFC for mobile payments with Google Wallet requires a "secure element" which isn't necessarily part of NFC. What this means is twofold: 1) some phones don't have a a "secure element" (e.g. my Samsung Galaxy S II Skyrocket) so seemingly those devices will never support mobile payments with Google Wallet, and 2) that NFC can be used for other functions.

The rest of this post will focus on the second point.

Steve Gibson did an entire episode of Security Now on NFC. In this discussion Steve explains why NFC is limited to a 1 inch range. You don't have to literally "bump" the devices but they've got to be really close and remain so for the duration of the exchange.

I think the following statement is key to the rest of this discussion:
It's just a short-range means of exchanging relatively low bandwidth, that is, 106Kb per second, data between two devices...
Let that soak in - 106Kbps. That's SLOW. Notice the lowercase "b" indicating bits. And the devices have to be maintained in the 1 inch range during the entire transmission.

So how do you overcome that?

Don't send much data.

So there are are currently three implementations of NFC transfer.

First Android Ice Cream Sandwich has a capability called "Android Beam." Here's a good description of how it works. Basically ICS simply uses the NFC bandwidth to exchange data between two devices. Consequently the objects must be small, e.g. a concise URL such as a Google Map or Google Play Store location (and I'll bet it uses the goo.gl shortener).

To use Android Beam you need to enable NFC and Android Beam in Settings / Wireless and Network / More...


I have actually used this capability. A co-worker and I held our Samsung Galaxy S IIs back to back. On mine I had Google Maps as the current application. His was on the home screen. When the NFC chips established contact both phones vibrated. Then the display on mine changed to what looked like a webOS "card." Above this card were the words "Touch to beam." When I tapped on the card, it disappeared into the distance and the Google Map presented on his phone. I didn't see any residual evidence of the transfer.

So what applications support this Android Beam? Dunno. I've looked high and low for a list with no success. Google Maps worked by my own testing. Sending URLs between Chrome browsers didn't for me but allegedly they should. Reports say that contacts should transfer.

There's also a related use of this capability known as "NFC Tags." These are passive stickers that transmit an NFC signal when energized by the NFC radio in a device. These tags can transfer the same type of data that is exchanged between two devices. This means that the tags can trigger pre-defined actions on the device, e.g. turning Wi-Fi on or off, performing a Foursquare check-in, etc. There's a good article on NFC tags here.

Second Samsung has a like capability on Samsung Galaxy S IIIs called "S Beam." Here's a good description of how it works. NFC is used to identify the devices but the actual object is moved over Wi-Fi Direct. This raises the bandwidth to 300MBps and relieves the need to maintain the 1 inch proximity during the transfer. Notice the uppercase "B" indicating bytes. You can see S Beam work here in Samsung's Galaxy S III commercial.

Lastly Android Jelly Bean extends the "Android Beam" capability to use Bluetooth as a transfer medium. Here's a good description of how it works. In this method the bandwidth varies with the version of Bluetooth the devices support and like S Beam the requirement for the 1 inch proximity during the transfer is relieved.

So what devices have NFC? There's a good list of NFC devices here. Oh, the iPhone 5 doesn't have NFC. Maybe next time.

I apologize for how confusing this is but I haven't found even this level of comparison of the various NFC implementations anywhere else. If you find more detail, please post a comment.

No comments: