8

News that in iOS 11 Apple now support reading NFC tags for iPhone 7/7 Plus and above.

I found some demos but don't know if there is a way to read protected NFC tags. For example, travel documents have embedded NFC tags that are protected from unsafe reading. I searched around NFC NDEF protocols in Apple documentation but there is no functions that require a challenge/handshake for NFC tags. Is there a way to interact with these types of NFC tags?

Michael Roland
  • 36,432
  • 10
  • 81
  • 168
Andrey M.
  • 2,487
  • 20
  • 38

1 Answers1

8

Important note: The answer below was true for Core NFC in iOS 11. A lot has happened since then. In 2019, Apple added many enhancements to Core NFC. The API now provides access to lower protocol layers (such as exchanging APDUs with contactless smartcards (ISO/IEC 14443-4), and sending commands to MIFARE (and potentially, but not verified, other ISO 14443-3A tags), FeliCa, and ISO/IEC 15693 tags).

The Core NFC overview page announces that as:

Your app can also write data to tags, and interact with protocol specific tag such as ISO 7816, ISO 15693, FeliCa™, and MIFARE® tags.


Answer from 2017:

No, Core NFC only works with NFC tag that are NDEF formatted. Thus, you can only interact with NFC tags that adhere to the NDEF (NFC Data Exchange Format) hardware abstraction layer specified by the NFC Forum. Specifically, with NFC Forum tag types 1 to 5.

Core NFC overview page:

Reading NFC NDEF tags is supported on iPhone 7 and iPhone 7 Plus.

Using Core NFC, you can read Near Field Communication (NFC) tags of types 1 through 5 that contain data in the NFC Data Exchange Format (NDEF).

Contactless smartcards (like electronic passports, payment cards, etc.) and even additional protection features of NFC tags (like NTAG password protection, MIFARE DESFire or Ultralight authentication, etc.) cannot be accessed using the iOS 11 NFC API.

Michael Roland
  • 36,432
  • 10
  • 81
  • 168
  • is there a way to compile libnfc for iOS and use it? – Andrey M. Jun 09 '17 at 07:37
  • @andreym probably not, or at least that would not help you much since libnfc needs to be connected to an NFC reader device and you don't have a usable interface to that on iOS. – Michael Roland Jun 09 '17 at 13:57