0

我正在开发一个非常简单的应用程序,它的重要部分是内容,它由多年来收集的大量信息组成。我想以一种很好的方式对其进行格式化以向用户展示。

当用户下载应用程序并首次加载时,它会转到服务器以将整个数据库导入手机。然后,他可以看到重要的项目,并对它们进行排序/过滤。为了避免有人拿走我的数据库,我将使用 SSL 连接。我知道如果他们愿意,他们可以使用该应用程序来逐个查看每条内容,但对此无能为力。

问题是:我有云中的数据(我的)。我可以使用 SSL 连接安全地下载它(有什么其他方法可以确保传输安全吗?)。当我在这里得到它时,我会将它保存在一个数据库中(Core Data 是显而易见的选择)。

如何保护内部数据库中的数据,所以如果应用程序被黑客入侵,有人无法访问数据库?我会把它放在钥匙串中,但它是一个相当大的数据库,它并不那么重要。(这不是明智的信息,只是我不希望任何人大量获取的信息。)

我可以做的另一件事是永远不要在设备中存储任何东西,并且让用户总是调用云,但我认为这太耗时了。并让他选择将​​他们最喜欢的选择保存到设备中。但这太耗时了,而且存在同步问题。

这是我查找的关于类似问题的参考,但没有回答我要回答的部分: 如何加密 iPhone 上传和下载信息?

4

2 回答 2

1

基本上,唯一的选择是使用 SqlCipher。当然,您必须自己将其移植到 iPhone 上(除非我上次查看后有人发布了移植)。但这不是一项不可逾越的任务。

当然,即使使用 SqlCipher,您也面临着以某种方式存储密钥的挑战。没有真正安全的方法可以做到这一点——你必须使用某种形式的“默默无闻的安全”。

于 2012-07-13T21:05:24.393 回答
1

为什么不在代码中存储一些私钥信息,然后当你想下载数据库时,只需让它用密钥查询服务器?这样您就无需担心下载部分的 SSL 或加密。关于存储它,我同意 Hot Licks,SqlCipher 似乎是最好的也是唯一的选择。但是请注意加密,因为您必须向苹果申报并获得各种出口许可证(http://stackoverflow.com/questions/2135081/does-my-application-contain-encryption)。

希望这可以帮助,

乔纳森

于 2012-07-13T21:13:55.907 回答