具有虹膜和面部识别功能的生物识别技术

Biometrics with iris and face recognition

在博客 Better Biometrics in Android P 中,他们说:"To keep users safe, most apps and devices have an authentication mechanism, or a way to prove that you're you. These mechanisms fall into three categories: knowledge factors, possession factors, and biometric factors. Knowledge factors ask for something you know (like a PIN or a password), possession factors ask for something you have (like a token generator or security key), and biometric factors ask for something you are (like your fingerprint, iris, or face)"。

但是当我读入BiometricPrompt API,时,我看不到虹膜或面部的文档,验证只支持指纹:"This call warms up the fingerprint hardware, displays a system-provided dialog, and starts scanning for a fingerprint. It terminates when BiometricPrompt.AuthenticationCallback.onAuthenticationError(int, CharSequence) is called..." 我如何使用生物识别技术创建带有虹膜和面部的身份验证登录或任何其他解决方案?

Android 9 仅包括对生物认证指纹方面的支持。虹膜和面部识别将得到支持。请注意,这会导致在为 Android P.

编写应用程序时弃用以前的 FingerprintManager API

Android 9 only includes fingerprint integration for BiometricPrompt. However, integrated support for other biometric modalities are forthcoming.

Source

Android 6

  • 引入FingerprintManagerclass以提供对指纹传感器的支持。
  • 开发者需要建立自己的指纹UI。

Android 9

  • 弃用 FingerprintManager class。
  • 引入新的生物识别技术 API 以访问 OEM 设备上可用的各种生物识别硬件。
  • 引入标准化指纹 UI 政策。 OEM 现在可以自定义 UI。应用程序开发人员失去了创建自定义 UI 的能力。
  • 它包括 指纹 集成,仅适用于 BiometricPrompt class。

Android 10

  • 生物识别 API 现在是 AndroidX Biometric Library 的一部分,这使得 Android 10 中的所有生物识别行为都可用于 运行 [=125] 的所有设备=] 6.0(API 23 级)或更高。
  • 包括 指纹和人脸认证 BiometricPrompt 集成。
  • 引入了BiometricManagerclass,开发者可以使用它来查询可用性生物认证
    • 如果设备支持多种生物识别,用户可以在 OS 设置中指定 default/prefered 方法。
    • BiometricManager 不会为您提供有关可用方法的信息,它只是 returns 是否至少有一种可用方法。
    • BiometricManager 不允许您知道正在使用哪种生物识别方法。
    • 如果设备支持多种方法,
    • BiometricManager 不允许您select 首选方法。
    • 如果没有生物识别传感器,API 现在允许开发人员指定他们是否要使用 device credentials(PIN、图案或密码)。
  • 该框架现在为 OEM 提供友好、标准化的 API,以在其设备上集成对所有类型生物识别传感器的支持。
  • 该框架现在在 Android10 中内置了对面部身份验证的支持,因此供应商无需创建自定义实现。
  • 生物识别库architecture

关于虹膜扫描仪,一些原始设备制造商(例如三星)已经将其虹膜传感器的实施与生物识别相集成 API。但是,Android 还没有为 OEM 提供与虹膜传感器交互的标准 API(据我所知),这会阻止基于 AOSP 的 ROM 访问虹膜传感器。

在 AOSP 问题跟踪器中,有一个针对“Adding Biometrics Iris HAL interface”的开放票证,旨在创建一个 HAL 接口来标准化 Android 框架与虹膜扫描仪。遗憾的是,工单上次取得进展是在2018年3月。

更新:Android11

  • Android 11介绍BiometricManager.Authenticators界面。该接口定义了生物识别硬件元素的可能强度:
    • BIOMETRIC_STRONG:设备上满足或超过 Android CDD 定义的强要求的任何生物特征(例如指纹、虹膜或面部)。
    • BIOMETRIC_WEAK:设备上任何满足或超过 Android CDD 定义的弱要求的生物特征(例如指纹、虹膜或面部)。
    • DEVICE_CREDENTIAL:用于保护设备安全的非生物识别凭据(即 PIN、图案或密码)。
  • ACTION_BIOMETRIC_ENROLL 意图操作调用系统设置并请求用户注册生物识别硬件元素。您可以额外提供强度级别。
  • AuthenticationResult API 有一个新方法 getAuthenticationType() 允许您检查用户是否使用生物识别或设备凭据进行身份验证。

参考资料