Биометрия с радужкой и распознаванием лица

В блоге 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. Тем не менее, интегрированная поддержка других биометрических модальностей ожидается.

Источник

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