마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 앱 지문 등록 후 로그인 코드 문의입니다.

0 추천
현재 어플 개발중인데 지문을 앱에 등록한 후에 등록한 지문으로 로그인 하는 부분을 구현중입니다.

기기에 등록된 지문으로 로그인 하는건 코드가 많아 구현이 되는데  기기에 등록된 지문과 앱에 등록하는 지문이 일치하면 로그인이 되는 부분을 구현중입니다.

예를들어 은행 앱을 보면 지문을 등록해 본인인증이 되면 그 지문으로 쭉 로그인 되는 방식을 찾고있습니다.
호떡쓰 (180 포인트) 님이 2022년 9월 28일 질문

1개의 답변

0 추천
먼저 fingerprint 데이터는 민감한 데이터이므로 축출이 불가능합니다. 따라서 해당 데이터 자체를 비교할 수는 없습니다.

대신 fingerprint를 최초로 등록할 때 서버에서 인증 토큰 같은 대체 키를 발급받습니다.
fingerprint 등록은 로그인이 이루진 후에만 하도록 강제합니다. 그래야 사용자체크가 가능합니다.
fingerprint 인증토큰을 암호화해서 KeyStore등을 이용하여 안전한 곳에 사용자 ID로 구분하여  저장합니다.
이후 로그인 시에는 디바이스에서 fingerprint 확인에 성공하면 현재 사용자ID를 가지고 저장되었던 인증토큰을 꺼내어 복호화한 후 서버에 전송하는 방식으로 이루어집니다. 물론 현재 사용자ID는 저장해야 겠죠.

앱에서 KeyStore에 값을 저장할 때 특별한 플래그를 두어서 사용자가  fingerprint를 등록한 시점과 현재 fingerprint간에 변경된 사항이 있는지 체크하는 방법이 Android N부터 가능했던 것으로 기억합니다.

그리고 사용자 ID 대신에 대체할 수 있는 값이 있다면 그걸 사용하시면 됩니다. 인증토큰에 expiry(만료), renew(연장) 같은 개념을 적용하시면 더 안전하겠죠.

서버쪽 구현을 하시려면 Certificate, 암호화, 토큰처리 등에 대한 지식이 필요할 것 같네요.
spark (229,630 포인트) 님이 2022년 9월 28일 답변
spark님이 2022년 9월 28일 수정
...