Create and read NFC tags with SpringCard NFC Tool and NFC Decoder

NFC Tags in a nutshell

An NFC Tag is a regular ISO 14443 card (either a memory card or a microprocessor-based smartcard), holding a specific content. Depending on this content, the "reader" will perform automatically a predefined action. Typical actions are :

  • open a URL (Internet address),
  • dial a number or send an SMS (if the reader is a mobile phone),
  • launch a software,
  • etc...

NFC tags are for instance embedded in Smart Posters, a new media for advertisement. Users seing the poster and touching its NFC tag with their NFC-enabled mobile phone or smartphone they may receive easily coupons or detailed information, or be prompted to buy online the advertised goods.

NFC logo : identifies NFC Compliant devices

The NFC Tag logo has been designed by the NFC Forum to identify NFC Tags.

NFC Forum, the organisation in charge of NFC standardization, has registered 4 types of NFC Tags :

  • NFC Type 1 tags :  Innovision Research & Technology TOPAZ chips (proprietary communication protocol on top of ISO 14443-A modulation)
  • NFC Type 2 tags : NXP MIFARE Ultralight and Ultralight C chips (proprietary communication protocol on top of ISO 14443-A modulation)
  • NFC Type 3 tags : Sony FELICA chips (proprietary modulation and communication)
  • NFC Type 4 tags :  standard ISO 7816-4 smartcards using ISO 14443 A or B up to layer 4

NXP and Nokia also support using NXP MIFARE Classic (1k/4k) tags. Visit NXP's website for more information on how to make NFC tags using their chips (including MIFARE DESfire as Type 4 tags).

The format on the content stored in the tags is specified by NFC Forum in NDEF standard (NFC Data Exchange Format).

Getting started with NFC Tags thanks to SpringCard readers and software

SpringCard has developed a set of software -with sources included in the new release of the SDKs- to demonstrate how NFC tags are encoded and processed by SpringCard contactless readers.

Customize your tags using NFC Tool

NFC Tool is a desktop application (Windows) to encode and read common NFC tags. NFC Tool works with PC/SC readers (Prox'N'Roll, CrazyWriter or CSB6 namely).

NFC Tool allows you to read/write NFC content on your cards

An example of use of NFC Tool with a Mifare UltraLight Card

Easily read and write NFC content in your cards using NFC Tool : Choose between SmartPoster, Text or URI ; fill in your URL or Text ; encode it to generate the NDEF and write it to your card.

At the date of writing, NFC Tool supports the following tags :

  • MIFARE Classic cards (standard 1K/4K)  as NFC Type 2 tags ;
  • MIFARE UltraLight (MF0ICU1) and UltraLight C (MF0ICU2) cards as NFC Type 2 tags ;
  • TOPAZ by Innovision cards as NFC Type 1 tags.

NFC Tool can be found in our PC/SC SDK (C# application for .NET framework).

Read NFC tags on your Pocket PC using NFC Decoder

NFC Decoder is a lighweight application for Windows Mobile (Pocket PC) that allows you to open an URL from an NFC tag card. NFC Decoder works with either SpringProx-CF, SpringProx-CF UP or SpringWAP through SpringProx API. It supports MIFARE 1K, MIFARE 4K and MIFARE UltraLight or UltraLight C as NFC Type 2 tags.

NFC Decoder

An URL found on tag with NFC Decoder

(C# application for .NET compact framework).

Mifare UltraLight C : low-cost yet high security

NXP (formerly Philips SemiConductors) Mifare UltraLight chip (MF0ICU1) is a inexpensive contactless memory, widely used to make disposable transport tickets or other low-cost identification tags. As MF0ICU1 lacks of authentication or even password protection schemes, the reading application has to way to determine whether the serial number and the data come from a genuine card, or from a a spy/replay device emulating it  (read this article for a few details).

The new Mifare UltraLight C chip (MF0ICU2), while remaining compatible with MF0ICU1, now provides a strong mutual-authentication algorithm, based on the standard 3DES (Triple-DES) algorithm. This allows to make sure the card in front of a reader is genuine (the application and the card share the same secret key).

A Mifare Ultralight C embedded in a wristband, used for ticketing and pre-payment during the Gala ECE event.

Gala ECE is a successful example of the Mifare UltraLight C's use for ticketing and payment. To prevent the risk of theft in this sort of giant night-club, the bars were not allowed to accept bills or coins ; wristbands had to be credited at a few kiosks, and then used as electronic purses. When it comes to money, security is a major concern. The organisators wanted a secure purse solution yet remaining compliant with low-cost tags, and SpringCard successfully help them to specify and develop the it on top of Mifare UltraLight C.

Here's a few hints :

  • Thanks to a 3DES-based key diversification algorithm, each card has its own secret key (the secret key of the card is computed from a 'root' key and the ID of the card). Doing so, if one key gets corrupted, the whole system remains safe. Only the 'root' key is critical,
  • Confidence is based on the dynamic mutual-authentication (based on 3DES). This removes the need to digitally sign (or MAC) the data stored in the card, so the whole memory remains usable to store informations (including a small transaction log),
  • Selective locking and protection of different blocks in card's memory allow a fast reading yet ensure that no writing could be made without prior authentication,
  • As the card doesn't feature a true anti-tearing system, we choose to read-back the data after writing, but thanks to the fast USB link between the computer and the Prox'N'Roll, the added time is not noticeable for the consumer.

This experience has shown how easy it is to implement quickly a large scale ticketing and pre-payment system, in the same price range as 'conventional' memory cards (Mifare, Mifare UltraLight, or their equivalent in ISO 14443-B), but with a very good security level -that was before achievable only using more expensive smart cards.