Биометрия с радужкой и распознаванием лица
В блоге Better Biometrics в Android P они сказали: "Для обеспечения безопасности пользователей большинство приложений и устройств имеют механизм аутентификации или способ доказать, что вы - это вы. Эти механизмы делятся на три категории: факторы знания, факторы владения и биометрические факторы: факторы знания требуют чего-то, что вы знаете (например, PIN-код или пароль), факторы владения запрашивают что-то, что у вас есть (например, генератор токенов или ключ безопасности), а биометрические факторы - что-то, что вы есть (например, отпечаток пальца, радужная оболочка глаза) или лицо)".
Но когда я читаю в API-интерфейсе BiometricPrompt, я не вижу документ для радужной оболочки или лица, проверяю подлинность только поддержки отпечатка пальца: "Этот вызов нагревает оборудование отпечатка пальца, отображает диалоговое окно, предоставленное системой, и начинает сканирование отпечатка пальца. когда вызывается BiometricPrompt.AuthenticationCallback.onAuthenticationError(int, CharSequence)..."Как я могу использовать Biometrics для создания аутентификационного входа с использованием радужной оболочки и лица или какого-либо другого решения для этого?
1 ответ
Android 6
- Представляет
FingerprintManager
класс для поддержки датчиков отпечатков пальцев. - Разработчикам нужно было создать собственный интерфейс отпечатков пальцев.
Android 9
- Устарел
FingerprintManager
класс. - Представляет новый биометрический API для доступа к разнообразному биометрическому оборудованию, доступному на OEM-устройствах.
- Представляет стандартизированную политику пользовательского интерфейса отпечатков пальцев. OEM-производители теперь могут настраивать пользовательский интерфейс. Разработчики приложений теряют возможность создавать свои пользовательские интерфейсы.
- Он включает интеграцию отпечатков пальцев только для
BiometricPrompt
класс.
Android 10
- Биометрический API теперь является частью биометрической библиотеки AndroidX, которая делает все биометрическое поведение из Android 10 доступным для всех устройств под управлением Android 6.0 (уровень API 23) или выше.
- Включает интеграцию отпечатков пальцев и аутентификации по лицу для
BiometricPrompt
. - Представляет
BiometricManager
класс, который разработчики могут использовать для запроса доступности биометрической аутентификации- Если устройство поддерживает несколько биометрических параметров, пользователь может указать метод по умолчанию / предпочтительный метод в настройках ОС.
BiometricManager
не дает вам информации о доступных методах, он просто возвращает, есть ли хотя бы один доступный или нет.BiometricManager
не позволяет узнать, какой биометрический метод используется.BiometricManager
не позволяет выбрать предпочтительный метод, если устройство поддерживает несколько методов.- Если биометрические датчики отсутствуют, API теперь позволяет разработчикам указывать, хотят ли они использовать вместо этого учетные данные устройства (PIN-код, шаблон или пароль).
- Платформа теперь предоставляет дружественный стандартизированный API для OEM-производителей, чтобы интегрировать поддержку всех типов биометрических датчиков на их устройства.
- Платформа теперь имеет встроенную поддержку аутентификации по лицу в Android 10, поэтому поставщикам не нужно создавать настраиваемую реализацию.
- Архитектура биометрической библиотеки:
Что касается сканеров радужной оболочки глаза, несколько OEM-производителей (например, Samsung) уже интегрировали реализации своих датчиков радужной оболочки глаза с биометрическим API. Однако Android пока не предоставляет стандартного API для OEM-производителей для взаимодействия с датчиками радужной оболочки (насколько мне известно), что препятствует доступу ПЗУ на основе AOSP к датчикам радужной оболочки.
В системе отслеживания проблем AOSP есть открытый билет " Добавление биометрического интерфейса Iris HAL ", цель которого - создать интерфейс HAL для стандартизации того, как платформа Android взаимодействует со сканерами радужной оболочки глаза. К сожалению, последний прогресс в билете был в марте 2018 года.
Обновление: Android 11
- В Android 11 представлен интерфейс BiometricManager.Authenticators. Этот интерфейс определяет возможные сильные стороны биометрических аппаратных элементов:
BIOMETRIC_STRONG
: Любые биометрические данные (например, отпечаток пальца, радужная оболочка глаза или лицо) на устройстве, которые соответствуют или превосходят требования для Strong, как определено Android CDD.BIOMETRIC_WEAK
: Любые биометрические данные (например, отпечаток пальца, радужная оболочка глаза или лицо) на устройстве, которые соответствуют или превосходят требования для Weak, определенные в Android CDD.DEVICE_CREDENTIAL
: Небиометрические учетные данные, используемые для защиты устройства (например, PIN-код, графический ключ или пароль).
- В
ACTION_BIOMETRIC_ENROLL
Действие намерения вызывает системные настройки и просит пользователя зарегистрировать биометрический элемент оборудования. Вы можете указать уровень силы как дополнительный. - В API AuthenticationResult появился новый метод
getAuthenticationType()
Это позволяет вам проверить, прошел ли пользователь аутентификацию с использованием биометрических данных или учетных данных устройства.
Ссылки
В Android 9 включена только поддержка биометрической аутентификации по отпечатку пальца. Радужная оболочка и распознавание лица будут поддерживаться в дальнейшем. Обратите внимание, что это приводит к устареванию предыдущих API FingerprintManager при написании приложений для Android P.
Android 9 включает в себя только интеграцию отпечатков пальцев для BiometricPrompt. Тем не менее, интегрированная поддержка других биометрических модальностей ожидается.