【问题标题】:How does iOS store persistent data with encryption?iOS 如何通过加密存储持久数据?
【发布时间】:2011-09-22 07:51:13
【问题描述】:

iPhone 应用程序可以加密其存储的数据吗?这样即使是拥有越狱 iOS 设备的用户也无法访问该文件。例如,游戏中心可能与本地数据同步,您不希望用户操纵分数。您也不希望您的 IAP 被规避。

有没有一种简单的方法可以在写入设备之前加密您的数据?

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

  1. 当我使用类似的东西时:[array writeToFile:path atomically:YES];是否有任何自动加密可确保只有我的应用才能正确访问文件?

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

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

【问题讨论】:

  • 请注意,即使在普通的 iOS 设备上,用户也可以访问所有数据(只读)。使用 iPhoneExplorer 之类的应用程序。

标签: iphone ios encryption


【解决方案1】:

在@GrahamLee 对this question 的回答以及security.stackexchange.com 上的其他iOS 标记问题中了解有关iOS 加密的更多信息。

基本总结 - 仅基于 iPhone 控件:

  • 如果有人拥有该设备且该设备未锁定,则他们可以访问所有数据
  • 如果有人拥有设备并且该设备被锁定,他们可以获得大部分数据,甚至可能全部(某些例外情况可能适用)

您可以在存储数据时在您的应用中进行混淆处理并使用加密,但攻击者可以对该加密代码进行逆向工程以进行解密。

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

【讨论】:

  • +1 如果 Apple 投入巨资解决问题,并且完全控制硬件、固件和操作系统,无法阻止设备越狱,那么您无法创建更高层的东西将更加牢不可破。这并不意味着一点点混淆是不值得的,但不要指望它是灵丹妙药。
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
  • 2012-12-01
相关资源
最近更新 更多