Ios 越狱设备上的NSFILE保护

Ios 越狱设备上的NSFILE保护,ios,security,jailbreak,Ios,Security,Jailbreak,我需要在我的应用程序中保护一些敏感数据。我想使用NSFileProtection来实现这一点。我想知道,如果用户将其设备越狱,是否能够浏览受NSFileProtection保护的文件?如果是,是否有其他方法保护此类数据不受越狱设备的影响?NSFileProtection不提供任何真正的保护,不受在具有root权限的设备上执行的代码的影响。没有pincode,您可以打开任何文件。当设备被锁定时,无法访问带有pincode的文件,但可以很容易地截获输入的pincode,并在以后使用它以编程方式禁用保

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

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

至于其他的保护方式,我认为你不能从熟练的用户那里得到任何适当的保护。有几种方法,但总有一些方法:

加密数据并将加密密钥存储在本地。用户可以找到密钥并解密所有内容 加密数据,但将加密密钥存储在服务器端,切勿将其缓存在本地任何位置。用户可以嗅探网络流量并获取密钥。带有证书固定的SSL将保护您不受此影响。但用户可以随时修补应用程序的二进制文件,或者使用钩子完全禁用加密或转储加密密钥。 不要在本地存储任何内容,始终从web访问数据。将SSL与ceertificate固定一起使用以避免嗅探。但是,二进制补丁和钩子仍然是可能的。
因此,我认为您不能完全保护您的数据,但您可以使保护变得足够困难,以便进行反向工程和禁用,以便大多数用户不会通过它

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

至于其他的保护方式,我认为你不能从熟练的用户那里得到任何适当的保护。有几种方法,但总有一些方法:

加密数据并将加密密钥存储在本地。用户可以找到密钥并解密所有内容 加密数据,但将加密密钥存储在服务器端,切勿将其缓存在本地任何位置。用户可以嗅探网络流量并获取密钥。带有证书固定的SSL将保护您不受此影响。但用户可以随时修补应用程序的二进制文件,或者使用钩子完全禁用加密或转储加密密钥。 不要在本地存储任何内容,始终从web访问数据。将SSL与ceertificate固定一起使用以避免嗅探。但是,二进制补丁和钩子仍然是可能的。
因此,我认为您不能完全保护您的数据,但您可以使保护变得足够困难,以便进行反向工程和禁用,以便大多数用户不会通过它

谢谢你的回答。你能再给我解释一件事吗。如果用户没有pincode,用户如何访问这些文件?假设应用程序未启用文件共享。文件共享用于通过USB或WiFi iTunes同步进行访问。它不提供任何其他保护。如果设备被越狱,则可以通过根文件系统USB访问或通过沙箱之外设备上的任何应用程序访问这些文件。几乎每个iOS的软件保护都取决于它是一个非常有限和封闭的操作系统。当你获得根访问权限时,一切都消失了。包括您可以阅读的全部内容的钥匙链。THX用于您的答案。你能再给我解释一件事吗。如果用户没有pincode,用户如何访问这些文件?假设应用程序未启用文件共享。文件共享用于通过USB或WiFi iTunes同步进行访问。它不提供任何其他保护。如果设备被越狱,则可以通过根文件系统USB访问或通过沙箱之外设备上的任何应用程序访问这些文件。几乎每个iOS的软件保护都取决于它是一个非常有限和封闭的操作系统。当你获得根访问权限时,一切都消失了。包括您可以阅读的全部内容的钥匙链。