请建议一个很好的方法来保护Android 1.6中的应用程序文件?

时间:2010-09-11 12:20:17

标签: android

我正在设计一个大型的Android应用程序,其中存在用于存储临时数据的XML,由相机捕获的图像和其他细节。哪种方法可以防止他们从手机或PC上进行外部访问。 XML可以加密。和图像一样,但有时需要经常访问它们并且加密 - 解密是非常繁重的操作。 XML加密是可管理的,但图像会导致内存问题。有没有其他方法,文件夹级别的东西?

2 个答案:

答案 0 :(得分:1)

好的,所以“敌人”是恶意用户?如果是这样的话,你可以做的很少,特别是在root手机上。从本质上讲,由于您的应用程序是来宾,因此您无法阻止主机将您踢出去。

但是,您可以采取一些措施阻止他们这样做。您可以加密XML和图像,但是当Macarse引发时,解密密钥必须在apk本身上,或者如果您联系服务器以获取解密密钥,则高级攻击者可能会欺骗您的服务器不会发送的请求无法区分真正的密钥请求。我反对询问服务器,这太麻烦了,收益甚微。

您可以做的另一个是设计专有的图像格式,然后没有标准的图像编辑工具可以编辑图像。但是,高级攻击者仍然可以对图像格式进行逆向工程,并将转换器编写为标准图像格式。

你要做的第三件事也是最现实的,就是不要将图像存储在手机上。当您拍摄时,立即将其发送到服务器,这样您就不必安全地保存图像。攻击者仍然可以在发送网络流量时拦截网络流量,也可以篡改您的apk(!),以便程序将图像副本保存到手机中。你可以做一些自我验证的apk,但这通常比它的价值更麻烦。

简而言之,您无法对抗主持人。这一切都取决于您所获得的数据的价值,以及有多少人会花费那么多时间来破坏您的安全性,以获得奖品。

我会说,只需使用本地存储的解密密钥对图像进行加密,除非您有真正的理由怀疑有人会花时间对您的代码进行反向工程。

答案 1 :(得分:0)

资产没有这么安全的事情。

  • 如果你在res/raw上存储东西,它可以被普通手机上的其他应用程序读取,但是在有根的情况下是的。
  • 如果您加密数据,解密密钥将在您的代码中可用。很容易得到它和apk apktool

也许你可以做一些但也会混淆代码(Android developer guides recommend ProGuard)。