在Android中使用KeyStore有什么可以理解的例子吗?
我无法理解如何保护ROOTED设备中Android应用程序中的密码/令牌/ anything_else不被有物理访问设备的黑客使用。
我知道我可以用一些ALIAS生成KeyPair,并使用它的私钥作为数据库密码,但我感兴趣的是:任何黑客都可以从我反编译的apk中读取这个ALIAS(因为我不能混淆别名字符串)并构建另一个使用相同ALIAS从Android KeyStore获取privateKey的应用程序?
任何解决方案?
答案 0 :(得分:2)
我无法理解如何保护ROOTED设备中Android应用程序中的密码/令牌/ anything_else不被有物理访问设备的黑客使用。
你不能。 Client Authenticity is Not the Server's Problem
我们假设您在应用中存储了加密值,而不是直接存储值。解密这个值的关键在哪里?该应用程序必须需要解密此值。现在黑客需要做的就是下载你的.apk,将其插入Lobotomy,他们会很快找出正在发生的事情。
如果您想将敏感信息隐藏在设备运行软件的人身上,那么您最好不要将敏感信息放在设备上。
答案 1 :(得分:0)
您是否需要将密钥存储在应用程序中?
如果首先安装时要求用户设置密码,使用该密钥加密SQLCipher数据库(也可能将其哈希),然后每次用户启动应用程序时,都会询问密码。