启用数据保护(iOS、WatchKit扩展、tvOS) 数据保护为应用程序在应用程序容器中存储在磁盘上的文件增加了一定程度的安全性。数据保护使用特定设备上的内置加密硬件将文件以加密格式存储在磁盘上。您的应用程序需要准备使用数据保护。 启用数据保护 在“功能”窗格中,如果未启用数据保护,请单击“数据保护”部分中的开关。 默认的保护级别是完全保护,在这种保护中,当设备被锁定时,文件是加密和不可访问的。您可以通过编程方式设置应用程序创建的文件的保护级别,如应用程序编程指南( app for iOS )中使用磁盘加密保护数据中所描述的那样。对于存储在共享容器中的文件(在配置App中描述),以编程方式设置保护级别。
默认保护似乎是NSFileProtectionComplete,但是我认为这是正确的,如果不启用它,默认保护是NSFileProtectionComplete。
问题1:应用程序编写的文件的默认文件保护是什么?
问题2:
可以更改所有文件的默认设置吗?
启用“数据保护”并将其设置为应享权利文件中的NSFileProtectionComplete是否意味着应用程序中创建/存储的所有文件都使用NSFileProtectionComplete规则加密,而不执行任何其他操作。IE是否需要启用此功能,并为希望以编程方式保护的每个文件设置文件保护?
我试过测试这个。我打开了数据保护(权利)和准备/应用程序。我通过xcode将应用程序部署到设备上,并抓取数据库文件以检查其NSFileProtectionKey:
NSURL *数据库= NSPersistentStore MR_urlForStoreName:@"app.sqlite“id fileProtectionValue = [[NSFileManager defaultManager attributesOfItemAtPath:数据库路径错误:NULL]value error:NSFileProtectionKey];NSLog(@”文件保护值:%@",fileProtectionValue);
然而,这仍然会释放出'NSFileProtectionCompleteUntilFirstUserAuthentication.
我已经尝试删除应用程序并重新安装。此外,验证了所有供应配置文件被重新下载。
打开数据保护实际上会更改应用程序中所有文件的文件保护键。这是有效的测试吗?
如果没有,如何测试文件是否正确加密?
发布于 2018-05-29 22:09:21
问题1:应用程序编写的文件的默认文件保护是什么?
根据苹果的文档 (第16页),它是NSFileProtectionCompleteUntilFirstUserAuthentication
(新来的医生)
这是所有第三方应用程序数据的默认类,否则不会分配给数据保护类。
和
问题2:我可以更改所有文件的默认设置吗?
是的,在Apple Developer中心的供应配置文件/应用程序ID的权限中。
请记住,文件保护是在创建时继承的,因此,如果您希望整个文件系统层次结构使用此模式,则可以在创建该层次结构时将其设置在该层次结构的根目录上,而其中的所有内容都将从该模式中提取。
通过https://forums.developer.apple.com/thread/91557#276303
然后,如果需要,还可以指定特定于文件的属性。
发布于 2022-01-03 02:05:11
如果在应用程序级别添加了数据保护功能(即通过签名和功能添加数据保护功能),您可以参考index.html查看如何验证应享权利。
这里引用了其中的一些话:
Xcode在提交工作流期间在“摘要”窗格中显示发行版生成的权限。这是最后一个机会,您必须确保您的应用程序包含预期的权利,然后提交您的应用程序审查。
或者,对于Xcode的权利预览,您可以通过首先创建和检查一个iOS文件来检查.ipa应用程序商店提交的权限。下面的步骤概述了执行此操作的过程。 创建一个可检查的.ipa文件
检查.ipa文件的权限
$ codesign -d --entitlements :- "Payload/YourApp.app"
,其中YourApp.app是.app包的实际名称。$ security cms -D -i "Payload/YourApp.app/embedded.mobileprovision"
,其中YourApp.app是.app包的实际名称。https://stackoverflow.com/questions/41007320
复制相似问题