2014-09-25 55 views
3

我创建了一个iOS测试应用程序,将NSFileProtectionComplete应用于测试文件的NSFileProtectionKey属性。我杀了应用程序,并用密码锁定设备。然后我通过SSH进入设备。在SSH会话中,我仍然可以读取测试文件,就好像它没有加密或者没有任何保护措施一样。设备越狱后,为什么没有NSFileProtectionKey属性?

通过SSH在测试文件上使用FileDP,保护级别显示为预期设置为NSFileProtectionComplete

我试图通过SSH以root和mobile登录,结果是一样的。如果设备越狱,是否禁用设备加密?

或者,如果文件已被保护,SSH是不是一个可靠的测试?如果不是SSH,应如何测试文件保护?

+0

您是否有非越狱设备进行测试? – Nate 2014-09-26 03:13:06

+1

@Nate是的,我可以将设备还原为非越狱。如果没有越狱,我将如何测试该文件是否被加密? – radj 2014-09-26 06:32:17

+1

您可以下载iExplorer在您的电脑上运行并使用它浏览您的应用程序的文档文件夹。它有一个免费的试用版。注意:我看到和你一样的行为,并以纯文本格式查看。 – Nate 2014-09-26 22:03:51

回答

2

确保:

  • 一个密码锁设置在设置应用程序,
  • 设备有效地与密码(称为“需要密码”会导致屏幕被关闭的设置锁定,但该锁没有被激活)。

需要注意的是:

  • 保护只对文件的内容,而不是它的名字。因此,即使在保护处于活动状态时,您也可以获得受保护文件的列表,即在iOS 8之前,将文件夹标记为NSFileProtectionComplete并不确保其中包含的文件受到保护(您需要标记每个文件)。
+0

后续问题:我如何判断“设备已被锁定”而不是仅仅关闭? – radj 2014-11-10 09:36:21

+0

按主页按钮,然后向右滑动。如果您的设备被锁定,您需要输入密码或Touch ID,如果它被解锁,锁定屏幕将会消失。 – davidisdk 2014-11-28 01:00:03

+0

你好@davidisdk。我在iOS和Foundation发行注记中寻找确切的证据,NSFileProtectionKey从iOS 8开始就被目录的文件继承,但我无法找到它。你从哪里得到这些信息?我可以看到它适用于iOS 10,但我想确切地知道这对于iOS 8和9也是如此,因为我正在编写有关[GRDB.swift]的SQLite数据库保护文档(http ://github.com/groue/GRDB.swift)。 – 2017-01-18 15:15:00

相关问题