iPhone文件文件夹库/caching安全问题

我开发了一个iOS应用程序。 出于安全原因,我将所有audio/video文件下载到了Library / Caches下的Documents文件夹。

对于使用iTunes,最终用户无法使用此video备份。 但一些外部软件很容易打开库/caching,并从这个文件夹下载所有文件。

我的问题是如何保护此库/caching文件夹或如何不可见的存储文件到文档目录。

我们不能隐藏文件夹内的文件。 我们可以select制作文件到NSDATA和制作DRM(一些自己的algorithm)

例:

  1. 获取文件到NSData并添加一些字节到NSData,所以这个文件被encryption。 如果有人打开这个文件意味着他们不能打开它。

例如:

原始文件数据:ABCDEF

encryption数据(添加一些内容/字节):A%GB * CDE)F

注意:没有人不能打开这个文件,因为我们添加一些内容到原始文件,所以它不是有效的文件。

  1. 以编程方式打开文件时,您将删除字节,然后您可以正确读取文件。

    例如:

    encryption数据(添加一些内容/字节):A%GB * CDE)F

    我们需要删除额外的内容:%G *)

    原始文件数据:ABCDEF

非常重要:不要使用第三方algorithm。 你会做出自己的algorithm。

谢谢,

如果您在此应用程序中使用CoreData,则可以为文件数据创build其他实体,为数据设置“可变形”types并在其中进行encryption/解密。 http://www.artandlogic.com/blog/2012/07/securing-your-core-data-with-transformable-attributes/可以提供帮助。 如果您不使用CD,则可以使用类似的方法保存,加载时解密(但应将密钥存储在安全的地方,也可将其发送到服务器)。 你也可能只想下载请求的文件,而不是全部。

无论如何,您需要进行简介以确保它不会使应用程序无法使用。 而且,即使使用https连接和encryption,任何真正有动机的攻击者也会拥有这些文件,但合法用户可能会遭受额外的“保护”。

编辑:你可能想用纯C编写一些明智的代码,所以攻击者很难进入你的代码。

你可以使用NSData writeToFile:options:error:用选项NSDataWritingFileProtectionComplete将其写入encryption模式。 或者其他一些AESencryption方法来encryption数据。