iOS App安全性-2

作为开发人员,对我来说下一件大事是数据。 我们在哪里保存数据? 谁可以阅读? 它们是加密的吗?

我决定检查Apple的文档,以了解他们对文件使用哪种安全性。 因此,如果您像我一样好奇,请查阅《 Apple安全指南》。 在文件数据保护中,您将了解它们如何加密所有文件,然后在需要时对其解密。 这太酷了。 那么可以在我们的应用程序中使用它的功能吗? 好吧,为什么不呢! 您可能已经在项目设置中看到了“功能”选项卡。 如果仔细看,将看到“数据保护”部分。

因此,让我们再次检查Apple的文档:

数据保护是一种iOS功能,可用于保护应用文件的安全并防止未经授权的访问。 当用户设置设备的活动密码时,将自动启用数据保护。 您通常可以读写文件,但是系统会在后台对内容进行加密和解密。 加密和解密过程是自动的,并且硬件加速。

这是非常有用和有趣的。 因此,您将有四种保护级别的选择。 但是,如果您仔细阅读,它会说解锁手机后文件将被解密。 这意味着这项出色的技术可以将我们的数据保存在小偷的手中,但可能并非所有黑客都可以。 如果我的手机越狱,当设备解锁时,我可以访问文件和所有内容。

我发现的唯一可能的解决方案是由我自己加密数据,以避免黑客访问数据。 如果您使用CoreData来保存数据,那么处理一切并不是那么容易。 但是我找到了一个可以帮助你的图书馆

project-imas /加密核心数据

v2.0 –使用SQLCipher的iOS Core Data加密SQLite存储– project-imas / encrypted-core-data

github.com

但是,如果您像我们一样使用Realm。 对您来说可能更容易

https://academy.realm.io/posts/tim-oliver-realm-cocoa-tutorial-on-encryption-with-realm/

但这还不是全部。 通常,在我们的应用程序中,我们使用Userdefault来保存和检索数据。 Userdefault基本上是您的应用程序文件夹/ Library / Preferences /下的plist文件。 这意味着在越狱的手机中,我可以访问它并非常轻松地阅读它。 因此,请不要将其用作数据库

让我们继续Keychain 。 我能想象你在说地狱吗? 这肯定是安全的。 好,让我们先看看什么是钥匙串。 根据苹果的文件:

代表用户安全地存储小块数据。

首先。 它不用作数据库。 使用钥匙串的完美方法是将数据库加密密钥保存在其中。 我正在做研究,以寻找是否有办法从钥匙串中获取所有数据,最终 钥匙扣翻斗车

它是从钥匙串中转储的工具。 因此,让我们看看它在我越狱的手机上如何工作:

如您所见,我的iPhone上没有那么多应用程序。 有趣的是,所有钥匙串数据仍然是加密的,但它们是否易碎? 根据我的理解,它们是通过密码加密的。 也许这就是为什么拥有4位数密码不是一个好主意的原因。 但是如您所见,您已获得有关已连接wifi的所有信息。 如果您忘记了可以帮助您的wifi通行证😛