我开发了一个iOS应用程序。出于安全原因,我将所有音频/视频文件下载到图书馆/缓存下的文档文件夹。
使用iTunes时,最终用户无法进行此视频备份。但是一些外部软件可以轻松打开库/缓存并从此文件夹下载所有文件。
我的问题是如何保护此Library / Caches文件夹或如何不将文件存储到文档目录。
答案 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(一些自己的算法)
示例:强>
前:
原始档案数据:ABCDEF
加密数据(添加一些内容/字节):A%GB * CDE)F
注意:没有人无法打开此文件,因为我们将一些内容添加到原始文件中,因此它的文件无效。
对于以编程方式打开文件时,您将删除字节,然后您可以正确读取文件。
前:
加密数据(添加一些内容/字节):A%GB * CDE)F
我们需要删除额外内容:%G *)
原始档案数据:ABCDEF
非常重要:不要使用第三方算法。您将制作自己的算法。
谢谢,