iPad On Disk Encryption是否仅影响一个应用程序或整个系统

时间:2013-02-14 14:34:47

标签: objective-c ipad security encryption

我需要我的原生iPad应用程序以加密形式存储其数据(例如通过HTTPS下载的.DOC文档)。那些.DOC文件将在iPad上的第三方应用程序中打开。

我需要知道是否有一种方法可以加密我的应用程序和第三方应用程序的数据?这意味着我的.DOC文件永远不会以未加密的形式存储在设备上。 (这里的动机是我的应用程序下载包含敏感信息的文档,我希望在iPad上读取这些文档,但需要使用磁盘加密保护层。)

我正在阅读Advanced App Tricks @ apple.com,“使用磁盘加密保护数据”部分,但无法找到任何相关信息。

1 个答案:

答案 0 :(得分:5)

首先,让我们将硬件加密方面放在一边:

iOS支持磁盘上所有内容的硬件加密。它使用与您的设备密码无关的密钥加密。此功能允许快速擦除设备的数据(通过覆盖设备加密密钥)。但是,它并不能真正保护您的数据不会被熟练的闯入者检索到,因为他们可以获取您的设备;越狱将绕过这个。

通过Data Protection API进行文件加密:可以通过在iOS上设置标志来告知iOS要加密某些文件。然后使用设备密码加密它们(如果已设置)。 注意:如果用户未设置密码,则不会应用此额外保护!因此,从技术上讲,此保护不受您的控制,除非您的用户在强制执行密码锁定的组织中工作策略(使用iPhone配置实用程序或类似工具)。

使用CommonCrypto进行加密:您可以使用此类加密API手动执行自己的加密/解密。请注意,如果您不知道自己在做什么,则很容易滥用此类API并最终导致加密不是很安全。但是,有一些诸如RNCryptor这样的包装器会使滥用这些API变得更加困难。

保护第三方应用使用的文件:您能澄清一下您的应用与第三方应用分享文件的方式吗?

更多信息:

更新

使用UIDocumentInteractionController

使用此方法将文档移交给其他应用后,数据无法掌握,第三方应用可以随意使用。如果您对此感到满意,并且主要关心的是将文档以受保护的方式存储在您的设备上,那么有几种可能性:

  • 依靠Data Protection API保护磁盘上的文档(用户必须设置密码,并且需要告诉iOS要保护特定文件才能使其正常工作)

  • 使用提及here的NSURLProtocol技巧即时解密磁盘上的加密文件