为什么钥匙串比保存在文件中的encryption数据更安全?

为什么钥匙串比在iOS应用程序的文档目录中保存为文件的encryption数据更安全。

通常,数据使用对称encryptionalgorithm(如AES)进行encryption,encryption密钥保存在钥匙串中。 数据可以放在任何文件位置,保护是通过encryptionalgorithm和密钥。

钥匙串存储encryption的密钥(和其他小数据)并限制对该数据的访问。 另外在最近的iPhone(5S和更高版本)中,钥匙链位于独立的处理器中,即安全的Enclave,它另外限制了访问。 没有更安全的方式来在iOS中存储密钥。

文档文件夹可以通过使用iExplorer和其他第三方应用程序访问。

实际上,按照苹果推荐,钥匙链仅用于小块数据。

大多数移动应用程序必须与需要validation的Web服务交互。 服务通常需要身份validation来提供个性化内容(如社交networking)或限制访问敏感信息(如公司数据)。 通常情况下,身份validation需要用户名和密码。 大多数iOS应用程序将这些凭据存储在Keychain中 – 这是由Apple为iPhone和iPad应用程序提供的密码pipe理系统,用于安全地存储用户名,密码,令牌,证书,非对称encryption私钥等敏感信息以及秘密密钥对称encryption。

本文将介绍当公司资源存储在iOS Keychain中时保护对公司资源的访问所需的信息,以及让安全意识强的个人保护存储在Keychain中的个人密码。

有一些情况会影响应用程序在钥匙串中存储的数据的安全性:

设备上的密码的存在和强度,分配给应用的钥匙串项目的访问限制,无论设备是否越狱在设备中使用的芯片组

钥匙串数据也可以用与文档目录中的数据类似的方式encryption。 钥匙串不能容纳大量的数据。

文档目录使得数据不安全,因为可以通过方法调整轻松访问数据,并且可以打破encryption。 钥匙串中的数据消除了这个缺点,并encryption,为数据提供了更好的安全性。