启用iOS On-Disk加密

时间:2013-02-28 15:26:18

标签: iphone cocoa encryption ios6 data-protection

对于我的iOS 6 + -only应用程序,我想启用iOS提供的On-Disk Encryption。

我阅读了this guide,我看到了WWDC 2012的“保护用户数据”视频(会话714)。但是,我无法使其发挥作用。

以下是我遵循的步骤:

1 - iOS Dev Center中,我创建了一个新的App ID:

Enable for Data Protection

2 - 在Xcode中,我添加了一个包含密钥的Entitlements文件:

Xcode Entitlements

3 - 在设备上,我激活了密码锁。

如果我没错,这应该就是全部。我现在期望在设备(在我的情况下:iPhone 5)被锁定时,受保护的文件无法访问。但是......如果我使用iExplorer,即使设备被锁定,我也可以轻松访问我的应用创建的文件。但这是完全我想要避免的。我忘记了什么吗?

2 个答案:

答案 0 :(得分:4)

您可以在不解锁设备的情况下访问文件的原因是已创建了托管密钥包。这在Apple的iOS Security Guide (pdf)

中有解释
  

托管密钥包用于iTunes同步和移动设备管理(MDM)。这个密钥包允许iTunes备份和同步,而无需用户输入密码,它允许MDM服务器远程清除用户的密码。它存储在用于与iTunes同步的计算机上,或存储在管理设备的MDM服务器上。

     

Escrow密钥包可改善设备同步期间的用户体验,这可能需要访问所有类别的数据。当密码锁定设备首次连接到iTunes时,将提示用户输入密码。装置   然后创建一个Escrow密钥包并将其传递给主机。托管密钥包包含与设备上使用的完全相同的密钥,受新生成密钥的保护。解锁托管密钥包需要此密钥,并在“受保护的直到第一个用户身份验证”类中存储在设备上。这就是在重新启动后第一次使用iTunes备份之前必须输入设备密码的原因。

如果您重新启动手机,则无法在未解锁文件的情况下访问文件。

答案 1 :(得分:0)

如果您希望在设备解锁时可用约10秒的宽限期,请将文件保护设置为NSFileProtectionComplete。确保实现委托方法以了解数据何时变为[un]可用。