4

지문 api를 사용하여 사용자 이름과 비밀번호를 사용하여 사용자를 인증해야하는 Android 앱을 제작 중입니다.지문과 함께 안드로이드 키 스토어를 통해 사용자 자격 증명 (사용자 이름 및 비밀번호) 검색

가장 간단한 용어로 무엇을해야 하는지를 이해합니다. 로그인에

  1. 는 사용자 후 성공적으로 백엔드 인증 된 사용자 이름과 암호 들어간, 내가 생성하고 androidkeystore에 이러한 자격 증명을 가진 특정 키 스토어를 저장합니다. 사용자가 성공적으로 지문을 통해 인증하면

    다음 로그인에
  2. , 안드로이드 스토어에서 자격 증명 (사용자 이름 및 암호)을 검색하고 해당 자격 증명 와 백엔드에서 사용자를 인증합니다.

은 내가 따랐다 : 이 http://www.techotopia.com/index.php/An_Android_Fingerprint_Authentication_Tutorial

이 장치와 사용자를 인증하기 위해 지문 API를 사용하는 방법의 좋은 예를 제공합니다. 하지만 백엔드를 사용하여 사용자를 인증 할 수 있도록 자격 증명을 다시 얻으려면 어떻게해야합니까?

내가하고 싶은 일에 대한 단계, 제안 또는 자세한 예제가 있습니까?

감사합니다.

+0

아마도이 기사는 도움이 될 수 있습니다. https://www.sitepoint.com/securing-your-android-apps-with-the-fingerprint-api/ –

답변

1

제안 된 솔루션에서 백엔드는 사용자가 로그인 할 때마다 여전히 사용자 이름 + 비밀번호를받습니다. 즉, 앱이 사용자의 사용자 이름과 비밀번호를 저장해야합니다. 그것을 피하는 것이 현명 할 수 있습니다. 예를 들어 비밀번호가 나중에 변경된 경우 앱에 로그인 할 수 없으며 특히주의하지 않으면 adb backup을 사용하여 USB 디버깅을 통해 사용자 이름과 비밀번호가 백업 및/또는 추출 될 수 있습니다.

다른 해결책은 클라이언트가 개인 키를 사용할 때마다 사용자 인증 (지문 인증)이 필요한 Android Keystore 키 쌍을 생성하는 것입니다. 그런 다음 백엔드는 사용자의 계정으로 인증하기 위해 공개 키를 등록하는 작업을 제공합니다. 등록 조작에는 공용 키, 사용자 이름 및 암호가 필요합니다. 사용자 이름 + 암호가 확인되면 공개 키가 계정에 등록됩니다. 그런 다음 로그인 작업을 확장하여 해당 개인 키를 사용하여 백엔드가 생성 한 챌린지/넌스를 클라이언트가 서명하도록함으로써 클라이언트를 인증하도록 지원합니다. 서명이 검증되면, 백엔드는 이것이 여전히 원래 username + password를 사용하여 공개 키를 등록한 클라이언트와 동일한 것으로 간주합니다.

관련 문제