2011-09-22 30 views
1

iPhone应用程序可以加密其存储的数据吗?因此,即使是使用Jailbroken iOS设备的用户也无法访问该文件。例如,游戏中心可能会与本​​地数据同步,您不希望用户操纵分数。你不希望你的IAP被绕过。iOS如何通过加密存储持久数据?

在写入设备之前是否有简单的方法来加密数据?

也许我的问题不是很清楚。他们是:

  1. 当我使用像这样的东西:[array writeToFile:path atomically:YES];有没有任何自动加密,以确保只有我的应用程序可以正确访问文件?

  2. 如果不是,实现它的最简单方法是什么?

PS:现在我发现的NSData可以做的工作,但NSDataWritingFileProtectionComplete标志要求#if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED。我想知道在不支持的设备上会发生什么?

+0

即使在正常的iOS设备上,用户也可以访问所有数据(只读)。带有像iPhoneExplorer这样的应用程序。 – rckoenes

回答

2

更多信息,@ GrahamLee的回答this question和其他iOS标签的问题上security.stackexchange.com

基本概述 - 基于iPhone单独控制:

  • 如果有人有设备并没有被锁定,就可以访问所有的数据
  • 如果有人有设备,并将其锁定,他们可以得到大部分数据,以及可能所有(有一些例外可能适用)

你可以混淆,并且存储数据时,你的应用程序中使用加密,但是攻击者可以反向工程的加密代码解密。

您需要计算出此类DRM技术的价值,并决定在这种情况下它们是否值得。

+0

+1如果苹果对这个问题投入巨大的预算以及对硬件,固件和操作系统的完全控制不能防止设备被越狱,那么您可以在更高层创建一些东西是不可思议的,将更加牢不可破。这并不意味着一层混淆不值得,但不要指望它是一颗银弹。 –