[플래닛월렛 iOS] 생체인증

GBT
Grabity
Published in
5 min readNov 18, 2019

--

안녕하세요. Planet wallet 입니다.

이번 포스팅은 플래닛 월렛에서 사용하고 있는 인증 방식 중 하나인 생체 인식을 소개하려 합니다.

최근 모바일 어플리케이션에서는 매 번 비밀번호를 입력하지 않고도 간편하게

생체 인식을 통해 로그인을 함으로써 UX적인 측면에서 큰 발전이 이뤄졌습니다.

iOS에서 주로 사용하는 생체 인식은 iPhone 5s부터 8까지 사용한 TouchID(지문 인식)과

iPhone X부터 현재까지 사용하고 있는 FaceID(안면 인식)이 있습니다.

그러면 이제 iOS Application에서 TouchID와 FaceID를 사용하는 방법을 알아보도록 하겠습니다.

Overview

Application 개발자는 iOS의 생체 인식을 사용하기 위해서는 LocalAuthentication 프레임워크를

통해서만 사용하셔야합니다. 즉 TouchID / FaceID와 관련된 기능들은 해당 프레임워크에 올려져 있습니다.

iOS에서는 보안을 강화하기 위해, 위의 사진과 같이

Application단에서 authentication data를 접근하지 못하게 막고 있습니다.

예를들어, OS에 등록된 지문 또는 face의 이미지나 인증 데이터의 id값 또한 접근이 불가능합니다.

Application에서 접근이 가능한 생체 인식 데이터는 해당 인증이 올바른 값인지 아닌지,

즉 Boolean값과 Error값만을 가져 올 수 있습니다.

그러면 앱 개발자가 할 수 있는것은 무엇이 있을까요?

Application에서는 LocalAuthentication 프레임워크를 통해서

왜 생체 인식을 사용하는지와 특정 정책만을 Secure Enclave에 전달 할 수 있습니다.

‘왜 생체 인식을 사용하는지’, ‘특정 정책’에 대한 자세한 내용은 LocalAuthentication 프레임워크를

공부하면서 알아보도록 하겠습니다.

1. FaceID usage description

info.plist파일에 NSFaceIDUsageDescription 키를 추가 한 후 사용자에게 해당 권한이 왜 필요한지 이유를 적습니다.

2. Context 객체 만들기

위에서 설명하였듯이 Application에서 생체 인식을 사용하려면 LocalAuthentication 프레임워크를 통해서만

가능하다고 하였습니다. LocalAuthentication 프레임워크는 LAContext 클래스 하나만을 갖고 있는 작은 프레임워크입니다.

즉, Application에서 생체 인식에 대한 기능은 LAContext객체를 통해서 수행할 수 있습니다.

3. Context로 정책 실행하기

생체 인식을 시도하기 전에 꼭 확인해야 할 것이 있습니다.

canEvaluatePolicy(_:error:) 함수를 사용하여 해당 정책을 현재 디바이스에서 가능한지 먼저 확인을 해야 합니다.

여기서 말하는 정책이란 인증을 어떠한 방식으로 진행할 지 정하는 것입니다.

LAPolicy라는 Enum 타입으로 되어 있으며 아래와 같은 값들이 있습니다.

그러면 이제 원하는 정책을 사용할 수 있는지 테스트 후

evaluatePolicy(_:localizedReason:reply:) 함수를 사용해서 정책을 시행해보도록 하겠습니다.

위에서도 언급하였듯이, Application에서 접근할 수 있는 Biometric data는 성공하였는지 못하였는지 boolean값 뿐입니다.

따라서 앱에서는 인증을 성공하였을 경우 UI를 어떻게 업데이트할지와

실패하였을 경우 Error에 따라 interaction을

사용자에게 보여주기만 하면 됩니다.

이상으로 Planet Wallet iOS 에 쓰인 생체인증 기술에 대해서 알아보았습니다.

오늘도 저희 블로그를 찾아주셔서 감사합니다.

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

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

#GBT_Protocol #GBT #planetwallet #makeyourownplanet #iOS #iOSsecurity #biometric #authentication #biometricauthentication #faceID #fingerprint #지비티프로토콜 #지비티 #플래닛월렛 #아이폰인증 #아이폰 #보안 #생체인증 #생체인식 #블록체인 #블록체인기술 #블록체인공부 #비트코인지갑 #이더리움지갑

--

--