【问题标题】:iOS Secure File Storage IssueiOS 安全文件存储问题
【发布时间】:2016-03-21 21:20:31
【问题描述】:

我有一个 iOS 应用程序,它通过 RESTful Web 服务与 PDF 文档数据库保持同步。基本上,该应用程序会下载一些我存储到我的应用程序文件系统中的 PDF。

我正在使用 Library/Caches 目录。

NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)

我的要求是存储文件,以便用户无法以任何方式访问它们。当我编写文件时,我还提供了选项:NSDataWritingFileProtectionComplete

[decodedFile writeToFile:newFilePath options:NSDataWritingFileProtectionComplete error:nil];

但是,我仍然可以通过设备访问文件 -> 选择我的应用程序 -> 下载容器...

我需要配置应用程序,使下载的内容不能被应用程序本身访问。一定有办法做到这一点,但我一直找不到任何东西......?

【问题讨论】:

    标签: ios file security storage


    【解决方案1】:

    这不是一个可以解决的问题。如果这是一个可以解决的问题,那么苹果阻止越狱将是微不足道的。他们只会在用户无法访问的任何地方编写系统验证密钥。尽管 Apple 控制了生态系统的每一个部分,但越狱是可能的,这一事实应该考虑到您保护已写入用户设备的数据不被该用户访问的机会。

    这已经讨论过好几次了,包括关于你实际上可以做什么和什么值得做的想法(没有什么会是 100%;没有什么会是 90%)。您可以查看此问题的先前版本以了解更多信息。 Secure https encryption for iPhone app to webpage 是一个很好的起点,因为它包含指向其他几个的链接。

    【讨论】:

    • 感谢您的信息。我不关心越狱实例。我只是想让它变得更加困难,甚至在理想情况下对于非越狱实例来说是不可能的。我知道总有办法,但简单地将手机连接到 mac 并进入 Xcode 并能够在 2 分钟内下载文档是不可接受的。必须有办法解决这个问题。我会看看你提供的链接...
    • 如果目标只是“让它变得更难一点”,那么它是非常微不足道的(与“无法以任何方式访问它们”相反,这是不可能的)。使用隐藏在应用程序中的随机密钥加密数据。任何具有中等技能的强烈动机都可以打破它,但它适用于您描述的情况。我知道很多团队以这种方式使用 RNCryptor。 github.com/RNCryptor
    • 实际上我最终做的事情更加微不足道......在添加 PDF 的服务器端,我正在向文档添加密码。在 iOS 应用程序中,我使用相同的密码打开文档。如果有人要转储文件,他们将不知道密码。问题解决了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 2017-06-03
    • 2017-03-27
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多