如何从bruteforce本地保护Android应用程序PIN码屏幕的安全

问题描述

我试图了解在Android应用程序中保护PIN码/锁定屏幕的细节。 (例如:https://github.com/thealeksandr/PFLockScreen-Android) 以银行应用为例,他们通常会要求输入PIN码以重新登录到您的帐户。 我的问题是,如何基于完全在本地处理还是无法做到的假设来确保此PIN码的安全?

我对此的想法是,可以很容易地将PIN码存储在Android Keystore中,但是通过使用Frida之类的工具,PIN自身的功能仍然不容易受到暴力攻击。 即使进行了反蛮力检查,弗里达(Frida)也无法钩住它并更改计数器/只是一遍又一遍地重新打开应用程序吗?

我知道对此的威胁模型非常有限,但是,它让我思考了一段时间,因为如果不使用某种形式的服务器端验证,我看不到任何保护它的方法

解决方法

将其作为单向哈希值(例如SHA256)存储在本地。登录后,您可以计算输入的哈希值,并将其与存储的哈希值进行比较。