【问题标题】:Is Core Data BLOB data encrypted when stored in "External Storage"?Core Data BLOB 数据存储在“外部存储”中时是否加密?
【发布时间】:2012-05-24 17:25:35
【问题描述】:

我正在使用 Core Data 来存储一些敏感信息。到目前为止,我已经对 Persistent Store Coordinator 使用的 SQLite 文件应用了硬件文件加密。我通过设置它的文件属性(NSFileProtectionKey 到 NSFileProtectionComplete)来做到这一点。

我将一些图像数据作为二进制数据存储在核心数据库中,并且我已选中“允许外部存储”和“存储在外部记录文件中”以防止我的 SQLite 数据存储膨胀并提高性能。

我假设 Core Data 自动存储在 SQLite 数据库之外的数据文件不会被加密,我需要自己加密这些文件。有谁知道这是否正确?

谢谢

【问题讨论】:

  • 虽然没有直接关系,但您应该知道 sqlite 会为未加密的事务创建临时文件,因此如果您的应用程序在执行数据库读/写时崩溃,则数据将可用。跨度>
  • @HampusNilsson - 嗯......我没有考虑过的事情。一些值得深思的食物。谢谢。

标签: iphone ios core-data encryption


【解决方案1】:

幸运人777,

当用户使用屏幕锁定时,每个预装的 iOS 版本都会对每个文件进行硬件加密。关于你关于外部核心数据存储的问题,你为什么不看看文件呢?将数据从手机移动到开发系统非常简单。然后尝试打开其中一个外部文件。我希望它是加密的。 (如果不是,那是 Core Data 加密政策中一个相当大且明显的漏洞。我怀疑它是否存在。)

安德鲁

【讨论】:

  • adonoho - 感谢您的反馈。我很确定虽然硬件加密并非对所有文件都是自动的。这就是为什么像 Persistent Store Coordinator 这样的文件要求您将其属性设置为 NSFileProtecioNone 值(默认值)以外的值。如果它们位于库文件夹中,您能否告诉我如何查看开发设备上的文件?如果我使用模拟器,我可以在我的 Mac 上看到文件没有问题。非常感谢。
  • luckman777,您的 Xcode Organizer 允许您下载应用程序的所有沙箱。安德鲁
【解决方案2】:

隐藏,但未加密! 它当前 (iOS 11.2) 保存数据的文件夹位于 Documents/.SingleViewCoreData_SUPPORT/_EXTERNAL_DATA
在那里,您可以看到所有文件,但它们的扩展名没有标记名称。但是,所有数据都没有改变。您只需添加文件扩展名或使用正确的应用程序即可查看任何文件。

是的,屏幕锁定时设备数据被加密,但连接到 Xcode,您可以非常轻松地下载容器并访问所有数据。如果您的应用程序包含敏感数据,则“设备已加密”将根本不存在。 只有SingleViewCoreData.sqlite 文件似乎已加密。

【讨论】:

    猜你喜欢
    • 2013-06-08
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2013-07-05
    • 2020-07-27
    • 2017-11-12
    相关资源
    最近更新 更多