【问题标题】:Are ios local database in apps secured? How to secure them?应用程序中的 ios 本地数据库是否安全?如何保护它们?
【发布时间】:2017-01-04 11:35:49
【问题描述】:

在 2017 年,我想为 iphone/ipad 制作一个 ios 应用程序,其中我将拥有一个数据库。 该数据库是 7 年研究的成果。这个数据库对我们非常重要。如果它被盗,可能会毁掉我们的业务。

我们的想法是一款医疗应用。 用户输入他们的症状,它会查询给出疾病的数据库。

一位开发人员告诉我无法保护数据库。所以它的提议很简单:在本地询问症状,然后生成一个发送到服务器(互联网)的代码。服务器读取代码并处理查询并将结果发回。安全性是在服务器上完成的,而不是在 ios App 上。我不喜欢那个解决方案,因为它不是本地的。

另一位开发人员告诉我这是可能的。数据库在 RAM 中加密和解密。它是高度安全的。至少和服务器一样安全。

我不知道该怎么想,但我真的很想拥有你的灯。

我希望数据库高度安全,并且应用程序可以在本地运行(没有互联网)。

感谢您的帮助

PS:我忘了补充说用户从不写数据库。他们只是在使用它......

【问题讨论】:

标签: ios database


【解决方案1】:

在我的开放中

如果数据极其敏感,则永远不应将其离线存储在设备上,因为所有设备都是可破解的。 钥匙串是安全存储数据的一种选择。然而,它的加密是基于设备的密码。用户没有强制设置密码,因此在某些情况下,数据甚至可能没有被加密。此外,用户的密码可能很容易被黑客入侵。 更好的解决方案是使用 SQLCipher 之类的东西,它是一个完全加密的 SQLite 数据库。加密密钥可以由应用程序强制执行,并与用户的密码分开。 其他安全最佳做法是:

仅通过 SSL/HTTPS 与远程服务器通信。 如果可能,在应用程序中实施证书固定,以防止对公共 WiFi 的中间人攻击。 通过覆盖将敏感数据从内存中清除。 确保所有提交数据的验证也在服务器端运行。

【讨论】:

  • 感谢您的回答。您写道“所有设备都是可破解的”,但所有服务器也是 :-) SQLCipher 应该有助于确定,但它是否比连接到远程服务器更安全?
  • 当然可以,请参阅下面链接中的安全部分zetetic.net/sqlcipher/design
猜你喜欢
  • 2023-04-08
  • 2013-08-16
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2017-11-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
相关资源
最近更新 更多