2013-02-28 98 views
8

对于我的iOS 6+应用程序,我想启用从iOS提供的磁盘加密。启用iOS的磁盘加密

我读了this guide,我看到了WWDC 2012的“保护用户数据”视频(Session 714)。但是,我无法使它工作。

下面是我遵循的步骤:

1-iOS Dev Center,创建了一个新的应用程序ID与:

Enable for Data Protection

2-在Xcode中,我增加了一个权利文件与密钥:

Xcode Entitlements

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

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

回答

4

无需解锁设备即可访问文件的原因是已创建托管密钥包。这在Apple的iOS Security Guide (pdf)中有解释:

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

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

如果您重新启动手机,则无法解锁一次就无法访问文件。

+1

似乎上面提供的链接已损坏。更新后的链接是https://www.apple.com/business/docs/iOS_Security_Guide.pdf – 2015-04-21 09:10:04

0

如果你想要文件可用只有当设备解锁(+约10秒的宽限期),将文件保护设置为NSFileProtectionComplete。一定要实现委托方法来知道数据何时变为可用。