我很感激有人能说清楚我对Data Protection
功能的一些问题:
是否需要/建议启用Data Protection
加密和保护SQLite
管理的Core Data
文件?如果是这样,我该怎么做才能加密和保护这些文件?
我遵循了使用Keychain
的教程,并且说必须为Data Protection
中的应用ID启用完整级别的Apple Member Center
,以便我这样做。但是,它没有说明在Data Protection
项目中启用Xcode
,所以我没有。我似乎可以毫无问题地访问我的iOS应用中的Keychain
,但这看起来很奇怪......我是否应该在目标设置中启用Data Protection
?
非常感谢
答案 0 :(得分:0)
这取决于您在那里存储的内容,因此如果有人获得访问权限,则存在风险。在大多数情况下,您不需要专门加密数据库中的数据,因为有人将使用设备锁来保护设备,并且您要保证安全的任何特定数据都应存储在钥匙串中。这通常是用户识别数据和帐户身份验证令牌。
如果有人可以访问已解锁的设备(密码/触摸ID已被清除或验证),那么他们可以使用设备(密钥链和自动加密的数据)做任何他们想做的事情,你可以不要阻止它们(充其量你可以放慢速度)。
您唯一能做的就是使用每次需要加密/解密时由用户明确输入的密钥显式加密需要它的数据。该密钥可以临时存储在内存中,但您永远不能将其写入磁盘。这样,用户必须输入密钥才能使用数据,密钥只能来自用户。