Проблема

  • Биометрическая аутентификация по радужной оболочке глаза и распознаванию лица не запрашивается с помощью biometricPrompt.authenticate(**crypto**, promptInfo) звонок.

Ссылка на источник:

Устройство, использованное для тестирования:

  • Samsung S8 (ОС Android 9)

Я следую этапам аутентификации:

  • val biometricPrompt = BiometricPrompt (...)
  • val promptInfo = BiometricPrompt.PromptInfo.Builder () ...
  • biometricPrompt. Authenticate (promptInfo) (PFA: вариант A, B )

И есть еще один метод аутентификации, который использует объект шифра, чтобы убедиться, что

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

Если я подпишусь

  • biometricPrompt. Authenticate (promptInfo), тогда приложение просто отображает параметр аутентификации в зависимости от предпочтений пользователя, которые он должен выбрать из «Настройки устройства» -> «Биометрические предпочтения». И выполнить аутентификацию самостоятельно. (PFA: вариант A, B )

  • Но при использовании biometricPrompt.**authenticate**(crypto, promptInfo) отображается ТОЛЬКО вариант аутентификации по отпечатку пальца. Для других параметров предпочтения ирисовой диафрагмы и распознавания лиц он ничего не отображает при вызове метода authenticate(..). (PFA: вариант C )

Вопрос

  • Почему другая биометрическая аутентификация не запрашивает аутентификацию крипто-объекта.

enter image description here

9
CoDe 28 Ноя 2019 в 16:46
1
В документе определения совместимости Android говорится, что «Чтобы разрешить доступ для хранения ключей сторонних приложений, реализации устройств: [C-0-2] ДОЛЖНЫ соответствовать требованиям для Strong , как определено в этом документе ". Затем он определяет, что означает сильный биометрический датчик. Вполне возможно, что сканеры радужной оболочки глаза и лица в Galaxy S8 не соответствуют этим требованиям.
 – 
Michael
29 Ноя 2019 в 12:11
Спасибо @Michael, чтобы указать на это. Я проверял образец, указанный здесь, и он работает с iris по крайней мере. Для распознавания лиц бросает BIOMETRIC_ERROR_NONE_ENROLLED. Любые предложения по поводу этой путаницы!
 – 
CoDe
29 Ноя 2019 в 12:35
Пара вопросов, если вы можете помочь, Android пообещал выпустить обновление Android-X для всех своих потребностей в аутентификации пользователей на устройстве. Я уже вижу, что Samsung S-8 с обновлением с OS-9 уже имеет эту возможность. 1) Означает ли это, что у Samsung была собственная разработка на уровне SDK / фреймворка? 2) Как проверить, поддерживает ли OEM-устройство C-0-2 или C-0-3? Есть какие-нибудь предложения по этому поводу?
 – 
CoDe
29 Ноя 2019 в 14:15
Я считаю, что в биометрической библиотеке androidX есть список устройств, для которых он будет использовать отпечатки пальцев, если другие биометрические датчики устройства будут признаны слабыми. Я не знаю, в какой версии библиотеки была добавлена ​​эта проверка. См. android-review.googlesource.com/c/platform/ frameworks / support / + /…
 – 
Michael
29 Ноя 2019 в 14:43
1
"Устройства samsung-10 и plus удалили радужную оболочку глаза как вариант аутентификации" Я считаю, что это упоминалось здесь (см. комментарий №7).
 – 
Michael
2 Дек 2019 в 12:31

1 ответ

Некоторые устройства имеют только один форм-фактор, некоторые - несколько. Какой форм-фактор будет использовать ваше приложение, на самом деле не зависит от вас; это зависит от реализации OEM. Как объясняется в этом сообщении в блоге, независимо от того, является ли форм-фактор Сильный или Слабый не зависит от вашего кода - решает производитель. Однако вы можете запросить, чтобы устройство использовало строгую аутентификацию для вашего приложения, указав CryptoObject при вызове authenticate().

Что вы испытываете, так это то, что OEM-производители ваших устройств решили сделать отпечаток пальца по умолчанию для сильной биометрии. Поэтому, когда вы передаете CryptoObject на authenticate(), эти устройства показывают пользователю пользовательский интерфейс для отпечатка пальца.

2
Isai Damier 18 Дек 2019 в 21:18
Может ли распознавание лиц быть надежным биометрическим параметром на определенных устройствах или всегда считается слабым?
 – 
Florian Walther
5 Янв 2020 в 12:06
Пока это рассматривалось как недельный вариант, но в дальнейшем его можно улучшить.
 – 
CoDe
5 Янв 2020 в 13:48
К вашему сведению (хотя и довольно поздно) Разблокировка по лицу считается сильной на некоторых устройствах. Например, Pixel 4 силен, потому что у него есть радарный датчик, и он не является чисто оптическим совпадением.
 – 
Gapp
19 Фев 2021 в 13:33