首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS上的默认文件保护是什么以及如何更改它

iOS上的默认文件保护是什么以及如何更改它
EN

Stack Overflow用户
提问于 2016-12-07 00:21:10
回答 2查看 5.5K关注 0票数 10

阅读:(https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapabilities/AddingCapabilities.html)

启用数据保护(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.

我已经尝试删除应用程序并重新安装。此外,验证了所有供应配置文件被重新下载。

打开数据保护实际上会更改应用程序中所有文件的文件保护键。这是有效的测试吗?

如果没有,如何测试文件是否正确加密?

EN

回答 2

Stack Overflow用户

发布于 2018-05-29 22:09:21

问题1:应用程序编写的文件的默认文件保护是什么?

根据苹果的文档 (第16页),它是NSFileProtectionCompleteUntilFirstUserAuthentication (新来的医生)

这是所有第三方应用程序数据的默认类,否则不会分配给数据保护类。

问题2:我可以更改所有文件的默认设置吗?

是的,在Apple Developer中心的供应配置文件/应用程序ID的权限中。

请记住,文件保护是在创建时继承的,因此,如果您希望整个文件系统层次结构使用此模式,则可以在创建该层次结构时将其设置在该层次结构的根目录上,而其中的所有内容都将从该模式中提取。

通过https://forums.developer.apple.com/thread/91557#276303

然后,如果需要,还可以指定特定于文件的属性。

关于测试的附加信息:https://stackoverflow.com/a/40044841/308315

票数 4
EN

Stack Overflow用户

发布于 2022-01-03 02:05:11

如果在应用程序级别添加了数据保护功能(即通过签名和功能添加数据保护功能),您可以参考index.html查看如何验证应享权利。

这里引用了其中的一些话:

  1. 在Xcode中提交应用程序时检查发行版生成应享权利

Xcode在提交工作流期间在“摘要”窗格中显示发行版生成的权限。这是最后一个机会,您必须确保您的应用程序包含预期的权利,然后提交您的应用程序审查。

  1. 创建.ipa文件以检查iOS应用程序商店提交的权限

或者,对于Xcode的权利预览,您可以通过首先创建和检查一个iOS文件来检查.ipa应用程序商店提交的权限。下面的步骤概述了执行此操作的过程。 创建一个可检查的.ipa文件

  1. 在Xcode管理器中,不要向iOS应用程序商店提交,而是保存用于企业或Ad部署。这将创建将提交到App的.ipa文件的本地副本。
  2. 当被要求选择要签名的供应配置文件时,请选择提交到App时使用的相同的分发配置文件。使用您选择的屏幕截图(命令shift-3),这样您可以在稍后验证此步骤。在提交过程中,这个屏幕截图将是唯一的记录,你有识别哪个配置文件是用来签署应用程序。
  3. 当要求保存包时,取消选中“为企业分发保存”,然后保存.ipa文件。

检查.ipa文件的权限

  1. 查找.ipa文件并将其扩展名更改为.zip。
  2. 展开.zip文件。这将产生一个包含.app包的Payload文件夹。
  3. 使用codesign检查.app包上的应享权利,如:$ codesign -d --entitlements :- "Payload/YourApp.app",其中YourApp.app是.app包的实际名称。
  4. 使用安全工具检查应用程序的嵌入式供应配置文件的权限:$ security cms -D -i "Payload/YourApp.app/embedded.mobileprovision",其中YourApp.app是.app包的实际名称。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41007320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档