【问题标题】:Why doesn't NSFileProtectionKey attribute when a device is jailbroken?为什么设备越狱时没有 NSFileProtectionKey 属性?
【发布时间】:2014-11-19 21:42:36
【问题描述】:

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

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

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

或者如果文件受到保护,SSH 是否不是可靠的测试?如果不是 SSH,应该如何测试文件保护?

【问题讨论】:

  • 你有没有越狱的设备来测试?
  • @Nate 是的,我可以将设备恢复为未越狱。如果没有越狱,我将如何测试文件是否被加密?
  • 您可以下载 iExplorer 以在您的 PC 上运行并使用它来浏览您应用的 Documents 文件夹。它有免费试用版。注意:在 ssh 和以纯文本形式查看时,我看到的行为与您相同。
  • @Nate 我在越狱设备上尝试了 iExplorer。即使设备被锁定,本应受保护的 Documents 文件夹仍然可以读取。我稍后会用未越狱的设备重试。
  • @radj - 你能让 NSFileProtecitonComplete 工作吗?我正在尝试将它用于我的 .sqlite 数据库,但似乎无法正常工作。我已将我的代码发布在:stackoverflow.com/questions/39151959/…

标签: ios iphone security encryption jailbreak


【解决方案1】:

确保:

  • 在“设置”应用中设置了密码锁,
  • 设备已使用密码有效锁定(称为“需要密码”的设置会导致屏幕关闭但锁定未激活)。

注意:

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

【讨论】:

  • 后续问题:如何判断“设备已有效锁定”而不仅仅是屏幕关闭?
  • 按主页按钮,然后向右滑动。如果您的设备已锁定,您需要输入密码或 Touch ID,如果设备已解锁,锁定屏幕将会消失。
  • 你好@davidisdk。我正在 iOS 和 Foundation 发行说明中寻找明确的证据,证明 NSFileProtectionKey 自 iOS 8 以来被目录文件继承,但我就是找不到。你从哪里得到这些信息?我可以看到它适用于 iOS 10,但我想确定这对于 iOS 8 和 9 也是如此,因为我正在为GRDB.swift 编写有关 SQLite 数据库保护的文档。
猜你喜欢
  • 1970-01-01
  • 2019-01-24
  • 2012-04-02
  • 2011-03-31
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 2020-10-23
相关资源
最近更新 更多