Peer-to-peer vs Host Card Emulation : what are the differences ?

Today we are going to explain you step by step what are the differences between NFC HCE and NFC P2P.

They are two communications schemes based on the very same NFC technology, but with very different use cases.

HCE stands for Host Card Emulation. This is a particular implementation of the NFC card emulation mode.

Card emulation means that you have an electronic appliance, typically a smartphone, that behaves exactly as a contactless smart card. This is the basis of the virtualization of payment or transport cards, access control badges, loyalty cards and other tokens, onto the smartphone.

There are two different implementations here, depending on the security level that one wants to achieve.

Sensitive payments and transport cards are typically virtualized in a tamper-proof secure component, where all the cryptographic keys are seriously protected against all known attacks. In some architectures, the secure component is the smartphone's SIM card, or UICC, and is therefore owned and managed by the mobile network operator. In other architectures, the secure component is a dedicated chip on the smartphone's mother board, named the secure element. The manufacturer of the smartphone keeps full control other this secure element. Now, a lot of contactless card applications could accomodate a lower security level than banking systems. More than that, virtualizing a card in a secure component is a complex and expensive process, where you have to partner with the operator of manufacturer who is in control of the SIM or secure element.

For all these applications, host card emulation is the implementation of choice. The smart-card logic does not run in a secure component but in the CPU of the smartphone, as any classical smartphone application. This dramatically lowers the complexity, shortens the development times, and allows to deploy the virtualized cards through the application stores.

In short, NFC HCE makes it possible to emulate a contactless smart card only by adding a few lines in a smartphone application - provided that the platform allows it.

Android implements this technology since version 4.4, but as for now, iOS does not allow it.

All SpringCard readers communicate with an HCE app. exactly as they would communicate with an actual contactless smart card. Some of our devices are also able to invert the scheme, and let your Windows or Linux PC be a HCE host!

On the other hand, NFC peer-to-peer is very far from smart card transactions. Actually, NFC P2P is nothing more than a short distance communication channel and, as any communication channel, it is suitable to convey virtually any network protocol and any application data between two devices.

The NFC Forum has specified a network protocol for NFC P2P, whose name is LLCP.

On top of this protocol stack seats the NFC SNEP service, an application designed to push the content of a NFC tag from one of the peers to the other.

In short, instead of having to emulate a NFC tag when you want to share a content - URL, business card, Wifi or Bluetooth settings, your smartphone may simply use SNEP to push the very same content to another smartphone. This is the underlying technology under "Android Beam". Using a LLCP plus SNEP software running in the host, most SpringCard devices are also able to push NFC data to a smartphone.

LLCP, the NFC network protocol stack, has been designed to be open and expendable. Unfortunately, it appears exaggeratedly complex, and, given the intrinsic limitations of NFC communication -very short range, throughput limited to a few kilobytes per second-, its interest vanishes against Bluetooth Low Energy.

Today, we could consider that NFC peer-to-peer is more or less limited to SNEP, the NDEF push service. This is a convenient way to send a short information from one device to another, but doesn't take advantage of the bi-directional aspect of this communication channel.

Published on 10/23/2018

You like it? Share It!

Return to the Labs list
Leave a comment