【发布时间】:2012-11-26 17:27:53
【问题描述】:
已编辑
好吧,抛开投反对票并不能真正帮助解决问题。如果您没有任何有用的内容要说并且您对问题不感兴趣,只需更改页面即可。如果您有想法或只是对了解不同的方法感兴趣,那么欢迎您的评论,即使它不完美或只是一个尝试的想法
问题:
我需要将应用程序数据存储在 iPhone 应用程序中。
我们最初使用经典的 NSDocumentDirectory 路径存储数据...但是这种方法有多“安全”?
如果不考虑越狱设备(我目前对此不感兴趣),似乎任何用户(在任何正版设备上)都可以使用简单的 iPhone 浏览软件导航到该文件夹并弄乱内容,有效地破解它。
如果是这种情况,用于存储安全通用数据(在这种情况下不一定是密码)的最佳“位置”或“方法”是什么。
即使在这些情况下,KeyChain 是正确的方式还是有更好/替代的方式?
注意事项和核心问题:
我知道使用密钥等加密和保护数据。我不是在谈论“混淆或保护其内容”
这里的问题是不同的。所以让我们这样说:
“您如何避免用户可以访问存储文件(数据、加密文件、sql 文件、您喜欢的任何内容)的文件夹,并以任何方式将它们弄乱(这可能是删除它们、复制它们) ,使用十六进制编辑器访问它们并修改值,无论如何)。
这不是他们用它做什么的重点,而是更严格的如何确保用户根本无法接触到他们“
谢谢
【问题讨论】:
-
我理解您在获得反对票时的沮丧(尤其是那些拒绝留下建设性反馈的人),但反对票确实有助于未来的访问者评估问题。我们中的许多人都有过无法解释或有争议的否决票,我只能说这一切都在洗礼。不要担心孤立的反对票。在这种情况下,我只能猜测他们认为它不符合FAQ guidelines。我不知道。如果您想了解为什么会这样投票,您可以在Meta 上征求反馈意见。
-
在回答您的问题时,我认为解决方案通常是加密和/或数字签名的组合,或者以其他方式引入您的应用数据的一些 CRC,这样您就可以确保数据没有被更改,或者如果有,允许您识别这种情况并生成相应的错误。假设您无法阻止访问/更改,但至少识别它并优雅地处理它,这可能是谨慎的。不过,通常情况下,加密过程在功能上既可以防止不法分子读取您的数据,也可以识别数据是否已被更改。
-
感谢您抽出宝贵时间 Rob :)。关于投票,挫败感来自这样一个事实,即经常有人对该主题知之甚少,认为问题很明显,并且没有努力(或能力)去思考也许有一些不太明显的东西代表真正的问题。如果你想要一个平行线,就像某人在 C++ 知识方面的得分为 10/10,仅仅是因为他们实际上根本不知道,只是因为他们认为他们所知道的实际上就是所有需要的东西已知 :) 而且我们知道这很少是真的。
-
@RiccardoTramma 你得到解决方案了吗?