los*_*ion 8 security encryption data-protection ios
启用数据保护(iOS,WatchKit Extension,tvOS)
数据保护为应用程序容器中的应用程序存储在磁盘上的文件增加了一定程度的安全性.数据保护使用特定设备上的内置加密硬件以加密格式在磁盘上存储文件.您的应用需要配置为使用数据保护.
启用数据保护
在"功能"窗格中,如果未启用"数据保护",请单击"数据保护"部分中的开关.
默认保护级别是完全保护,其中文件被加密并且在设备被锁定时不可访问.您可以通过编程方式设置应用程序创建的文件的保护级别,如iOS应用程序编程指南中的使用磁盘加密保护数据中所述.对于存储在共享容器中的文件(在配置应用程序组中描述),请以编程方式设置保护级别.
似乎默认保护是NSFileProtectionComplete,但我不认为这是真的,我认为如果你不启用它,默认是NSFileProtectionCompleteUntilFirstUserAuthentication.
问题1:应用程序编写的文件的默认文件保护是什么?
问题2:
我可以更改所有文件的默认值吗?
在权利文件中启用"数据保护"并将其设置为NSFileProtectionComplete是否意味着应用程序中创建/存储的所有文件都使用NSFileProtectionComplete规则进行加密,而不执行任何其他操作.IE是否需要启用此功能并为您希望以编程方式保护的每个文件设置文件保护?
我试过试试这个.我已打开数据保护(权利)和配置/应用程序.我通过xcode将应用程序部署到设备并抓取数据库文件以检查其NSFileProtectionKey:
NSURL*database = [NSPersistentStore MR_urlForStoreName:@"app.sqlite"] id fileProtectionValue = [[[NSFileManager defaultManager] attributesOfItemAtPath:[数据库路径]错误:NULL] valueForKey:NSFileProtectionKey]; NSLog(@"文件保护值:%@",fileProtectionValue);
然而,这仍然在吐出'NSFileProtectionCompleteUntilFirstUserAuthentication.
我试图删除该应用程序并重新安装.还验证了所有配置文件都已重新下载.
打开Data Protection实际上是否会更改应用程序中所有文件的文件保护密钥.IE是一个有效的测试?
如果不是,我该如何测试文件是否正确加密?
问题#1:应用程序写入的文件的默认文件保护是什么?
根据Apple 的文档(第 16 页),它是NSFileProtectionCompleteUntilFirstUserAuthentication(此处有新文档)
这是所有未分配给数据保护类别的第三方应用程序数据的默认类别。
和
问题#2:我可以更改所有文件的默认设置吗?
是的,在 Apple 开发人员中心的配置文件/应用程序 ID 的权利中。
请记住,文件保护是在创建时继承的,因此如果您希望整个文件系统层次结构使用此模式,您可以在创建它时将其设置在该层次结构的根目录上,并且内部的所有内容都将从那里获取它。
通过https://forums.developer.apple.com/thread/91557#276303
如果需要,您还可以指定特定于文件的属性。
有关测试的其他信息:/sf/answers/2803138901/