6

編集済み

わかりました、反対票を投じることは問題の解決に実際には役立ちません。有益な発言がなく、問題に興味がない場合は、ページを変更してください。代わりにアイデアがある場合、または単にさまざまなアプローチを知ることに興味がある場合は、たとえそれが完璧でなくても、または単に実験するアイデアであっても、コメントを歓迎します

問題:

アプリケーション データを iPhone アプリに保存する必要があります。

最初は従来の NSDocumentDirectory パスを使用してデータを保存していましたが、この方法はどの程度「安全」なのでしょうか?

ジェイルブレイクされたデバイスを考慮せずに(現時点ではこれと戦うことに興味はありません)、単純なiPhoneブラウジングソフトウェアを使用して、すべてのユーザー(正規のデバイス)がこのフォルダに移動し、コンテンツを台無しにして、効果的にハッキングできるようです.

この場合、安全な汎用データ (この場合はパスワードとは限りません) を格納するために使用する最適な「場所」または「方法」は何ですか。

これらの場合でもキーチェーンは正しい方法ですか、それともより良い/代替の方法はありますか?

注とコアの質問:

キーなどを使用したデータの暗号化と保護については知っています。「コンテンツの難読化または保護」については話していません。

ここで問題は異なります。したがって、次のように入れましょう。

「ユーザーがファイル(データ、暗号化された、SQLファイル、好きなもの)が保存されているフォルダーにアクセスできず、何らかの方法でそれらを台無しにすることをどのように回避しますか(これは、それらを削除、コピー、アクセスする可能性があります16進エディタを使用して値を変更するなど)。

彼らがそれで何をするかが重要ではなく、代わりに、ユーザーがそれらにまったく到達できないことを確認する方法をさらに制限します。」

ありがとう

4

2 に答える 2

4

暗号化アルゴリズムを使用してデータを保護し、sqliteデータベースまたはドキュメント辞書のファイルに保存できます。

このアプリケーションをご覧ください。このアプリケーションでは、安全なキーを使用してデータを暗号化または復号化するAESアルゴリズムについて説明しています。

アプリケーション の必要なファイルで、リポジトリAES256AndBase64のヘルパークラスを使用#import "NSString+AESCrypt.h"します。

データを暗号化/復号化するための使用AES256EcryptWithKey:と方法:AES256DecryptWithKey:

NSString* dummyString=@"Steve Job";

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

NSString* encrypt_decrypt_Key=@"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以降を使用している場合は、このブログをご覧ください。

于 2012-11-26T17:54:03.167 に答える
0

よくわかりませんが、iPhone でアプリを削除した後、キー チェーンの値は消去されません。

暗号化は 1 つの方法です。または、SHA や MD5 などのハッシュ アルゴリズムを試して、データをハッシュすることもできます。ハッシュ後、データとハッシュされたデータの両方を NSDocumentDirectory に保存します。また、データが必要な場合は、ハッシュされたデータを見て、変更されているかどうかを確認してください。

于 2012-11-26T19:26:31.017 に答える