13

簡単な質問があります:

NSFileProtectionCompleteクラスを使用して機密情報を含むsqliteファイルを保護するiOSアプリケーションをダウンロードしました。

iOSのセキュリティドキュメント(http://images.apple.com/ipad/business/docs/iOS_Security_May12.pdf)によると、デバイス(iPhone / iPad)がラップトップとペアリングされると、ラップトップはエスクローキーバッグをモバイル機器 。キーバッグには、デバイス上の情報を復号化するために必要なすべてのクラスキーが含まれています。

ただし、デバイスをラップトップとペアリングし、iExplorerを使用してファイルシステムを参照すると、デバイスのロックが解除されている場合にのみsqliteファイルを使用できることに気付きました。電話がロックされている(まだペアリングされている)場合、ファイルは読み取り可能ではありません。NSFileProtectionCompleteを使用していないファイルは、デバイスがロックされているときに表示できます。

エスクローキーバッグに情報を復号化するためのすべてのクラスキーが含まれている場合、iExplorerを介してデバイスにアクセスするには、デバイスのロックを解除する必要があるのはなぜですか?

iPad3でiOS6.0を使用しており、ios-dataprotectionツール(https://github.com/ciso/ios-dataprotection)を使用して、ファイルで使用されるデータ保護クラスを決定しています。

iOSアプリケーション:AccountVault
ファイル:PointMinder.sqlite

どんな助けでもありがたいです。

ありがとう。

4

2 に答える 2

7

リンクしたドキュメントファイルから:

完全な保護(NSFileProtectionComplete):クラスキーは、ユーザーパスコードとデバイスUIDから派生したキーで保護されます。ユーザーがデバイスをロックした直後(10秒、[パスワードが必要]設定が[即時]の場合)、復号化されたクラスキーは破棄され、ユーザーがパスコードを再度入力するまで、このクラスのすべてのデータにアクセスできなくなります。

したがって、そのファイルにアクセスする場合は、デバイスのロックを解除する必要があります。それがAppleがそれを作った方法です。

編集:「iOSアプリケーションのハッキングと保護」にあります:

保護クラスキーは、アクセスポリシーに基づいてファイルのロックを解除するために使用されるマスター暗号化キーです。保護クラスは、ファイルのアクセスポリシーを適用するために使用される暗号化メカニズムです。

一部のファイルは非常に重要であるため、オペレーティングシステムは、デバイスのユーザーインターフェイスのロックが解除されている場合にのみファイルを復号化できます。これらのファイルの暗号化キーは、ユーザーがパスコードを入力した後にのみ使用できるクラスキーでラップされます。デバイスが再びロックされると、キーがメモリから消去され、ファイルが再び使用できなくなります。

保護クラスのマスターキーは、キーバッグと呼ばれるエスクローに保管されます。キーバッグには暗号化されたものが含まれています保護クラスのマスターキー、およびデバイス上のシステムファイルへの他のキー。システムキーバッグは、BAGIという名前の別の暗号化キーを使用して暗号化されます。BAGIは、NANDの消去可能なストレージにも保存されます。ユーザーが特定のセキュリティ保護ポリシーを満たすために認証するときはいつでも、キーバッグ内の暗号化されたキーを復号化できます。

そのため、そのファイルのキーは転送されますが、暗号化されます。パスコードを入力すると、OSがそのキーを復号化し、それを使用して、パスコードで保護されているファイルを復号化できます。

于 2013-03-21T10:43:19.900 に答える
0

これは、私が望んでいた他のリソースではなく、アプリの SQLite データベースに対してのみ機能します。しかし、デバイスをロックし、iExplore を開いたままデバイスを接続したまま数分間待った後も、データベースにアクセスできるという同じ問題が発生していました。iPad を切断して再度接続すると、iExplore が強制的に更新され、データベースにアクセスできなくなりました。したがって、古い「暗号化されていない」データベース情報がメモリにあるだけなのか、それとも何なのかはわかりません。

于 2013-04-02T19:00:12.663 に答える