如何在Android中存储安全字符串?

时间:2016-04-27 11:25:14

标签: android security passwords keystore

在Android中使用KeyStore有什么可以理解的例子吗?

我无法理解如何保护ROOTED设备中Android应用程序中的密码/令牌/ anything_else不被有物理访问设备的黑客使用。

我知道我可以用一些ALIAS生成KeyPair,并使用它的私钥作为数据库密码,但我感兴趣的是:任何黑客都可以从我反编译的apk中读取这个ALIAS(因为我不能混淆别名字符串)并构建另一个使用相同ALIAS从Android KeyStore获取privateKey的应用程序?

任何解决方案?

2 个答案:

答案 0 :(得分:2)

  

我无法理解如何保护ROOTED设备中Android应用程序中的密码/令牌/ anything_else不被有物理访问设备的黑客使用。

你不能。 Client Authenticity is Not the Server's Problem

我们假设您在应用中存储了加密值,而不是直接存储值。解密这个值的关键在哪里?该应用程序必须需要解密此值。现在黑客需要做的就是下载你的.apk,将其插入Lobotomy,他们会很快找出正在发生的事情。

如果您想将敏感信息隐藏在设备运行软件的人身上,那么您最好不要将敏感信息放在设备上。

答案 1 :(得分:0)

您是否需要将密钥存储在应用程序中?

如果首先安装时要求用户设置密码,使用该密钥加密SQLCipher数据库(也可能将其哈希),然后每次用户启动应用程序时,都会询问密码。

相关问题