2016-04-29 13 views
0

私は疑問に思っていました... 既存のコアデータアプリケーションのデータベースの一部またはすべてを、機能を失うことなく、またはサードパーティの依存関係に深く依存することなく暗号化することは可能ですか?コアデータデータベースを暗号化または部分的に暗号化しますか?

これらの特定のフィールド(メタデータまたはバイナリデータ)を照会する必要がないため、私たちは独自の暗号化を行うことができますが、データベースの他の部分に影響を与えたり、既に働いています。

また、DB全体を暗号化することもできます。何が最善であるか分からない。

+0

あなたのやりたいことは、データベースの一部のテーブルの特定のフィールドを暗号化するだけですか? BD全体を保護する必要がありますか?たとえば、DBはファイルレベルで暗号化されますか? – HDT

+0

それは単なる難読化です。 –

答えて

0
  1. あなたが永続ストアを作成する場合は、オプションであなたは運用のために十分であるべきこと、デバイスがロックされているとパスコードが設定されている場合、これはデータベースファイルを暗号化する、NSFileProtectionComplete値でNSPersistentStoreFileProtectionKeyを指定することができるパラメータデータ(パスワードと秘密ではない)。

  2. クライアント秘密とパスワードのような機密データをキーチェーンに保存します。データベースではなくデータベース暗号化のハックは時間の問題です。

+0

目的は、デバイスがロックされている間にデータを保護するだけでなく、難読化することです。 –

+0

次に、サードパーティを使用する必要があります。難読化されていません。 –

+0

iOSで文字列を暗号化するための提案が、理想的にはコアデータとシームレスに対応していますか?このようなもので永続的なストアを交換しなければ何かが存在するかどうかわからない... https://github.com/project-imas/encrypted-core-data ...残念ながら特定の機能をサポートしていない。 –

1

@Olegが投稿したものに追加すると、コアデータNSManagedObjectにバイナリデータを格納できます。文字列を暗号化し、そのバイナリプロパティに格納することができます。

パフォーマンスが悪く、ストアレベルでプロパティを検索できません(メモリに暗号化されていないため検索できますが、実行可能です)。

関連する問題