Как связать отпечаток пальца пользователя с информацией для входа

Я пытаюсь понять, как реализовать биометрическую аутентификацию в приложении, в частности, используя отпечаток пальца.

Из того, что я понял до сих пор, API предоставляет только 3 различные данные: аутентификация не удалась, аутентификация прошла успешно и на устройстве не было зарегистрировано никаких отпечатков пальцев.

Я не пытаюсь получить какую-либо информацию из биометрических данных пользователя, но нигде не могу найти объяснения, как связать биометрическую информацию пользователя с его логином.

Пока что я могу думать только о том, как я мог бы выполнить эту работу, и для этого потребовалась бы первая регистрация, прежде чем я смогу использовать отпечаток пальца в будущих входах в систему, при которых происходит следующее:

  • Пользователь вводит данные для входа в форму (например, имя и пароль)
  • С помощью ответа об успешном использовании отпечатка пальца информация сохраняется локально после проверки правильности регистрационных данных на стороне сервера.

Проблема в том, что учетные данные пользователя сейчас уязвимы, так как они хранятся локально, и хотя я мог бы использовать свой собственный процесс шифрования, я боюсь, что он не будет более безопасным, потому что мне все еще нужно будет хранить алгоритм шифрования локально с приложением, чтобы шифровать / дешифровать эту информацию.

Как я могу связать биометрические данные пользователя / успешность авторизации с его учетными данными?

2 ответа

Я думаю, что вы на правильном пути. Все, что вам нужно будет сделать, при первоначальном запросе ввести учетные данные для входа, это сохранить эти учетные данные в Android KeyStore (не KeyChain). В хранилище ключей есть опции шифрования для шифрования данных, поэтому вам не нужно кодировать для этого. Затем, в будущем, если биометрические данные пользователя будут аутентифицированы, получите хранилище ключей, расшифруйте его и отправляйтесь.

Вы не должны хранить учетные данные пользователя локально.

Правильный способ входа в систему с помощью биометрии (идентификатор отпечатка пальца/лица) — это использование асимметричной пары ключей в координации с серверными API, и пользователь должен сначала войти в систему с помощью имени пользователя и пароля, а затем включить вход с помощью биометрической опции.

Для подробной реализации вы можете обратиться

https://android-developers.googleblog.com/2015/10/new-in-android-samples-authenticating.html

Другие вопросы по тегам