越狱设备上的 NSFileProtection

NSFileProtection on Jailbroken device

我需要保护我应用中的一些敏感数据。我想使用 NSFileProtection 来做到这一点。我想知道,如果用户越狱其设备,他是否能够浏览受 NSFileProtection 保护的文件?如果是,是否有任何其他方法可以保护此类数据免受越狱设备的侵害?

NSFileProtection 不提供任何真正的保护,防止在具有 root 权限的设备上执行的代码。没有密码,您可以打开任何文件。使用 pincode 文件在设备被锁定时将无法访问,但很容易拦截输入的 pincode 并在以后使用它以编程方式禁用保护并随时打开任何文件。但是如果用户自己想获得访问权限,那么他首先就不会使用密码。

至于其他保护方式,我认为您无法从熟练的用户那里妥善保护任何东西。有几种方法,但总有解决方法:

  1. 加密数据并在本地存储加密密钥。用户可以找到密钥并解密所有内容
  2. 加密数据但将加密密钥存储在服务器端,永远不要将它们缓存在本地任何地方。用户可以嗅探网络流量并获取密钥。带有证书固定的 SSL 将保护您免受这种情况的影响。但用户始终可以修补您应用程序的二进制文件或使用挂钩来完全禁用加密或转储加密密钥。
  3. 不要在本地存储任何内容,始终从 Web 访问数据。将 SSL 与证书固定一起使用以避免嗅探。但同样,二进制补丁和挂钩仍然是可能的。

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