iOS中的特定于应用程序的文件加密

时间:2014-01-13 19:57:11

标签: ios iphone file encryption

我需要开发一个应用程序通过HTTPS读取文件并将其保存到iOS设备(例如iPhone)的本地内存(内部或外部)的简单演示,其方式只能访问它。因此,需要特定于应用程序的文件加密。

Apple iOS开发人员库的"Advanced App Tricks"页面,在“使用磁盘加密保护数据”部分中,似乎暗示通过默认(即iOS文件系统)或磁盘在磁盘上加密的文件或在用户键入设备的锁码后,所有应用程序都可以访问“完整”数据保护。

如果是这种情况,有人可以建议在iOS设备上实施每个应用程序的文件加密的最佳方法,当用户尝试打开文件时请提供密码请求吗?任何示例代码也非常有用。

此外,“软件加密”是否适用于iOS? Default和Data Protection加密似乎都是基于硬件的。

谢谢!

1 个答案:

答案 0 :(得分:2)

应用程序之间无法访问应用程序文件。每个应用程序都单独进行沙盒处理。

在所有情况下,该文档都在谈论“您的应用程序”可用的访问权限/它永远不会被其他应用程序访问。但见下文。单独的保护选项有助于涵盖“你的应用程序”在后台访问文件时的内容和时间。

JailBroken iOS设备将拥有更强大的文件系统访问权限,因此添加“数据保护”将保护此矢量。

请参阅The iOS Environment上的文档会话,特别是“App Sandbox”iOS环境

部分

硬件加密:硬件加密提供了一些功能。 1.速度2.加密方法不能改变,就像软件加密一样,没有可能被破坏的代码。 3.无法访问密钥。密钥以某种方式放置/创建在硬件中,硬件将不允许读取访问(偶尔会有非常安全的导出功能)。要求设备对数据执行加密功能并返回数据。例如智能卡,HSM,TPM和TPM等价物,iPhone具有TPM等效物,用于钥匙串。我妻子和我昨天正在讨论这个话题。 : - )

据我所知,对于批量数据的加密,iOS确实使用特殊的硬件指令来辅助AES加密以提高速度,但由于密钥在软件中可用,因此不会被视为硬件加密。由于缺乏有关Apple A系列ARM芯片的信息,这里有一点猜测,麦克风中的英特尔芯片也是如此。