3

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

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

但我们有一点不同的情况:

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

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

任何建议和最佳实践表示赞赏。

4

1 回答 1

1

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

于 2015-11-05T02:13:06.750 回答