2017-02-01 4 views
0

私は、ユーザーの仮想購入を追跡するデータを、アプリケーションのサンドボックスのDocumentsディレクトリに保存しています。明らかな理由から、私はユーザーがこのファイルにアクセスしたり、そのファイルを操作できるようにしたくありません。ユーザーはiOSサンドボックス内のドキュメントディレクトリにアクセスできますか?

これは、これらのファイルを保存する適切なディレクトリですか?ユーザーがアクセスできないファイルをどこに保管できますか?

アップルのこのlinkは、このようなデータがライブラリディレクトリに保存されることを示唆しています。ユーザーがアクセスしても安全かどうかはわかりません。

+0

あなたはどのレベルのユーザーを保護していますか?攻撃者と攻撃者のスキルレベルを決定するには、基本的には十代の若者から十分に資金を提供されている国家の範囲です。 – zaph

答えて

1

私はiOSのセキュリティ専門家ではありませんが、iOSのユーザーデータを使って作業していた経験を共有できます。いかなる訂正/発言も感謝します。

一般に、SSLで保護された接続を使用して、重要なユーザーのデータをリモートに格納することが推奨されます(サーバーバックエンドまたはiCloudを使用する)。あなたが何らかの理由でデータをローカルに保存することを余儀なくされている場合は、ここでいくつかの推奨事項は以下のとおりです。

1)があるとして、これまでDocumentsディレクトリ内またはNSUserDefaultsで重要なデータを保存しないでください。 jailbroken以外のデバイスでも簡単にアクセスできます。たとえば、あなたはiExplorerをチェックすることができます:覚えている限り、それはトリックです。

2)実際にデータをローカルに保存する必要がある場合は、ドキュメントフォルダUserDefaultsまたはCoreDataのいずれかを選択して暗号化する必要があります。アルゴリズムの選択はあなた次第ですが、いくつかのiOS組み込みソリューションを使用する方がよいでしょう。

3)データの暗号化には、アプリが復号化するための鍵があることが前提です。キーを保存する最善の方法はKeyChainです。おそらく、それはあなたが外部から盗まれる心配なしにユーザーの認証データのようなキーやその他のものを保存できる唯一の場所です。

これらの手順をすべて実行しても、ユーザーの暗号化されたデータには引き続きユーザーがアクセスできます。暗号化されていない限り、それを読み取ることはできませんが、独自のキーチェーンと何らかのスキルにアクセスすると、上級ユーザーは最終的に元のデータを取得できます。さらに、それは依然として損傷する可能性があります。したがって、データの破損や削除を防ぐ観点からは、バックアップやデータ自体を遠隔地のどこかに保存する必要があります。

+0

ユーザーはキーチェーンにアクセスできますが、これは暗号化の問題であり、キーを保護しているため、ユーザーからデバイスでは達成できませんが、作業ファクタを増やすことは難しくなります。 – zaph

+0

@zaphコメントのおかげで、答えを編集しました。 –

0

Documentsディレクトリ内のデータは、publicとして扱う必要があります。 iOSデバイスを持ち、iExplorerやiFunBoxなどのツールを使用してUSB経由でコンピュータに接続すると、アプリケーションのDocuments and Cachesディレクトリの内容を表示できます。安全のため、キーチェーン(該当する場合)、または領収書(共有秘密、ユーザー情報など)を検証してユーザーが実際に製品を購入し、トランザクションを偽装しようとしていないことを確認するWebサービスの使用を検討してください。

+0

@zaph電話機へのUSBアクセスを持つiOSデバイスユーザー、または技術的にはjailbrokenデバイスを持つユーザー。私の指摘は、この情報は人々が引き受けるのと同じくらいプライベートではないということです。しかし、あなたはすでにそれを知っていました。 – JAL

+0

素敵なアップデート。「誰でも」には非所有者が含まれていました。 – zaph

関連する問題