SpriteKit 级数据安全

SpriteKit Level Data Security

我阅读了许多不同的帖子、主题等,了解存储要在整个游戏应用程序中使用的关卡数据(关卡边界数据、图像、角色、时间等)的最佳实践。

我的问题是,任何人都可以建议最好的方法,或者我没有提到的方法吗?是的,我知道它们都是保存大数据的完全有效的方法,特别是 non-trivial 和一些只需要读取的重复数据,并且在 安全性方面都各有利弊 措施。我只是想找到最安全的方法来存储这些数据,而用户不能以任何方式从可能遇到过类似问题并找到理想解决方案的其他人那里篡改它。

注意:我确信托管此数据服务器端并在应用程序启动时检索数据将是理想安全方法.但是,我只是想看看哪种方法应该是 最佳 安全实践 strictly 通过在设备上存储数据。谢谢!

如果您不信任用户,如何签署您不信任的完整性数据并使用 public 密钥加密(在二进制文件中使用固定证书)验证签名?

因此,只能使用具有您有效签名的数据。

然而,毕竟,如果用户反汇编您的二进制文件并修改 public 密钥,那也不起作用。

与这些问题一样,问题是:你让对手破坏你的安全措施的难度有多大 - 什么样的难度才有用?

我知道你已经得到了答案,但我个人使用 GameData Singleton class 和 NSCoding。我将 encoded/archived 数据保存到 iOS 钥匙串中(而不是 NSUserDefaults、NSBundlePath 等)。

要保存到钥匙串中,您可以使用此助手

https://github.com/jrendel/SwiftKeychainWrapper

这是我用于我的应用程序的那个。它的工作原理与 NSUserDefaults 非常相似,因此非常易于使用。

您还可以在此处获得更复杂、功能更丰富的版本。

https://github.com/matthewpalmer/Locksmith