根据Apple documentation以及我在iOS设备上读到的关于磁盘加密的其他文档,似乎为了利用设备的高级加密,用户必须启用密码才能在你使用它将加密的NSDataWritingFileProtectionComplete属性。
如果用户没有设置密码,但我仍想确保文件已加密,该怎么办?这种情况有哪些选择?
谢谢! 跳蚤
答案 0 :(得分:2)
iOS includes several APIs用于加密数据。自动磁盘加密是用户选择的选项,允许用户加密写入设备的辅助存储器的所有数据。如果您需要加密数据,无论用户是否选择打开该选项,请使用提供的选项之一自行加密数据。
除非你真的知道你正在做什么(即使你想想你做了什么,你可能也不知道),它'通常更好的想法是使用所提供的API,您可以期望这些API由专家编写和审核。
答案 1 :(得分:1)
如果您计划在美国境外发布应用,并且使用加密,则必须遵守美国商务部的限制。如果您使用Apple提供的API并且您只使用加密来保护您的内容,您将能够在国际上分发您的应用程序(根据Apple的iTunesConnect常见问题解答。)
但是,如果您自己编写加密,则必须与美国政府进行审核。
我已经编写了多个加密服务器内容的应用程序,因此即使将其下载到设备上也可以受到保护。
即使Apple的加密也不会阻止某人进行未加密的备份或将设备作为文件系统挂载并取走您的应用可能已下载的媒体文件。
因此,为了保护您的内容,您必须自己加密。并且,您必须只在ram中解密它,而不能作为闪存中的临时文件(可以从设备中复制)。这使得加密电影和PDF的服务有点挑战性。我使用解密的Web服务器线程;但是,有更多的现代方法,包括可能更好的文件级委托方法。