如何在Android中保护资产文件

时间:2017-03-30 11:49:54

标签: android security assets

我需要在应用程序中存储音频文件。应限制对这些文件的访问。如何安全地存储这些文件?

我尝试存储在 assets 文件夹中,但在解压缩apk时,可以获取这些文件。

此外,我将扩展文件用作zip存档,但是,可以分配此文件,并且用户可以检索文件。

有没有办法存储文件以便用户无法获取文件?

3 个答案:

答案 0 :(得分:1)

  

有没有办法存储文件以便用户无法获取文件?

下载它们,绝不将它们写入磁盘。

或者,下载它们并将它们写入内部存储(例如getCacheDir()),并指出根设备的用户仍可以使用它们。

欢迎您尝试加密资产,然后在使用前对其进行解密。但是,由于解密算法和密钥将在应用程序中,人们可以对应用程序进行逆向工程并学习如何解密资产。

答案 1 :(得分:1)

  

有没有办法存储文件以便用户无法获取文件?

什么共同软件回答并没有解决问题。黑客可以对其进行反向工程以获取下载资产的URL,或者通过运行时挂钩或调试从内存中获取文件数据。

事实上,目前还没有解决方案,但安全专家试图做的只是让数据成本高出很多。

如果您的应用程序的资产非常重要,那么我建议遵循以下事项。

  1. 使用对称加密技术(如AES
  2. )加密资产文件
  3. 确定黑客无法识别它的方式。 (考虑白盒密码学)
  4. 您可以使用混淆软件来混淆逆向工程师(例如proguard,dexguard等......)
  5. 每次使用它时,都要解密。
  6. 要保护挂钩和调试,请执行一些调试检查,生根检查和完整性检查作为安全措施。
  7. 我知道上面的方法很难实现,如果资产值得,你应该考虑这些方法。

答案 2 :(得分:0)

我认为,如果您以某种方式对音频进行加密,则即使您的应用程序播放资产的解密音频文件,用户也可以录制系统声音,即使没有root电话也是如此,因为许多电话默认都具有此选项,例如:小米,三星。因此,您无法完全隐藏那些音频文件。您的应用播放资产音频时,甚至用户也可以录制扬声器。