BiometricPromptCompat: отключить радужную оболочку / распознавание лиц (разрешить только отпечатки пальцев)

#android #android-biometric-prompt #android-biometric

#Android #android-биометрическая подсказка #android-биометрический

Вопрос:

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

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

Комментарии:

1. В настоящее время я не знаю, как это сделать при использовании BiometricPrompt . Пока вы можете использовать старый FingerprintManager класс (да, он устарел, но я до сих пор не слышал о каких-либо планах по его удалению). Одним из недостатков использования FingerprintManager является то, что у вас может быть меньше контроля над отображением приглашения на устройствах с сенсорами отпечатков пальцев на экране.

2. здравствуйте, вы нашли какое-либо решение?

3. Привет, вы нашли какое-либо решение? Я также хочу удалить идентификатор лица и разрешить только touch id.

Ответ №1:

Согласно последним документам Android Biometric API, невозможно разрешить только сканирование отпечатков пальцев.

Ответ №2:

Наконец-то найдено решение этой проблемы -> setAllowedAuthenticators (BiometricManager.Аутентификаторы.BIOMETRIC_STRONG) сделал свое дело

 BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder()
            .setTitle("Confirm to authenticate")
            .setDescription("Touch the fingerprint sensor")
            .setNegativeButtonText("Cancel")
            .setAllowedAuthenticators(BiometricManager.Authenticators.BIOMETRIC_STRONG)
            .build();

    biometricPrompt.authenticate(promptInfo);
  

Ответ №3:

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

https://source.android.com/security/biometric/measure

Комментарии:

1. Я уже передал криптообъект (AES / CBC / PCKS7) в метод аутентификации. Я не уверен, как это поможет полностью отключить сканирование радужной оболочки / лица? Я знаю, что API 30 позволяет запрашивать BIOMETRIC_STRONG через setAllowedAuthenticators (int), но я хочу разрешить аутентификацию по отпечатку пальца независимо от того, что OEM сообщает как «сильное» (по соображениям соответствия в отрасли, в которой работает приложение)

2. CDD требует, чтобы все «надежные» биометрические данные соответствовали точно таким же рекомендациям по соблюдению. Это верно для всех OEM-производителей и всех устройств.

Ответ №4:

Мое беспокойство неверно.

Вот официальное слово:

Хотя для разблокировки устройства будут разрешены как сильные, так и слабые биометрические данные, слабые биометрические данные:

  • Требуется, чтобы пользователь повторно ввел свой основной PIN-код, шаблон, пароль или надежные биометрические данные, чтобы разблокировать устройство после 4-часового периода бездействия, например, когда оставлен за столом или зарядным устройством. Это в дополнение к 72-часовому таймауту, который применяется как для сильной, так и для слабой биометрии.

  • Не поддерживаются готовящимся к выпуску BiometricPrompt API, общим API для разработчиков приложений для безопасной аутентификации пользователей на устройстве независимо от способа.

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

  • Необходимо показывать пользователям предупреждение, в котором излагаются риски использования биометрических данных, прежде чем его можно будет включить.

Эти меры предназначены для обеспечения более слабой биометрии при одновременном снижении риска несанкционированного доступа.

https://android-developers.googleblog.com/2018/06/better-biometrics-in-android-p.html