【问题标题】:Is that safe for data serialized in App with NSCoding?使用 NSCoding 在 App 中序列化的数据安全吗?
【发布时间】:2013-07-24 14:51:59
【问题描述】:

事情是这样的:有一些数据敏感,它们使用 NSCoding 序列化存储在设备中。

我想知道其他人是否可以找到密钥并取消归档序列化目标文件以获取数据?

感谢您的帮助。

【问题讨论】:

  • 如果他们足够聪明,可能会!

标签: iphone ios security serialization nscoding


【解决方案1】:

仅使用 NSCoding 存储敏感数据是不安全的。 NSCoded 值没有以任何方式加密 - 您甚至不需要知道密钥 - 您可以直接查看存储的文件,如果它们是字符串,则可以轻松查看值。

理想情况下,敏感数据(尤其是提供对后端 Web 服务或财务信息的特权访问的 API 访问密钥)根本不应该保存在客户端设备上。即使加密。在极端情况下,在其设备上安装了您的应用程序的黑帽可以发起中间人攻击,并通过您的服务器窥探您的互联网流量。相反,如果担心安全性,您应该采用特定于设备的令牌方法,这样您就可以在必要时撤销令牌,而不会影响其他用户。

如果真的担心,除了令牌之外,您还应该查看两个因素身份验证。

这里是intro 供进一步阅读。

【讨论】:

  • 抱歉 - 刚刚发现这个问题已经 10 个月了。
【解决方案2】:

这取决于。每个应用程序在文件系统上都有自己的“沙箱”。在尚未越狱的设备上,应用程序无法查看其自己的沙箱之外的内容。但是,当用户将他们的设备连接到 Mac 或 PC 时,可以使用实用程序应用程序,例如 iExplorer (http://www.macroplant.com/iexplorer/) 来访问他们设备上每个应用程序的沙盒。

【讨论】:

  • 我想他们已经有了二进制数据文件。问题是是否有一种方法可以反序列化文件并在没有密钥的情况下获取数据。
  • 如果有人可以访问您编译的应用程序和您的数据文件,我认为反序列化数据会很容易。通过“字符串”实用程序运行您的应用程序可能会很快显示密钥(如果它们在数据文件中尚未清晰可见)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
  • 1970-01-01
  • 2016-10-24
  • 2018-01-29
相关资源
最近更新 更多