对于我的iOS 6 + - 只应用程序,我想实现从iOS版提供的磁盘上加密。
我阅读本指南 ,我看到了WWDC 2012(会话714)的“保护了用户的数据”的视频。 但是,我不能使它工作。
下面是我遵循的步骤:
1-在iOS的开发中心 ,我创建了一个新的App ID有:
2-在Xcode中,我添加了密钥的文件享权利:
3-在设备上,我激活通行码锁。
如果我没有错,这应该是所有的。 我现在想到的是,虽然设备(在我的情况:一个iPhone 5)被锁定,受保护的文件是不可访问。 但是,如果我使用IEXPLORER ,我可以很容易地访问由我的应用程序创建的文件,即使设备处于锁定状态。 但是,这正是我想避免的。 难道我忘了什么事?
您可以访问文件,无需解锁设备的原因是,托管密钥包已创建。 这是苹果公司在解释的iOS安全指南(PDF) :
托管密钥包用于iTunes同步和移动设备管理(MDM)。 此密钥包允许iTunes的备份和同步,而不需要用户输入密码,并允许一个MDM服务器远程清除用户的密码。 它存储这是我们用来与iTunes同步,或用于管理设备的MDM服务器上的计算机上。
托管密钥包提高设备的同步,这潜在地需要访问数据的所有类中的用户体验。 当密码锁定设备第一次连接到iTunes,则提示用户输入密码。 然后,该设备创建一个中介密钥包,并将其传递到主机。 托管密钥包包含完全相同的设备上使用相同的类键,通过新生成的密钥保护。 这个密钥是需要解开中介密钥包,并存储在设备上的保护,直到第1用户认证类。 这就是为什么设备密码必须与iTunes的重新启动后的第一次备份之前输入。
如果重新启动您的电话,您将无法访问文件,而一旦解锁它。
如果你想要的文件是只有当设备被解锁(+约10秒宽限期),设置文件保护NSFileProtectionComplete。 一定要实现委托方法来知道什么时候数据将成为(联合国)可用。