我有一个将机密信息存储在该应用程序的专用数据文件夹中的文件中的应用程序.
我想知道这样做有多安全.
据我所知,在android设备上其他应用程序无法访问该文件.
假如:
>设备未植根
>锁定屏幕上有密码保护
>黑客窃取了该设备,他实际上*获取该文件
有什么技巧可以通过某种方式获取该文件?我的意思是:
>是否可以将设备植根(在这种情况下),然后获取该文件?
>黑客可以物理地从设备中取出闪存芯片,然后使用任何工具对其进行分析. Android会进行任何加密来阻止这种情况发生吗?
>可能还有其他方法来获取该文件?
是否有可能以某种方式完全保护该文件?
也许该应用程序可以具有一个自动启动服务来监视根目录状态.如果设备生根,则服务会立即删除该文件.
谢谢!
解决方法:
Is it possible to get the device rooted (in this scenario) and then get that file?
是的,假设:
>黑客可以暴力破解密码,并且
>该设备通常是可生根的(并非每个设备都有已知的获取根的配方)
Can the hacker physically take out the flash chip from the device and then he analyzes it using any tool.
从理论上讲,如果不对其进行物理损坏就很难做到.
Does Android make any encryption preventing this way to happen?
Android提供了全磁盘加密,并且默认情况下在新的Android 5.0设备上启用了该功能.较旧的Android设备的全盘加密可能是蛮力的.在这方面,Android 5.0似乎更强大,尽管只有时间才能证明它是否也存在缺陷.
Is it possible at all to fully protect that file somehow?
请勿首先将文件放在设备上.
或者,使用足够强大的用户已知密码来自己加密.最终您会发现a $5 wrench是比尝试破解设备更可行的方法.
Maybe the application could have an autostart service that monitors the rooted status. If the device gets rooted the service deletes the file immediately.
在某些情况下,您的应用程序未运行,部分原因是操作系统不一定以正常模式运行.
此外,即使您的应用程序正在运行,攻击者也可以在超过锁定屏幕之后并尝试设置root用户访问权限时,将其从设置中强制停止.
并且,这假设您的应用知道所有可能的检测根访问的方法,这似乎不太可能.
My application needs to read and write that file, so encryption is useless from a hacker point of view
仅当您的应用程序需要“读取和写入该文件”而无需用户提供密码短语时.在这种情况下,您唯一的绝对防御方法就是没有文件.其他一切只会减慢攻击速度,但无法阻止攻击.