Bad user experience because of NFC timeouts

We are developing an app for the online identification function of the German National ID Card.

https://github.com/Governikus/AusweisApp

https://apps.apple.com/de/app/ausweisapp-bund/id948660805

Currently there are two NFC timeouts we are not able to influence because there is no API.

  • A NFC Session has a maximum lifetime of 60 seconds, independent from any card communication.
  • When a card was detected the connection will only last for 20 seconds.

Combined there is also something like a worst case:

  • The user presents the card 55 seconds after the session was started: The connection will only last for the remaining 5 seconds of the session.

The identifications works as follow:

  1. The user clicks on a link on a website and our app will appear.
  2. After selecting access rights the NFC session is started.
  3. Sometimes the user start to search for their ID card now and this takes some time. When the 60 seconds are over we start a new session until there is a card or the user aborts.
  4. After establishing a secure channel with a PIN our app is a tunnel to allow a server a direct communication with the card. This takes some time.

There are many identification aborts due to the unpredictable timeout, which cannot be controlled either by the API or by the user.

We also have a use case where the iPhone can be used as a card reader over WiFi by an app on another device. It is essential to have a permanent NFC session without timeouts, as long as the user wants it in this case.

Any idea how to deal with this situation? How can we disable this timeouts?

Answered by Claude31 in 794108022

You should file a bug report, as I suspect it is not possible to modify those timeouts which are set for maximum security.

have you a way to notify user that he/she should present the card promptly ?

Or could the trick described here for Apple Pay work in your case ? https://stackoverflow.com/questions/58463408/how-can-i-increase-the-failure-timeout-of-an-apple-pay-operation

You should file a bug report, as I suspect it is not possible to modify those timeouts which are set for maximum security.

have you a way to notify user that he/she should present the card promptly ?

Or could the trick described here for Apple Pay work in your case ? https://stackoverflow.com/questions/58463408/how-can-i-increase-the-failure-timeout-of-an-apple-pay-operation

@Claude31 is correct. There is no way to modify these timeouts through API or user action. And if you have a use case that does indeed require a longer timeout because it is not possible for your users to present their phones within the allowed amount of time, for some reason, you should indeed file a bug report, explaining the conditions.

I would advise against employing "tricks" to try to extend this timeout. Any such undocumented solution can stop working in the future without warning.

Bad user experience because of NFC timeouts
 
 
Q