1

我正在使用 FingerprintManagerCompat 的现有 Android 应用程序中实现指纹身份验证。我使用了一个教程作为指导,可以在这里找到。

(android.support.v4.content.ContextCompat)

由于 FingerprintManagerCompat 使用移动设备上保存的指纹,因此设备上的任何指纹都可用于登录应用程序。

是否可以查看设备上的哪个指纹用于解锁,如果可以,是否有方法获取设备上所有可用的已保存指纹?

我四处寻找有关这是否可能的信息,但我似乎找不到任何东西。我发现 Samsung Pass SDK 确实具有查看使用什么指纹的功能,但产品所有者不希望我使用三星的 Pass SDK,因为他的渗透测试团队发现它不是很安全。

4

1 回答 1

2

有没有办法获取设备上所有可用的已保存指纹?

不。

是否可以查看设备上的哪一个指纹用于解锁

不可以。
但是,在您的应用程序中使用指纹进行身份验证存在一些限制。指纹认证的结果是您可以使用加密密钥来执行某些加密操作(例如创建数字签名)。因此,当您在应用程序中添加用户时,您通常会创建一个与该用户关联的加密密钥。
然后稍后当用户想要执行一些需要他/她进行身份验证的操作时,您进行指纹身份验证,这使您可以访问密钥,该密钥可以用来做您需要做的任何事情来验证应该允许用户执行该操作。

注册新指纹时发生的情况是,任何需要指纹身份验证的现有加密密钥都将永久失效。
这给我们留下了在用户被添加到您的应用程序之前有多个注册指纹的情况。我不知道有什么方法可以用当前的 API 做任何事情。因此,您可以做的最好的事情可能是在启用指纹的 UI 流程中添加一些步骤,在该流程中要求用户验证是否只有他们在设备上注册了指纹(例如,通过选中复选框或单击按钮)。

于 2016-11-04T07:18:18.500 回答