4

I'm trying to wrap my head around how to implement iOS/Android finger print to authenticate a user.

From what I understand, triggering the finger print dialog is just an additional security?

So a typical on boarding process would be something like this:

  1. User downloads the app.
  2. User registers/signs in, and get a token back from the server.
  3. On certain actions where we need additional security, trigger finger print dialog.
  4. If fingerprint is OK - do actual REST call with token from step 2.

Am I missing something?

fortysixandtwo
  • 485
  • 5
  • 12
  • 1
    yes.. you are almost correct. Because the fingerprint feature by either devices doesn't let us see or read the "fingerprint" rather just compares the given "fingerprint" with the stored "fingerprint" and returns result with matched or not. – Sandeep R Jul 06 '17 at 11:49
  • Thanks for answering, @sandeep. Does this mean that there' no token or something similar returned from the finger print verification that needs to be sent to the server? – fortysixandtwo Jul 06 '17 at 12:07
  • No It doesn't provide any token, If it did, it would defeat the purpose of a fingerprint security. As you said in your post. Its just an additional security. but you can use that additional security in your app, as this user explained in his answer. https://stackoverflow.com/a/37115194/2026280 – Sandeep R Jul 06 '17 at 12:13

1 Answers1

3

Please read one of these blogs (there's many others):

Process have to be:

  1. User must have already register fingerprint and choose unlock device with fingerprint in Android Settings app.
  2. User downloads the app.
  3. User registers/signs in with fingerprint check
  4. App generate a local token and store in secure (secure element) keystore on device
  5. this local app token is sent to server
  6. On certain actions where we need additional security, trigger finger print dialog.
  7. If fingerprint is OK, app ahs access to secure key store to get token. App can use this token to do REST call from step 4.
LaurentY
  • 7,495
  • 3
  • 37
  • 55