私はiOSのセキュリティ専門家ではありませんが、iOSのユーザーデータを使って作業していた経験を共有できます。いかなる訂正/発言も感謝します。
一般に、SSLで保護された接続を使用して、重要なユーザーのデータをリモートに格納することが推奨されます(サーバーバックエンドまたはiCloudを使用する)。あなたが何らかの理由でデータをローカルに保存することを余儀なくされている場合は、ここでいくつかの推奨事項は以下のとおりです。
1)があるとして、これまでDocumentsディレクトリ内またはNSUserDefaults
で重要なデータを保存しないでください。 jailbroken以外のデバイスでも簡単にアクセスできます。たとえば、あなたはiExplorerをチェックすることができます:覚えている限り、それはトリックです。
2)実際にデータをローカルに保存する必要がある場合は、ドキュメントフォルダUserDefaults
またはCoreData
のいずれかを選択して暗号化する必要があります。アルゴリズムの選択はあなた次第ですが、いくつかのiOS組み込みソリューションを使用する方がよいでしょう。
3)データの暗号化には、アプリが復号化するための鍵があることが前提です。キーを保存する最善の方法はKeyChainです。おそらく、それはあなたが外部から盗まれる心配なしにユーザーの認証データのようなキーやその他のものを保存できる唯一の場所です。
これらの手順をすべて実行しても、ユーザーの暗号化されたデータには引き続きユーザーがアクセスできます。暗号化されていない限り、それを読み取ることはできませんが、独自のキーチェーンと何らかのスキルにアクセスすると、上級ユーザーは最終的に元のデータを取得できます。さらに、それは依然として損傷する可能性があります。したがって、データの破損や削除を防ぐ観点からは、バックアップやデータ自体を遠隔地のどこかに保存する必要があります。
あなたはどのレベルのユーザーを保護していますか?攻撃者と攻撃者のスキルレベルを決定するには、基本的には十代の若者から十分に資金を提供されている国家の範囲です。 – zaph