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

最佳答案

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

至于其他保护方式,我认为您无法从熟练的用户那里获得任何保护。有两种方法,但总是有解决方法:

  • 加密数据并在本地存储加密密钥。用户可以找到密钥并解密所有内容
  • 加密数据,但将加密密钥存储在服务器端,切勿将其缓存在任何本地位置。用户可以嗅探网络流量并获取密钥。带有证书固定的SSL可以保护您免受此攻击。但是,用户始终可以修补应用程序的二进制文件,也可以使用挂钩完全禁用加密或转储加密密钥。
  • 不要存储任何本地信息,请始终从Web访问数据。将SSL与证书固定一起使用可避免嗅探。但是同样,二进制补丁和钩子仍然是可能的。

  • 因此,我认为您无法完全保护数据,但是您可以使保护变得足够困难以进行反向工程和禁用,以使大多数用户无法使用它。

    10-08 05:23