使用iOS关闭文件时会发生什么?保护除非打开'加密?

时间:2013-04-24 14:18:47

标签: ios security

Apple的文档说明如下:

  

受保护,除非打开。文件已加密。设备锁定时无法访问已关闭的文件。设备解锁后,   您的应用可以打开并使用该文件。如果用户打开了文件并且   锁定设备(例如,通过按下睡眠按钮),您的应用程序   可以继续访问该文件。

Enabling Store Technologies

还有:

  

完成,除非已经打开。该文件已加密。关闭的文件是   设备锁定时无法访问。用户解锁后   设备,您的应用程序可以打开文件并使用它。如果用户锁定了   但是,当文件打开时,您的应用可以继续访问该设备   它。指定NSDataWritingFileProtectionCompleteUnlessOpen选项   (NSData)或NSFileProtectionCompleteUnlessOpen属性   (的NSFileManager)。

Protecting Data Using On-Disk Encryption

这似乎是一个很好的选择,允许我完成文件上的任何剩余工作,然后自己关闭它。文档没有说明文件关闭时会发生什么。例如,在以下情况下会发生什么:

  1. 用户打开应用并在应用
  2. 中打开文件
  3. 用户锁定设备(文件因未打开而保持不受保护)
  4. App对文件执行剩余操作
  5. 应用关闭文件
  6. 现在,文件是否受保护,因为它现在已关闭?或者可以重新开放吗?

1 个答案:

答案 0 :(得分:3)

它使用公钥来确保在设备解锁之前无法打开文件。

  

受保护除非打开
  (NSFileProtectionCompleteUnlessOpen):有些   设备锁定时可能需要写入文件。一个好的   例如,在后台下载邮件附件。   通过使用非对称椭圆曲线实现此行为   密码学(ECDH over Curve25519)。与通常的每个文件一起   密钥,Data Protection生成文件公钥/私钥对。一个   共享密钥是使用文件的私钥和   受保护除非Open类公钥,其对应私有   密钥由用户的密码和设备UID保护。该   每个文件密钥包含此共享密钥的哈希值   存储在文件的元数据中以及文件的公钥;该   然后从内存中擦除相应的私钥。一旦到了   文件已关闭,每个文件密钥也会从内存中擦除。打开   再次使用受保护的文件重新创建共享密钥   除非Open class的私钥和文件的短暂公钥;   它的哈希用于解包每个文件密钥,然后用于   解密文件。

来自http://images.apple.com/iphone/business/docs/iOS_Security_Oct12.pdf(第10页)