在哪里存储我的密钥以加密移动设备



我不明白黑客在移动应用中进入移动应用程序时所能看到的,看不到什么。他对.apk进行了反对,然后看到一些.class files。例如,如果我在文件中加密键/值对,我仍然需要从代码调用此键,如果黑客可以看到代码,无论键是否加密,他都会知道我是哪个键打电话?

我的目标是在我的应用程序中保留一些加密字符串,例如我的应用程序的Twitter帐户ID。一些主题讨论了"要阅读的私钥,用公共密钥加密的内容",但是如果我使用它们,我仍然需要将它们存储在我的应用中...

不要完全理解您的要求,但是始终假定客户端不受信任。您必须确保

  • 所有解密都应在您的服务器(您信任)中进行。
  • 客户端绝不能够访问解密的数据(除非您想要)。因此
  • 客户端应仅具有加密数据(如果必须存储数据)。
  • 客户端不应访问用于加密数据的专用密钥。

如果在您的情况下,您的客户必须能够直接访问关键数据,那么您唯一的度假胜地是使用混淆技术(基本上隐藏您的数据/代码,以使其难以找到/理解)。当然,所有混淆技术最终都可以被坚定的黑客击败。您必须确定数据的价值,黑客将尝试访问您的数据的概率。举一个极端的例子:使用混淆存储您的Twitter帐户和密码非常糟糕。存储Twitter-url-可能还不错。

您可以在启动应用程序时从服务器中获取键。而且也不要在SharedPrefrence或SQLite中的应用程序购买细节中管理。因为在扎根设备中,用户可以从根浏览器或sqlite编辑器应用程序中看到该数据文件,以便用户能够更改值。

一个非常有决心的人可以破解它,但是要破解加密字符串并将阻止大多数黑客。特别是如果您用诸如proguard之类的东西使您的代码相处。

回答类似问题,以获取有关如何加密

的详细信息

最新更新