2012-03-06 76 views
0

我的android设备的SD卡上有一组加密文件。我的应用程序使用bufferedInputstream读取加密文件,并在应用程序的内部存储器中生成解密文件。应用程序然后读取解密的文件(.pdf,.swf,.flv)以查看它。 如何确保用户(包括在根设备上的root用户)无法访问解密的文件?文件安全android:我怎样才能让我的android应用程序只能读取文件

  1. 我可以删除解密文件的读取/写入权限吗,只要我的应用程序打开它来读取?如果是,请指导我如何?
  2. 只要我的 应用程序打开它以便读取,我可以从内部存储器中删除该文件。如果是,请指导我如何?
  3. 我偶然发现了https://github.com/seth-hg/fuse-android。如果 没有其他的工作,建立一个文件系统在用户 空间来处理这种情况下是一个好主意吗?如果您已经尝试过,请指向 正确的方向或教程。
+0

你不能。总的来说,你有一个加密文件和密钥在某个时候在设备上解密它。其余的只是有兴趣的人的作业。特别是在根植设备上。 – 2012-03-06 11:31:10

+0

@alextsc谢谢你的回复。如果我使用fuse-android?这种方法解决这个问题有多好? – vaibhav 2012-03-07 03:11:41

+0

我从来没有使用过自己。但它不会有太大的改变,只要对那些对这些文件感兴趣的人做更多的工作即可。如你所说,你无法解决这个问题。这是一个原则,如果你可以解码设备上的加密数据,设备所有者可以得到它,如果他想。这只是他想要投入多少工作的问题。解密后删除文件?记下快照。你的应用中有密钥?解压缩。等等。根本不可行。 – 2012-03-07 08:12:46

回答

2

一旦用户获得root权限,就无法阻止对任何文件的访问。由于android的安全性主要基于文件系统的权限。

你可以做的是存储在存储器中解密的内容,并删除文件(或避免在首位创造它)

+0

谢谢,为答案。但我对这种方法的担忧是,如果文件很大,会怎么样?我有.flv和.swf文件。此外,为了使用.swf文件运行动画,我必须解密多个.swf文件。保持所有记忆可能是不可能的。 – vaibhav 2012-03-07 03:09:37

+0

任何说fuse-android? – vaibhav 2012-03-07 03:10:05

相关问题