2012-02-17 7 views
3

iOS5のデータ保護に関するWWDCのドキュメントとビデオを見てきました。アプリケーションデータをすべて暗号化して、デバイスがロックされている限り、そのデータを保護できるので非常に便利です。しかし、システム全体のデータ保護メカニズムには2つの大きな問題があります。iOSのアプリケーション固有のデータ保護

1-ロックされていない状態で私のiPhoneを盗んでしまった場合(通常は「スチールアンドラン」のケースで起こります) )、それは潜在的にノートパソコンに私のiPhoneを接続し、暗号化されていない私のデータにアクセスすることができます

2それはシステム全体のパスコードを定義する必要があります。暗号化が本当に必要なのは自分のアプリだけであっても、ユーザーにシステムレベルのパスコードを定義させることは酷いと思われます。また、4桁のパスワードがブルートフォース攻撃に対する優れた防御ではないので、さらに酷いこともあります。

私の質問は次のとおりです。アプリケーションに固有のパスコードを使用してデータを暗号化する簡単な方法はありますか?ユーザーがアプリケーションを起動するたびにパスコードを入力する必要がありますが、システムレベルでパスワードを定義する必要はありません。そうでない場合は、少なくともアプリケーション固有のパスコードで標準のデータ保護APIに接続できますか?そうでない場合は、このようなシナリオを実現するために、自分の暗号化レイヤーをコアデータの上に書く価値がありますか?それとも、iOSの将来のバージョンに追加されるかもしれないものです(その場合は、今はシステム全体のパスコードに固執して後でアップグレードします)。

+0

代わりhttp://apple.stackexchange.com/にこの質問をしてみてください。 – sch

+0

@ sch-なぜですか?それはプログラミングの質問です。 –

+0

はい、申し訳ありませんが、私は初めてあなたの質問を理解できませんでした。現在、私はそれを誤解する方法を本当に知りません:) – sch

答えて

0

他のオペレーティングシステム(Windows上のDPAPIなど)上のいくつかのデータ保護APIを使用すると、データを保護するために使用されるキー導出プロセスの補足エントロピーを提供できます。これらのシステムでは、ピン番号からそのデータを簡単に引き出すことができます。そのピンがなければ、鍵を生成してデータを読み取ることはできません。

私は見て、この効果をiOSで見つけることができませんでしたが、私は客観的なcプログラマーではありませんでしたので、アップルのドキュメントを読むことは苦痛です。

0

ユースケースによっては、アプリでデータ保護を有効にしたい場合がありますが、ユーザーがパスコードを使用しない場合は、多くの保護はできません。その資格を有効にするとパスコードが強制されるかどうかはわかりません。

起動時にPINコードがあることをアプリに要求してから、そのPINコードと他のデータデータを使用して、共通の暗号化機能のキーを生成することができます。

https://developer.apple.com/reference/security

関連する問題