【问题标题】:Android: What's next after FingerprintManager onAuthenticationSucceeded?Android:FingerprintManager onAuthenticationSucceeded 之后的下一步是什么?
【发布时间】:2020-11-10 06:30:27
【问题描述】:

我正在向我的应用程序添加指纹身份验证,在网上找到了很多好的建议,并成功地在我的应用程序中实现了其中一个示例。 https://www.techotopia.com/index.php/An_Android_Fingerprint_Authentication_Tutorial

但是,所有这些示例的 MainActivity 都以实例化一个帮助类结束,其中定义了相应的回调(onAuthenticationError、onAuthenticationHelp、onAuthenticationSucceeded)函数。

// Main activity
@Override
protected void onCreate(Bundle savedInstanceState) {
…
FingerprintHandler helper = new FingerprintHandler(this);
            helper.startAuth(fingerprintManager, cryptoObject);
}

…

// Helper class
public class FingerprintHandler extends FingerprintManager.AuthenticationCallback {
…
   @Override
    public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {
        Toast.makeText(appContext, "Authentication succeeded.", Toast.LENGTH_LONG).show();
    }
}

我的应用程序现在也是如此。 但是,我在这里或我一直访问的博客文章中没有找到重要的一点。用户成功通过身份验证后返回我的 MainActivity 代码的推荐方法是什么? 处理诸如关闭指纹 UI 和使用相关活动启动实际应用程序 UI 之类的事情。

我可以看到各种方法来做到这一点,例如

  1. onAuthenticationSucceeded 方法可以成为一个启动器 使用我之前在 mainActivity 中的代码的新活动
  2. 我以某种方式重定向回调方法以在我的内部处理 mainActivity 通过 implement 语句。

但在我重构代码并尝试之前,我想我会在这里寻求一些建议。

【问题讨论】:

    标签: android fingerprint


    【解决方案1】:

    好吧,我找到了一种方法,只需创建一个全局 MainActivity 变量并从 onAuthenticationSucceeded 调用 MainActivity.InitApplication。 不干净,但它有效。

    但是,与此同时,我还研究了 API 级别 28 BiometricPrompt,它要简单得多。 大胆尝试并升级到 Androidx 和 BiometricPrompt,最终获得了一种更简洁的方法。

    【讨论】:

      【解决方案2】:

      为了增加安全性,您应该利用生物识别回调结果中返回的CryptoObject 来加密/解密您的应用程序的数据。生物识别本身可以在受感染的设备上被绕过(使用 root + FRIDA 时很容易做到)。

      【讨论】:

      • 感谢您对此进行调查,我需要阅读有关此主题的更多内容,但鉴于我的所有数据都在加密数据库中,我不确定添加 CryptoObject 有多大价值?
      • 这实际上取决于您想要保护多少免受受损设备的影响。如果攻击者掌握的只是数据库文件本身,您的加密数据库将起作用。但是,如果是这种情况,攻击者很可能在设备上拥有 root 权限。因此可以使用 FRIDA 绕过您的生物识别并访问正在运行的应用程序以查看信息。只需少量技术技能即可轻松完成 - 只需调用成功回调方法即可。但是,如果您使用加密对象,几乎不可能绕过生物识别,因为它无法伪造加密对象。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 2017-06-04
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多