移除指纹未触发指纹认证的InvalidKeyException问题咨询
指纹移除后仍可通过认证?这是预期行为!
嘿,这个情况其实完全符合Android安全框架的设计逻辑,我来给你拆解清楚:
密钥有效性的判定规则:当你用
KeyGenerator生成绑定指纹的密钥时,系统的核心判定逻辑是:只要设备上还剩至少一枚已注册的指纹,这把密钥就依然有效。所以你移除其中一枚但还有另一枚存在时,密钥不会被标记无效,自然也就不会抛出InvalidKeyException。为什么添加指纹会触发异常? 这和移除的逻辑不一样——添加新指纹时,系统认为原有的指纹信任集合被改变了,为了防止攻击者偷偷添加自己的指纹来解锁,会直接标记原密钥无效,所以会抛出异常。而移除指纹的场景下,剩余的指纹仍然是用户原本信任的集合,系统默认认为密钥还是安全的。
如果要实现“移除任意指纹就失效”怎么办? 原生API不支持这个默认逻辑,但你可以自己加一层校验:
- 在生成密钥时,记录下当时设备注册的指纹总数
- 每次发起指纹认证前,获取当前的指纹注册数量
- 如果数量比之前少了,就主动废弃原密钥,重新生成新的密钥对
这样就能实现你想要的严格安全控制啦。
内容的提问来源于stack exchange,提问作者SathishKumar
相关产品推荐
相关产品推荐

