2012-07-13 48 views
0

我正在开发一个应用程序,非常简单,而且它的重要组成部分,是内容,其中包括大量的信息已经聚集了很多年的。我想以一种很好的方式将其格式化以显示给用户。的iOS加密使用的网络数据安全

当用户下载应用程序并首次加载应用程序时,它会转到服务器以将整个数据库存入手机。然后,他可以看到重要的项目,并通过它们进行排序/筛选。为了避免有人拿我的数据库,我会使用SSL连接。我知道他们是否希望他们可以使用该应用程序逐一查看每一条内容,但没有关于此的内容。

的事情是:我在云(矿)的数据。我可以使用SSL连接安全地下载它(任何其他想法来保证传输?)。当我在这里得到它时,我将它保存在一个分贝(核心数据是明显的选择)。

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

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

这是我抬头有关类似问题的参考,没有我要求回答的部分: How to encrypt iPhone upload and download of info?

回答

1

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

当然,即使你SqlCipher不知何故有存储的关键挑战。没有真正安全的方法来做到这一点 - 你必须使用某种形式的“默默无闻的安全”。

+0

我可以存储在钥匙串钥匙,这就是所谓在iPhone上最安全的部分(它甚至具有硬件加密) – Daniel 2012-07-13 21:46:07

+0

SqlCipher显得相当好用! http://sqlcipher.net/ios-tutorial/你现在可以为iOS准备好150美元。 (我刚与公司见面,只是评论它,因为它与答案有关,可能对未来某个人有用) – Daniel 2012-07-13 21:53:22

1

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

希望这有助于

乔纳森

+0

你是指公钥密码术? – Daniel 2012-07-13 21:45:04

+0

@Daniel我想是的。 – 2012-07-14 10:37:22