2012-11-26 21 views
6

EDITED安全应用方面的数据iPhone

好吧,抛开在投票负不解决问题的真正帮助。如果您没有任何有用的话并且您对问题不感兴趣,只需更改页面即可。如果你不是有想法,或者你是知道不同的做法只是有兴趣,那么你的评论是值得欢迎的,即使它是不完美的,或者它仅仅是一个想法实验

问题:

我需要将应用程序数据存储在iPhone应用程序中

我们最初使用经典的NSDocumentDirectory路径存储数据......但这种方法的“安全”是如何?

不考虑越狱的设备(我不感兴趣,在目前战斗这一点),似乎任何用户(任何真正的设备上)可以使用一个简单的iPhone浏览软件,浏览到该文件夹​​并弄乱内容,有效地入侵它。

如果是这种情况,为了存储安全通用数据(在这种情况下不一定是密码),最好使用“地点”或“方法”。

即使在这些情况下还是有更好的/替代的方式,它是否是KeyChain的一种正确方法?

注意和核心问题:

我知道加密和保护关于“混淆或保护他们的内容”

这里的问题是不同的钥匙等。我不是说数据。所以,让我们这样说吧:

“你如何避免用户可以访问存储文件(数据,加密,sql文件,任何你喜欢的文件)的文件夹,并以任何方式将它们搞乱(这可能是除去它们,将它们复制,用十六进制编辑器访问它们和修改值,等等)。

这不是他们做什么与它点,而是一个甚至更多的限制如何确保用户不能达到他们在所有”

感谢

+0

我明白你对投票的拒绝(尤其是那些拒绝留下建设性反馈的投票),但倒票确实有助于未来的访问者评估问题。我们中的许多人都有不明原因的或有争议的反对票,我可以说的是,这一切都是在洗手中出来的。不要担心孤立的投票。在这种情况下,我只能猜测他们认为它不符合[FAQ指南](http://stackoverflow.com/faq)。我不知道。如果你需要反馈为什么这样投票,你可以在[Meta](http://meta.stackoverflow.com/)上征求反馈意见。 – Rob

+1

在回答你的问题时,我认为解决方案通常是加密和/或数字签名或以其他方式引入应用程序数据的一些CRC的组合,以便确保数据未被更改,或者如果已经允许您可以识别这种情况并生成适当的错误。假设您无法阻止访问/更改,但至少可以识别并妥善处理,这可能是谨慎的做法。然而,通常,加密过程在功能上既可以防止不道德的人阅读你的数据,也可以识别它是否被改变。 – Rob

+0

感谢您的时间罗布:)。 关于投票的沮丧来自于这样的事实:对某个主题不够了解的人往往认为这个问题是显而易见的,而且没有任何努力(或能力)认为可能不太明显代表真正的问题。如果你想要一个平行的东西,就好像某人在C++的知识中得分为10/10,仅仅因为他们根本不知道它,只是因为他们认为他们知道的实际上是一切需要的知道:)而且我们知道这个ir很少是真的。 –

回答

4

您可以使用加密算法来保护数据并将其保存在文档字典中的sqlite数据库或文件中。

请看这个application,这个应用说明AES算法使用安全密钥来加密或解密数据。从仓库AES256AndBase64在应用程序

使用Helper类, #import "NSString+AESCrypt.h"在您需要的文件。

使用AES256EcryptWithKey:AES256DecryptWithKey:方法来加密/解密数据:

NSString* [email protected]"Steve Job"; 

NSLog(@"Normal String- %@",dummyString); 

NSString* [email protected]"apple"; 

NSString *encryptString = [dummyString 
           AES256EncryptWithKey:encrypt_decrypt_Key]; 

NSLog(@"Encrypt String- %@",encryptString); 

NSString *decryptString = [encryptString 
          AES256DecryptWithKey:encrypt_decrypt_Key]; 

NSLog(@"Decrypt String- %@",decryptString); 

或者,如果你使用的是iOS 5及以上的有看看这个blog

+0

嗨,Mayur,谢谢你的回答,但我试图解决一个不同的问题。我编辑了这个问题以更好地解释它。 让我知道你是否需要更多关于它的信息。 但基本上我在寻找的是如何拒绝任何类型的数据访问。 –

0

我不确定,但删除iPhone中的应用程序后,键链接值不会被删除。

加密是1方法。或者你可以尝试一些散列算法,如SHA或MD5来散列你的数据。散列之后,将数据和散列数据保存到NSDocumentDirectory。而当你需要你的数据时,通过查看散列数据来检查它的变化与否。

+0

感谢您的评论Arda,但我正在寻找一个更严格的解决方案。我编辑了这个问题,以澄清我想解决的问题。让我知道你是否需要更多信息。 –