保护应用沙箱
Posted
技术标签:
【中文标题】保护应用沙箱【英文标题】:Protecting the app sandbox 【发布时间】:2011-01-04 16:32:48 【问题描述】:所以我正在开发一个测试应用程序,它将文件本地下载到应用程序文件存储沙箱。其中一些文件可能很敏感,需要保护。我的应用程序有一个登录机制,所以如果你没有登录,你将无法访问文件,所以我主要关心的是嗅探内容的能力(也许在越狱设备上??)。
现在我想知道保护这些文件的最佳方法是否是独立加密每个文件?或者也许有一种方法可以加密整个沙箱?还是默认加密?以前有人做过这样的事吗?
对于一长串的问题,我深表歉意,在做出设计决定之前,我正在努力收集尽可能多的信息……
谢谢!
【问题讨论】:
【参考方案1】:您可能想研究 ios 4 及更高版本中的File Protection 机制。这提供了一种将文件标记为“受保护”的方法,因此它将始终加密存储在磁盘上,只有在设备解锁时才能访问(使用密码)。
另见this question
【讨论】:
嗯...有趣。这可能会做我想要的,但是如果用户在设备上没有密码怎么办?有没有办法在用户登录应用程序时触发解密?我觉得那会很有用... 不,除非用户在设备上有密码,否则您无法利用 Apple 的方案,因为密码是用于保护数据的加密密钥的一个组成部分。【参考方案2】:如果您的目标 iPhone 4 是 OS 4.x,您可以使用 OS 加密整个沙盒。即便如此,iOS 也有“托管钥匙串”的概念,它基本上是一个密码缓存,他有可能被黑客入侵。据我所知,Mail 是唯一可以加密所有内容的应用程序。
为了以这种方式加密您的应用程序数据,您只需按照NSFileManager
中的说明设置适当的NSFileProtectionKey
。但是,如上所述,这并不完全安全。
您可以在文件管理器上尝试自定义类别,根据您自己的要求加密文件,以便您拥有加密的文档。选择权在你。
【讨论】:
这就是我想要尝试的。或许我会先尝试苹果的方法,如果不行,再想出我自己的方案。以上是关于保护应用沙箱的主要内容,如果未能解决你的问题,请参考以下文章
Android 6.0 应用权限 -- 与系统权限一起工作(Working with System Permissions) 使用MarkDown重新整理了排版