Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SpriteKit级数据安全_Ios_Security_Encryption_Plist - Fatal编程技术网

Ios SpriteKit级数据安全

Ios SpriteKit级数据安全,ios,security,encryption,plist,Ios,Security,Encryption,Plist,我一直在阅读许多不同的帖子、帖子等,了解在整个游戏应用程序中存储关卡数据的最佳实践(关卡边界数据、图像、角色、时间等) 许多人建议使用属性列表(.plist)是合适的,因为存储游戏信息然后在需要时读取它非常简单。虽然这很容易创建和引用,plist文件在任何方面都不完全是安全的,除了简单的AES加密字符串内容之外 另一种方法可能是将这些数据硬编码到一个单独的类文件中,名为LevelData.m,并直接引用类来读取级别数据,因为以这种方式存储数据应该“更安全”,因为(据我所知)例如,一旦应用程序通

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

  • 许多人建议使用
    属性列表(.plist)
    是合适的,因为存储游戏信息然后在需要时读取它非常简单。虽然这很容易创建和引用,
    plist
    文件在任何方面都不完全是安全的,除了简单的AES加密字符串内容之外
  • 另一种方法可能是将这些数据硬编码到一个单独的类文件中,名为
    LevelData.m
    ,并直接引用类来读取级别数据,因为以这种方式存储数据应该“更安全”,因为(据我所知)例如,一旦应用程序通过iOS应用商店打包和分发,用户就无法直接或根本无法访问这些类文件
  • 我还阅读了使用SpriteKit内置的NSCoding,其中数据可以归档到文件(或NSData对象)中,然后从该归档中取消归档
我的问题是,有谁能建议最好的方法,或者我没有提到的方法吗?是的,我知道它们都是保存大数据的非常有效的方法,特别是非琐碎的、需要读取的重复数据,并且在安全措施方面都有其优缺点。我只是想找到最安全的方法来存储这些数据,而不让用户以任何方式从其他可能遇到类似问题并找到理想解决方案的人那里篡改数据


注意:我确信托管此数据服务器端并在应用程序启动时检索数据将是理想的安全方法。然而,我只是想通过在设备上存储数据,看看哪种方法在安全性方面应该是最好的。谢谢

如果您不信任用户,那么对您不信任的完整性数据进行签名,并使用公钥加密(使用二进制中的固定证书)验证签名如何

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

然而,毕竟,如果用户伪装你的二进制文件并修改公钥,那也不行


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

如果你不信任用户,那么对你不信任的完整性数据进行签名,并使用公钥加密验证签名如何(使用二进制文件中的固定证书)

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

然而,毕竟,如果用户伪装你的二进制文件并修改公钥,那也不行


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

我知道你已经得到了答案,但我个人使用GameData Singleton类进行NSCoding。我不想将编码/存档的数据保存到iOSs密钥链中(而不是NSUserDefaults、NSBundlePath等)

要保存到钥匙链中,可以使用此帮助器

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

你也可以在这里得到一个更复杂和功能更丰富的


我知道你已经得到了答案,但我个人使用GameData Singleton类进行NSCoding。我将编码/归档的数据保存到iOSs密钥链中(而不是NSUserDefaults、NSBundlePath等)

要保存到钥匙链中,可以使用此帮助器

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

你也可以在这里得到一个更复杂和功能更丰富的


没错-我知道总有人愿意通过任何和所有的保护手段来工作。我只是希望能够使用AES级别的加密尽可能轻松地存储我的数据。我不太确定使用签名验证的意思。这与仅仅加密数据有什么不同吗?是的,是的。不过,要解释一下在这种情况下,security.SE可能是正确的位置,因为加密很难,并且是对(a)的解释对称加密和差异确实超出了SO的限制。我不太确定security.SE是什么-这只是增强了安全性吗?确切地说-我知道总有人愿意通过任何和所有保护手段来工作。我只是希望能够使用AES级别的加密尽可能轻松地存储我的数据。我不太清楚确定您使用签名验证的意思。这与仅加密数据有什么不同吗?是的,是的。不过,为了解释这一点,security.SE可能是正确的位置,因为加密很难,并且是对(a)的解释对称加密和差异确实超出了SO的限制。我不太确定security.SE是什么-这只是增强了安全性吗?创建一个包含关卡数据的类并从中提取关卡数据是不明智的吗?我不这么认为。我相信最重要的是游戏数据如何存储在您的设备上。如果您使用NSUserdefaults或者Plist,我认为人们可以更改保存的数据,因为它是纯文本且未加密的。我还没有使用关卡数据的游戏,但据我所知,应该是相同的想法。我明白了-我的意思是,我将存储特定关卡的数据(敌人计数、对象、等等),其中,用户创建的每个级别的实际用户数据都通过普通加密进行加密和保存。我觉得将级别数据硬编码到类中应该足够安全吗?(防止任何人更改每个级别应包含的内容)我想是的,我在这方面也是个新手