0

有谁知道在应用程序中存储敏感信息的最安全方法是什么?因为如果想要该信息的人拥有一部已植根的手机,那么使用内部存储和共享首选项很容易受到攻击。

案例是我有某种激活码需要存储在手机内部的某个位置(而不是服务器上),以便与服务器端进行进一步的通信和身份验证,该代码需要保护并且其他应用程序和用户不可用,即使在有根电话。此外,用户无需额外验证(他在进入应用程序时输入 PIN 码并将该码发送到服务器端进行身份验证)。

最重要的是,是否有一种安全的方式来存储某些东西并确保它保持隐藏状态,即使在有根手机上也是如此?

4

1 回答 1

0

不幸的是,评论者是正确的。无法 100% 保证激活码不会被黑客入侵。微软在这方面花费了数百万美元,而且仍然存在盗版 Windows,因为归根结底,您无法控制客户端上的代码。如果您赋予客户端解密或以其他方式访问此存储的身份验证代码的能力(无需访问服务器),那么有人可以对应用程序进行逆向工程以撤消您的保护。即使您从服务器检索解密密钥也是如此。

执行此操作的最佳方法取决于您的用例,但这里有一些想法:

  1. 让客户端向服务器提交“激活码”,如果您认为它被盗,您可以将其列入黑名单。这就是 Windows 的工作方式。如果您想使用激活码而不打扰用户,这是您唯一的选择。

  2. 让用户注册一个帐户,并让应用程序在每次运行时重新提交用户的凭据。这样,如果您怀疑盗版,您就有一个用户帐户可以停用。

  3. 让服务器提供解密密钥。这并不能保证激活码保持安全,但它确实提高了潜在逆向工程师的门槛。

  4. 完全放弃整个 DRM 想法,将注意力集中在制作好的产品上。音乐公司的研究表明,放弃 DRM 对购买您产品的人数没有影响。

于 2013-06-15T19:10:22.697 回答