iOS加密可安全使用网络数据

时间:2012-07-13 20:52:19

标签: iphone ios security ssl

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

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

问题是:我拥有云中的数据(我的)。我可以使用SSL连接安全地下载它(保护传输的任何其他想法?)。当我在这里得到它时,我会将它保存在数据库中(核心数据是显而易见的选择)。

如何保护内部数据库中的数据,因此如果应用被黑客攻击,有人无法访问数据库?我会把它放在钥匙串中,但它是一个相当大的数据库,而且 重要。 (这不是明智的信息,只是信息我不希望任何人大量获取。)

我能做的另一件事是永远不要在设备中存储任何内容并让用户始终拨打云端电话,但我认为这样做太费时间了。然后让他选择将​​他们喜欢的选择保存到设备中。但这太耗费时间并且存在同步问题。

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

希望这有帮助,

乔纳森