Apple的文档说明如下:
保护除非打开.文件已加密.设备锁定时无法访问已关闭的文件.设备解锁后,您的应用可以打开并使用该文件.如果用户打开了文件并锁定了设备(例如,通过按下睡眠按钮),您的应用程序可以继续访问该文件.
并且:
完成除非已经打开.该文件已加密.设备锁定时无法访问已关闭的文件.用户解锁设备后,您的应用可以打开文件并使用它.但是,如果用户在文件打开时锁定设备,您的应用可以继续访问它.指定NSDataWritingFileProtectionCompleteUnlessOpen选项(NSData)或NSFileProtectionCompleteUnlessOpen属性(NSFileManager).
这似乎是一个很好的选择,允许我完成文件上的任何剩余工作,然后自己关闭它.文档没有说明文件关闭时会发生什么.例如,当:
现在,文件是否受保护,因为它现在已关闭?或者可以重新开放吗?
它使用公钥来确保在设备解锁之前无法打开文件。
\n\n\n\n\n受保护除非打开
\n
\n (NSFileProtectionCompleteUnlessOpen) : 设备锁定时可能需要写入某些\n 文件。一个很好的例子是在后台下载邮件附件。这种行为是通过使用非对称椭圆曲线加密(ECDH over Curve25519)来实现的。除了通常的每个文件密钥之外,数据保护还会生成文件公钥/私钥对。共享秘密是使用文件\xe2\x80\x99s 私钥和\n Protected except Open 类公钥计算的,其相应的私钥\n 受用户\xe2\x80\x99s 密码和设备的保护UID。每个文件的密钥都包含有此共享密钥的哈希值,并与文件\xe2\x80\x99s 公钥一起存储在文件\xe2\x80\x99s 元数据中;然后相应的私钥将从内存中擦除。文件关闭后,每个文件的密钥也会从内存中擦除。要再次打开文件,将使用受保护的\n 重新创建共享密钥,除非 Open 类\xe2\x80\x99s 私钥和文件\xe2\x80\x99s 临时公钥;\n 使用其哈希值解开每个文件的密钥,然后使用该密钥解密文件。
来自http://images.apple.com/iphone/business/docs/iOS_Security_Oct12.pdf(第10页)
\n| 归档时间: |
|
| 查看次数: |
2002 次 |
| 最近记录: |