如果用户禁用其密码,如何对iOS数据保护做出反应?

时间:2016-02-05 19:48:14

标签: ios

我有一个iOS 9应用程序,我有敏感文件目录,我试图保护(他们是专有的视频文件)。我需要能够保护这些文件,即使是已经越狱其设备并试图读取该文件的恶意用户。理想情况下,我想使用Data Protection加密文件,如下所示:

NSError *protectionError;
NSDictionary *protection = @{ NSFileProtectionKey : NSFileProtectionCompleteUnlessOpen };
BOOL result = [[NSFileManager defaultManager] setAttributes:protection ofItemAtPath:contentDirectory error:&protectionError];

然而,看起来所有越狱用户必须要访问此文件才能删除其设备上的密码,这会使数据保护变得毫无用处。在删除密码的情况下,有没有办法将文件标记为需要被操作系统删除?我认为这类似于iPhone和Apple Watch在从设备中删除密码时删除Apple Pay卡的方式。

1 个答案:

答案 0 :(得分:1)

我现在发布此答案..

为什么不使用密钥和AES256加密自己加密这些文件。

您不必对代码中的密钥进行硬编码,也不必将其存储在沙箱中。 您可以使用我问过的这个问题中描述的方法生成它。

Random 256bit key using SecRandomCopyBytes( ) in iOS 使用iOS钥匙串存储密钥。

如果您担心可以从钥匙串获取密钥(顺便说一下这是非常安全的),那么最好的办法就是使用密码作为用户必须输入的密钥来解密文件。你把你的视频留在记忆中。您永远不会在任何地方存储此密码,只有当用户想要观看此视频时,他才必须输入该密码才能解密。