繁体   English   中英

Android Key Store API 23,使用setUserAuthenticationRequired而不使用指纹扫描程序

[英]Android Key Store API 23, use setUserAuthenticationRequired without Fingerprint Scanner

我尝试使用Google示例( BasicAndroidKeyStore )生成密钥对。 我所做的唯一修改设置setUserAuthenticationRequired(true)KeyGenParameterSpec.Builder

我认为它可以在带有嵌入式指纹扫描仪的设备上正常工作,但是在OnePlus One上运行(在Android 6.0下工作),我得到以下异常:

At least one fingerprint must be enrolled to create keys requiring user authentication for every use

手机确实设置了锁定屏幕以使用该模式,但显然它需要指纹进行身份验证。 知道如何在没有实际指纹识别器的情况下使用API​​ 23密钥库吗?

我也遇到过与moto设备相同的问题。 至于现在我已经完成了这段代码。 在使用指纹认证之前进行检查。

public boolean isFingerprintAuthAvailable() {
    //FingerprintManager mFingerprintManager;
    return mFingerprintManager.isHardwareDetected()
            && mFingerprintManager.hasEnrolledFingerprints();
}

有关更多信息,请查看我已实施的示例 希望能帮到你......

在现代Android设备上,指纹扫描仪直接与硬件安全模块链接。

因此,现在有一种有意义的方法可以提供受保护的隔离加密 - 即使在有根的手机上也是如此。

看看这些指南:

https://developer.android.com/training/articles/keystore#HardwareSecurityModule

攻击者必须诱骗用户刷指纹才能解锁东西......而且每次刷卡只有一次解密或签名。

这是“相当不错”的安全性,但由于API限制和限制(特别是缺少ECDH!),大多数声称使用Android的钥匙串系统的应用程序都不使用StrongBox。 即使那些做不到的人也不会在用户不可用时发出警告。

因此,越狱或零日可能会危及大多数应用密钥。

请考虑检测注册,并警告您的用户他们的数据在没有注册硬件生物测量设备的设备上更容易受到攻击。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM