【发布时间】:2016-08-21 15:59:11
【问题描述】:
有没有可以理解的在 Android 中使用 KeyStore 的例子?
我真的不明白如何保护我在 ROOTED 设备中的 Android 应用程序中的密码/令牌/anything_else 不被可以物理访问设备的黑客使用。
我知道我可以使用一些 ALIAS 生成 KeyPair,并使用它的私钥作为数据库密码,但我感兴趣的是:任何黑客都可以从我的反编译 apk 中读取这个 ALIAS(因为我无法混淆别名字符串) 并构建另一个使用相同 ALIAS 从 android KeyStore 获取 privateKey 的应用程序?
有什么解决办法吗?
【问题讨论】:
-
目前,我找到的唯一解决方案是将我的数据存储在由 SqlCipher 加密的数据库中。使用ormLite访问,密码存储在NDK方法中作为常量。在我的 DbHelper 扩展 OrmLiteOpenHelper 中,我正在使用密码初始化数据库,该密码从 NDK 返回方法。在 NDK 方法中,这只是返回“secretpassword”。 Bulletproof Android book 说从 NDK 中获取这个常量比较困难,因为你必须反汇编它,而不仅仅是像 Java 代码那样反编译。对此有何想法?
标签: android security passwords keystore