2016-05-22 133 views
1

我需要在我的应用程序中保护一些敏感数据。我想用NSFileProtection来做到这一点。我想知道,用户是否能够浏览使用NSFileProtection保护的文件,如果他将越狱它的设备?如果是,是否有其他方法来保护这些数据免遭越狱设备的侵害?NSFileProtection越狱设备

回答

4

NSFileProtection不提供对具有root权限的设备上执行的代码的任何实际保护。没有PIN码,你可以打开任何文件。当设备被锁定时,pincode文件将不可访问,但可以轻松拦截输入的pincode并稍后使用它以编程方式禁用保护并随时打开任何文件。但是如果用户自己想要访问,那么他将不会首先使用PIN码。

至于其他保护方式,我不认为你可以妥善保护任何技术用户。有几种方式,但总是有方法:

  1. 加密数据并存储本地加密密钥。用户可以找到密钥并解密所有内容
  2. 加密数据,但在服务器端存储加密密钥,绝不会在本地任何地方缓存它们。用户可以嗅探网络流量并获取密钥。使用证书锁定的SSL将保护您免受此类攻击。但用户可以随时修补应用程序的二进制文件或使用挂钩完全禁用加密或转储加密密钥。
  3. 不要在本地存储任何东西,始终访问网络上的数据。使用带有证书锁定的SSL来避免嗅探。但是,二进制补丁和钩子仍然是可能的。

所以我不认为你可以完全保护你的数据,但你可以使保护足够困难,以反向工程和禁用,以便大多数用户不会通过它。

+0

THX为您的答案。你能再给我解释一件事吗。如果用户没有pincode用户如何访问这些文件?假设该应用程序没有启用文件共享。 – Sayaki

+0

文件共享是通过USB或WiFi iTunes同步访问的。它不提供任何其他保护。如果设备越狱,可以通过根文件系统USB访问或沙箱外设备上的任何应用程序访问这些文件。几乎所有的软件保护iOS都取决于它的操作系统非常有限且封闭。一旦你获得root权限,一切都消失了。包括你可以阅读整个内容的钥匙串。 – creker