2012-11-26 20 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,但我正在尋找一個更嚴格的解決方案。我編輯了這個問題,以澄清我想解決的問題。讓我知道你是否需要更多信息。 –