Android文件安全

问题描述:

是否可以为文件提供应用程序特定的安全性?我希望文件只能被所需的应用程序访问,而不能被其他应用程序访问。Android文件安全

我假设你有记录在SD卡上的文件,因为存储在内部文件系统中的文件默认受到保护。

您可以保护您的数据不受其他应用程序的唯一方式是使用某种加密。

Android为每个应用程序提供了自己的用户标识,然后标准的Linux文件系统访问权限负责保护存储在内部文件系统中的数据。您无需做任何事情即可充分利用此功能,因为它是Android中整个安全模型的核心。

但是对于外部存储器,如sd卡,Android正在使用FAT文件系统使卡与Windows兼容。这是一个很好的想法,但由于FAT文件系统缺乏访问权限功能,所有存储在SD卡上的内容都可用于所有应用程序。 (需要访问SD卡的应用程序需要请求获得许可。)

(这是Android的一个巨大的完整性问题,敏感信息不应该存储在SD卡上,但所有拍摄的照片都存储在那里,可以访问SD卡和互联网的应用程序可以很容易地将所有照片上传到服务器,而无需知道它。)

你可以在AndroidManifest.xml文件中声明权限。正如Android开发者许可指南中所述:

例如,想要控制谁可以启动它的活动之一,可以宣布权限进行此操作如下应用:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.me.app.myapp" > 
    <permission android:name="com.me.app.myapp.permission.DEADLY_ACTIVITY" 
     android:label="@string/permlab_deadlyActivity" 
     android:description="@string/permdesc_deadlyActivity" 
     android:permissionGroup="android.permission-group.COST_MONEY" 
     android:protectionLevel="dangerous" /> 
    ... 
</manifest> 

您可以检查webpage,如果你不明确,我们可以在这里讨论,在给出确切的答案之前,我必须先去。

编辑:同时检查这post在这样。

是的。一个简单的解决方案是在安装应用程序时使用/dev/urandom生成随机加密密钥,将密钥存储在本地存储中(不在SD卡上),然后使用此密钥加密存储在SD卡上的文件。这会阻止其他应用程序读取文件。

当然,这种方法的一个结果是,用户将无法删除SD卡,将其放入他们的PC,并将这些文件复制到他们的PC上。