安卓指纹认证实际问题

201 阅读2分钟

在安卓系统中,存在两类指纹认证的API:

  1. FingerprintManager API(指纹管理器API):这是在Android 6.0(Marshmallow)及其之前的版本中引入的。它通过FingerprintManager类提供指纹认证功能。这个API比较简单且易于实现,但功能相对有限。
  2. BiometricPrompt API(生物识别提示API):这是在Android 9.0(Pie)中引入的新API,通过BiometricPrompt类提供指纹认证功能。相比之前的API,BiometricPrompt提供了更强大和更安全的生物识别功能,例如指纹、面容等。它还提供了更好的用户体验和界面定制能力。

需要注意的是,尽管BiometricPrompt API更加先进和安全,但为了兼容旧版本的Android系统,开发者可能还需要使用FingerprintManager API。

指纹免密码登录的一些问题

密码登录成功以后,注册指位或指位集(+设备id+账号)到后端,这样每次验证就指纹即可避免输入很多字符。

但是用安卓系统api开发应用时,指纹认证成功回调数据是拿不到指纹特征数据(指位),指位集发生变更,也没有办法感知到。

原生可以将"账号@设备id"传给后端,这样最近一次登录设备变更则需要重新密码登录,指位变更则不能保证。

如果要求绑定特定指位登录需要用到指纹认证的三方sdk:ifaa联盟,一砂sdk,阿里云sdk等。腾讯的指纹认证sorter。等

此外,设备如果没有录入指纹,应用需要跳转到特定手机指纹录入管理页面,需要做适配。可以通过adb shell dumpsys activity activities | grep mResumedActivity命令来找到不同手机厂商的指纹管理页面的包名类名。

参考文档

GitHub - Likeyong/FingerManagerCompat: android 端全新指纹识别框架,适配android M / P, 可以识别到指纹数据是否发生变化. 这不是指纹api Demo

如何实现生物识别(IFAA)AndroidSDK接入_应用身份服务 (IDaaS)(IDaaS)-阿里云帮助中心 (aliyun.com)

Microsoft Word - IIFAA可信生物认证服务.doc (aliyuncs.com)

Android 手机各大厂商的指纹设置界面-CSDN博客

Tencent/soter: A secure and quick biometric authentication standard and platform in Android held by Tencent. (github.com)