iPhone Documents Folder Library / Caches安全问题

时间:2014-05-30 12:14:39

标签: ios file file-manager

我开发了一个iOS应用程序。出于安全原因,我将所有音频/视频文件下载到图书馆/缓存下的文档文件夹。

使用iTunes时,最终用户无法进行此视频备份。但是一些外部软件可以轻松打开库/缓存并从此文件夹下载所有文件。

我的问题是如何保护此Library / Caches文件夹或如何不将文件存储到文档目录。

3 个答案:

答案 0 :(得分:1)

如果您在此应用中使用CoreData,您可以为文件数据创建其他实体,为数据设置“可转换”类型并在那里加密/解密。 http://www.artandlogic.com/blog/2012/07/securing-your-core-data-with-transformable-attributes/可以提供帮助。 如果你不使用CD,你可以使用类似的方法 - 在加载时加密,在加载时解密(但你应该将密钥存储在安全的地方,也许可以将它们发送到服务器)。此外,您可能只想下载所请求的文件,而不是全部。

无论如何,您需要对此进行分析,以确保它不会使应用程序无法使用。此外,任何真正有动力的攻击者都会拥有这些文件,即使使用https连接和加密,但合法用户可能会遭受额外的“保护”。

编辑:您可能希望在普通C中编写一些合理的代码,因此获取者很难进入您的代码。

答案 1 :(得分:1)

您可以使用NSData writeToFile:options:error:使用选项NSDataWritingFileProtectionComplete,它将写入加密模式。或其他一些AES加密方法来加密数据。

答案 2 :(得分:1)

我们无法隐藏文件夹中的文件。我们可以选择将文件发送到NSDATA和Make DRM(一些自己的算法)

示例:

  1. 将文件获取到NSData并向NSData添加一些字节,因此该文件已加密。如果有人打开这个文件意味着他们无法打开它。
  2. 前:

    原始档案数据:ABCDEF

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

    注意:没有人无法打开此文件,因为我们将一些内容添加到原始文件中,因此它的文件无效。

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

      前:

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

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

      原始档案数据:ABCDEF

    2. 非常重要:不要使用第三方算法。您将制作自己的算法。

      谢谢,