[Planet Wallet iOS] Biometric Authentication

GBT
Grabity
Published in
4 min readNov 19, 2019

--

Good day, everyone.

Today, I will take a look at biometric authentication which is one of the authentication methods in Planet wallet.

Recently, there is big progress in the terms of UX by login with biometric authentication which makes mobile application usability more user-friendly.

Generally, iOS use TouchID from the version 5s until version 8, and use FaceID from version 8.

Then, let’s find out how to set TouchID and FaceID on iOS Applications.

Overview

The application developers must conduct the development through LocalAuthentication framework to use Biometric authentication.

In other words, you can check the functions related to TouchID/ FaceID in each framework.

To enhance the security of iOS, it blocks access to authentication data from the Application side, as you can see in the picture above.

For example, it is not possible to access the data like registered fingerprints, the images of faces, or the ID of data.

Biometric data which is available to reach from the application could only check whether the result of authentication is correct or not

So, it can only bring the result of Boolean or Error.

Then what can the application developers do?

They can delivery 2 different information via LocalAuthentication : the reason why they use biometric and the specific policy to Secure Enclave.

We will study the details of “the reason for Biometric authentication usage” and “Specific policies” while we study LocalAuthentication framework.

1. FaceID usage description

After we add NSFaceIDUsageDescription key on info.plist file, we write the reason why users need the specific authority.

2. Make the object of Context

As I mentioned before, it is only available to use biometric authentication on the application via LocalAuthentication framework.

LocalAuthentication framework is a small framework that only holds LAContext.

Therefore, the function related to biometric authentication in the application only conducts via the object of LAContext.

3. Perform the policies via Context

Before we try biometric authentication, there is one thing we have to check.

That is to check whether the specific policy is conductible on the current device via canEvaluatePolicy(_:error:).

The policy here refers to the way how we perform the authentication.

It is the Enum type which is called LAPolicy and there are the results below.

Then we are going to perform the policies via evaluatePolicy(_:localizedReason:reply:) , after the test of the availability of the policies.

Like we study above, the only biometric data which is able to approach from the application is the result of boolean which shows the success of authentication.

Therefore, when the authentication succeeds in the app, the user can only see how to update UI.

On the other hand, when the authentication is failed, the user will be instructed interaction based on the error.​

So, we check the biometric authentication technology which is used on Planet Wallet iOS.

Thank you so much for visiting our website.

If you are interested in Planet wallet, please check the link below.

Homepage : https://planetwallet.io/

​#GBT_Protocol #GBT #planetwallet #makeyourownplanet #iOS #iOSsecurity #biometric #authentication #biometricauthentication #faceID #TouchID #cryptowallet

플래닛월렛이 궁금하신 분들은 아래 링크를 참고해주세요.

홈페이지 : https://planetwallet.io/

--

--