5

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

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

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

4

1 回答 1

5

首先,让我们摆脱硬件加密方面的影响:

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

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

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

保护第三方应用程序使用的文件:您能否说明您的应用程序将如何与第三方应用程序共享文件?

更多信息:

更新

使用时UIDocumentInteractionController

使用此方法将文档移交给另一个应用程序后,数据将不在您的手中,第三方应用程序可以使用它做自己喜欢的事情。如果您对此感到满意,并且您主要关心的只是将文档以受保护的方式存储在您的设备上,那么有几种可能性:

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

  • 使用此处提到的 NSURLProtocol 技巧即时解密磁盘上的加密文件

于 2013-02-14T15:30:58.043 回答