为iPhone上的SQLite数据库提供轻量级保护

时间:2012-10-17 16:04:14

标签: iphone ios security sqlite encryption

关于如何在iPhone上保护SQLite数据库,有很多问题。这些问题主要是关于:

  • 防止数据篡改;
  • 使用应由用户输入的密码保护用户的个人数据。

但我们的情况有点不同:

  • 我们有一个与sqlite数据库一起分发的应用程序;
  • 数据库包含公开信息,但在一个地方收集所有信息需要付出一些努力,我们不希望竞争对手有一种简单的方式来访问我们的数据;
  • 所有数据库内容都可通过应用程序UI获得,基本上应用程序的目的是很好地呈现该数据。因此可以通过UI重新创建数据库,而每条记录大约有50k条记录x 40个字段,每个版本都会更新,因此手动搜索需要一些时间。此外,可能使用一些自动屏幕抓取来提取数据,但同样需要一些努力;
  • 由于上一点,我们不是在寻找一些工业级数据保护,我们只是想阻止任何人访问越狱设备上的应用程序包并将数据库复制出来。

我认为我们需要对列内容进行某种奇特的混淆。可能我们应该使用应用程序独有的一些密钥来加密列,并且任何其他人都无法访问(如果AppStore中存在此类密钥)。

感谢任何建议和最佳做法。

1 个答案:

答案 0 :(得分:1)

回答我自己的问题 - 最终我们使用了 SQLCipher ,它运行良好,性能影响可以忽略不计,而破解它可能比屏幕抓取应用程序更难。