3

Core Data を使用して機密情報を保存しています。これまでのところ、Persistent Store Coordinator が使用する SQLite ファイルにハードウェア ファイル暗号化を適用しました。ファイル属性を設定することでこれを行いました(NSFileProtectionKeyをNSFileProtectionCompleteに)。

一部の画像データをバイナリ データとしてコア データベースに保存しています。SQLite データストアの肥大化を防ぎ、パフォーマンスを向上させるために、[外部ストレージを許可する] と [外部レコード ファイルに保存する] をオフにしました。

Core Data によって SQLite データベースの外部に自動的に保存されたデータ ファイルは暗号化されず、これらのファイルを自分で暗号化する必要があると思います。これが正しいかどうか誰にもわかりますか?

ありがとう

4

2 に答える 2

0

ラッキーマン777、

iOS のすべてのバージョンがプリインストールされている場合、ユーザーが画面ロックを使用すると、すべてのファイルがハードウェア暗号化されます。外部 Core Data ストレージに関するご質問については、ファイルだけをご覧いただけますか? 電話から開発システムにデータを移動するのは非常に簡単です。次に、外部ファイルの 1 つを開こうとします。暗号化されていることを期待しています。(そうでない場合、それは Core Data の暗号化ポリシーのかなり大きく明らかな穴です。私はそれが存在することを疑います。)

アンドリュー

于 2012-05-18T13:07:40.003 に答える
0

隠されていますが、暗号化されていません! 現在 (iOS 11.2) がデータを保持しているフォルダーはDocuments/.SingleViewCoreData_SUPPORT/_EXTERNAL_DATA
の下 にあります。トークン名の拡張子なしで、すべてのファイルを表示できます。ただし、データはすべて変更されていません。ファイル拡張子を追加するか、適切なアプリを使用するだけで、任意のファイルを表示できます。

はい、画面がロックされている場合、デバイス データは暗号化されますが、Xcode に接続すると、非常に簡単にコンテナーをダウンロードしてすべてのデータにアクセスできます。アプリが機密データを保持している場合、「デバイスは暗号化されています」は保持されません。SingleViewCoreData.sqliteファイルだけが暗号化されているようです。

于 2018-01-17T14:45:58.173 に答える