2010-11-27 8 views
7

私は医療用のiOSアプリを開発しています。私は自分のユーザーのデータを暗号化して、iPhoneを盗まれた場合、その泥棒は自分の健康情報にアクセスすることができないようにしたい。正当な所有者は、その情報にアクセスできる必要があります(したがって、this questionとは異なる)。iOSでSQLiteデータベースを保護する方法は?

SQLCipherを使用してDB全体を暗号化し、SQLCipherパスワードをKeychainに入れることを検討しています。

これは良い方法ですか?

また、正しくは理解できますか?すべてがデバイス上にあるため、決定されたハッカーは何かに侵入することができますか?

+0

[iPhoneのSQLite DBに含まれている安全な情報](0120-18753) –

+0

も参照してください[iPhone SQLite Password Field暗号化](http://stackoverflow.com/questions/3017581/iphone-sqlite-password-field-encryption) –

+0

セキュリティで保護されたデータは私のものではないため(アプリケーション開発者)、それは実際にはその質問の重複ではありませんユーザーの私は競合他社から私のIPを保護しようとしていない、私は泥棒やiPhoneのバックアップで詮索する人々からユーザーの健康情報を保護しようとしている。 – Ford

答えて

2

私はあなたのソリューションがセンセーショナルだと思います。それは非常に良いセキュリティを提供し、あなたのアプリを使いやすく保ちます。

キーチェーンで取得する主なものは、キーチェーンのコンテンツがiphoneでバックアップされていないため、ユーザーのバックアップが保護されていることです。 (しかし、すでに知っていると思います)

これは大きなセキュリティ上のプラスです。潜在的なハッカーがiPhoneに物理的にアクセスする必要があるためです。さらに、iphoneがピンでブロックされている場合、データを取得する唯一の素早い方法は、デバイスのフラッシュメモリに物理的にアクセスすることです(これは最も簡単な方法です)。

長いパスワードを入力するようにユーザーを強制すると、ユーザーがあなたのアプリを使用するとは思えません。そのようなパスワードを使用させると、ハッカーは辞書攻撃を使ってデータベースの暗号化を解除することができます。

+0

どうすればいいですか.. – Jitendra

4

2因子暗号化を目指します。前述のようにDBを暗号化する必要がありますが、アプリケーションを起動するたびにパスワードを入力する必要があります。 DBのキーは、ノンスで塩漬けされたパスワードのハッシュです。キーチェーンにパスワードの塩を保存します。

特定のハッカーは、ファイルシステムアクセスによって暗号化されたSQLiteデータベースにアクセスできます。キーチェーンの暗号化を破ることができれば、簡単にデータベースをクラックすることができますが、ユーザーからパスワード(またはパスフレーズ)を要求することで、その攻撃に役立ちます。

関連する問題