Reading passport chips on iPhones
Although iPhones have NFC hardware, the iOS APIs do not allow the access to this NFC hardware that is needed to read the contactless (RFID) chips embedded in passports and similar ICAO 9303 compliant identity documents. This in contrast to Android, which for many years already allows this. In this blog post we describe how we implemented ReadID for iOS using external NFC readers, but first we give some background on NFC support in iOS.
NFC for iOS
About 25% of the mobile phones worldwide are iOS (according to StatCounter.com), the rest is basically all Android. Of course, for a certain country this 25% can be significantly higher or lower, for example inhabitants of Germany seem to like Android much more than inhabitants from the US.
If we go back a few years, iPhones did not have any NFC hardware at all. But from the iPhone 6/SE onwards iPhones do have NFC. This NFC capability is used for Apple Pay. With iOS 11 (September 2017) Apple made a major step by allowing third-party developers to access the NFC capability to read NFC tags, for iPhone 6S phones and onwards. Unfortunately, this API only supports reading NDEF tags. NDEF tags are very basic NFC tags that typically contain strings, for example a website address, contrary to the more complex ISO14443 tags that are embedded in passports.
There were many rumors that iOS 12, released in September 2018, would fully open up the NFC capability, but unfortunately the changes were minor and not sufficient to read passport chips. For the techies, the NFC Writer X app shows that on jailbroken iPhones it is possible to read passport chips.
Especially over the last year the limited support for NFC that iOS provides has gotten quite some attention from press and politics. For example, around UK’s EU Settlement Scheme app, see also this article from the BBC (1 Nov 2018) Brexit: UK government's battle with Apple over EU citizens app. By the way, ReadID is used in this app. And in the Netherlands this is a recurring subject in our parliament, see also this article in Telecom paper (17 July 2018): Dutch govt calls for Apple to open up iOS NFC for user authentication.
External readers for iOS
It depends on the use case how to deal with the lack of NFC APIs on iOS. Of course, for enterprise use cases in which employees have an Android device, for example the Dutch police, there is not an issue. And sometimes a work-around with borrowing someone else’s phone works. Another option is an external reader. We’ve had an alpha/demo version of ReadID on iOS for two years or so already, and over the years have experimented with different external NFC readers. To be honest, with mixed results. Some of these readers we found are simply not stable enough to be used to read passport chips and/or are too slow.
We’re now doing a pilot for a Dutch government customer with ReadID on iOS using a connected reader that is quite small and relatively cheap. We made a screen recording of our iOS demo app using this reader, see https://youtu.be/gdWa9uOPzLQ.
The benefit of this connected reader, over the typical alternative of an external Bluetooth-based NFC reader, is the user convenience: there is no need for Bluetooth pairing and there is no battery, thus no need to charge this battery. We also have a, much more expensive, sleeve-model connected reader that works fine and also has additional sensors besides NFC. And we’ve recently started testing with the first Bluetooth reader that seems to work fine. Of course, when Apple opens up iOS we’ll very quickly support the embedded NFC as well.
We’re now ready to start a few more pilots and soon also a first production usage of ReadID on iOS. Please do contact us via firstname.lastname@example.org (or your regular contact for existing customers) if you’d like be part of these first deployments.
update 2 April 2019: The UK Home Secretary announced that the EU Exit app, whch uses ReadID, will support iPhones/iPads before the end of the year. See also press release.
update 4 June 2019: Apple opens up NFC in iOS 13, see this blog post.