【问题标题】:ios not enforcing encryption security parametersios不强制加密安全参数
【发布时间】:2018-04-24 01:48:57
【问题描述】:

我正在尝试加密我的 ios 应用程序中的一些文件,以防止手机越狱的人访问我的应用程序文件的内容。

我正在使用 Apple 文档中的 Encrypting Your App's Fileshttps://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy/encrypting_your_app_s_files

所以我用这个来写文件

let data = "hello".data(using: .unicode)!
try! data.write(to: fileURL, options: .completeFileProtection)

根据文档,这个选项意味着:

完成。只有在设备解锁时才能访问该文件。

所以在 applicationDidEnterBackground 方法中的 AppDelegate 中,我添加了等待 5 秒(为设备完全锁定提供时间)并访问文件的代码:

Thread.sleep(forTimeInterval: 5.0)
let data = try! Data(contentsOf: fileURL)
print(String(data: data, encoding: .unicode)!)

我在真机上试了一下,锁了手机,等了5秒,数据读取OK!我原以为阅读会失败。

我错过了什么?

PS:这种方法真的能保证越狱设备的文件在文件系统中不可读吗?

【问题讨论】:

  • 您不能从知道设备密码的人那里投射文件,无论是否越狱。文件保护保护静态数据免受没有密码的攻击者的攻击。但是,根据您的测试结果,该设备当时似乎没有被锁定。

标签: ios swift


【解决方案1】:

我发现project -> capabilities下有个设置可以开启数据保护。它已关闭,因此数据未加密:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 2020-01-22
    相关资源
    最近更新 更多