【发布时间】:2013-06-14 12:23:52
【问题描述】:
有谁知道在应用程序中存储敏感信息的最安全方法是什么?因为如果想要该信息的人拥有一部已植根的手机,那么使用内部存储和共享首选项很容易受到攻击。
情况是我有某种激活码需要存储在手机内的某个位置(而不是服务器上),以便与服务器端进行进一步的通信和身份验证,该代码需要保护,其他应用程序和用户无法使用,即使在有根电话上。此外,用户无需额外验证(他在进入应用程序时输入 PIN 码并将该码发送到服务器端进行身份验证)。
归根结底,是否有一种安全的方式来存储某些内容并确保其保持隐藏状态,即使在已root 的手机上也是如此?
【问题讨论】:
-
我最近遇到了同样的问题,我想出的答案是,没有办法以 100% 的可靠性保证数据的完全安全。最好保护您的应用服务器端。话虽如此,有this thread 谈到了几个解决方案。 AccountManager 看起来也很有趣。
-
最好的办法是存储序列化对象并加密它...这是我找到的最佳解决方案。
-
@ChristopheCVB:这充其量只是一个减速带。任何涉及加密的事情,其中密钥和算法都是应用程序的一部分,都可以很容易地进行逆向工程。
-
@CommonsWare:是的,当然……但是可以从云端下载解密密钥。但无论如何,它仍然是一个减速带。你知道更好的解决方案吗,因为我很感兴趣 :D
-
@ChristopheCVB:如果您想保护用户的数据免受攻击者的攻击,那么加密就可以派上用场了。 OP 要求的是 DRM,并且有两种基本类型的 DRM:一种已被破解,另一种没有人试图破解。
标签: android security encryption drm