如何使用Core Data正确加密信息

时间:2014-03-20 03:49:49

标签: database core-data encryption

我正在开发一个管理敏感信息的应用。出于这个原因,我想给用户提供创建密码来加密数据的选项。此信息仅保存在设备中;我们的想法不是通过网络加密和发送数据,而是为了防止对设备具有完全访问权限的其他人访问它。

现在,我不知道的是,在保存之前我是应该加密整个数据库还是只加密每个条目。加密数据库的推荐方法是什么?

1 个答案:

答案 0 :(得分:1)

迭,

加密数据是一个微妙的问题。

首先,做一些简单的事情。打开Apple的文件安全性。这可能会比你能写的任何东西都更省力。它可能提供您在设备上真正需要的所有安全性。如果它没有,你应该确切地知道它没有提供什么。这将是编写特殊用途代码的主要原因。 Apple最近发布了一篇关于iOS安全性的优秀白皮书。我们都应该读它。

其次,安全性以微妙和非显而易见的方式被打破。这不是解决加密问题然后希望最好的问题。您如何处理其他设备的密钥分发?你打算如何处理丢失的钥匙?你相信Apple的钥匙串吗? (他们是否已经在#34; goto fail;"?)

之后修复了他们的流程

我认识的大多数安全人员处理这些问题的方法是建立详细的使用场景。然后实现代码以查看设计是否有用。然后要求他们的朋友和顾问在设计中挖洞;修好洞,直到你有信心"在你的设计中。如果您不熟悉安全性,并且根据问题的性质,我认为您对该领域相对较新,那么您应该 NOT 对您的设计充满信心。您现在需要使用更简单的代码和更简单的流程重新实现您的设计。然后把它放在真实用户面前。他们将向您展示您的安全流程如何在真正的手中失败。糟糕的安全设计已经杀死了许多产品,它可以杀死你的产品。

我会非常小心。使用Apple已经精心设计的产品。认真问自己是否需要更多。询问您的管理层他们希望在安全方面花多少钱?询问您的用户安全的麻烦对他们有多重要?我怀疑这两个问题的答案是:不,他们不想为安全付费或打扰。

因此,做一些简单的事情:使用Apple的iOS安全性。

匿名, 安德鲁