55

iPhone で証明書を使用して、MS Exchange Sync を認証したいと考えています。この証明書を保護するためにセキュリティの概念がどのように実装されているかはわかりません。

たとえば、ScreenLock が有効になっていない場合、iPhone で「完全な」キーチェーン アクセスを取得することは可能ですか? (またはジェイルブレイクされたiPhoneを使用)。

誰かがこれについていくつかのリンクを持っていますか?

4

4 に答える 4

49

iOSキーチェーンセキュリティに関するフラウンホーファーの研究:

私の知る限り、iOSキーチェーンが使用する暗号化には2つのレベルがあります。最初のレベルでは、暗号化キーとしてロック画面のパスコードを使用します。2番目のレベルでは、デバイスによって生成され、デバイスに保存されたキーを使用します。

フラウンホーファーの研究者たちは、第2レベルを回避する方法を考え出しました。暗号化キーはデバイスに保存されているため、これは回避するのに「簡単な」レベルです。したがって、iOS4では、これらのメソッドは、kSecAttrAccessibleWhenUnlockedまたはkSecAttrAccessibleWhenUnlockedThisDeviceOnlyを使用しないキーチェーンエントリでのみ機能します。これらのエントリは、電話がロックされている場合でも、最初のレベルが復号化された状態でメモリに存在するためです。

  • iOS 4以降、kSecAttrAccessibleWhenUnlockedおよびkSecAttrAccessibleWhenUnlockedThisDeviceOnlyのキーは、追加レベルの暗号化によって保護されます
  • iOS 3.x以前では、使用されているユーザー補助属性に関係なく、フラウンホーファーの方法を使用してすべてのキーを復号化できます。
  • パスコードがまったくないデバイスは引き続き脆弱です
  • パスコードが弱い(6桁未満)デバイスは、依然としてある程度脆弱です

パスワードごとに約50ms試してください。→1秒あたり約20回の試行。→ベース36の6桁の英数字コードの正しいパスコードを推測する50%の変更で約1。7年。4桁の標準の単純なコードは9分未満でブルートフォースされます。iOSはハードウェアベースではないため、iOSでの間違った試行のカウンターをバイパスできるという仮定に基づいています

Apple Inc. WWDC 2010、コアOS、セッション209「アプリケーションデータの保護」、スライド24

結論:機密データを保存する必要がある場合は、独自の暗号化を使用することをお勧めします。また、デバイスにキーを保存しないでください。

編集:この攻撃はデバイスへの物理的なアクセスによってのみ実行できるため、Fraunhoferの調査を引用し、デバイスが盗まれない限り読者が心配しないように安心させるニュース記事が多数あります。

どういうわけか疑わしいです。研究者が電話への物理的なアクセスでテストを行ったという事実は、制限ではなく、問題を単純化する方法にすぎなかったようです。これは、キーチェーンエントリを復号化するために彼らが行ったことの説明です。

ジェイルブレイクツールを使用した後、コマンドシェルにアクセスするために、小さなスクリプトを実行して、キーチェーンにあるパスワードにアクセスして復号化します。復号化は、オペレーティングシステム自体によって提供される機能の助けを借りて行われます。

jailbreak.meを使用したことがある人なら誰でも知っているように、脱獄はデバイスへの物理的なアクセスを必要としません。理論的には、jailbreak.meコードを変更して、以下を自動化するのは簡単なはずです。

  1. 通常どおり脱獄を実行します(これに必要なのは、ユーザーが悪意を持って作成されたPDFを開くことだけです)
  2. 脱獄が完了した後、フラウンホーファーのスクリプトを実行します
  3. 攻撃者がパスワードを読み取ることができる場所に、ネットワークを介してパスワードを送信します

繰り返しになりますが、キーチェーンに何を入れるかについては注意が必要です。

于 2011-07-15T20:12:29.370 に答える
3

Franhofer は、iPhone キーチェーンの安全性に関する研究を行いました。

http://www.sit.fraunhofer.de/Images/sc_iPhone%20Passwords_tcm501-80443.pdf

于 2011-03-19T22:48:29.133 に答える
2

あなたの質問の一部にはお答えできますが、他の部分はまだ不明なので、私も答えを知りたいので、質問に投票します。

私が答えることができる部分は、「スクリーンロックが有効になっていない場合、アプリは完全なキーチェーンアクセスを取得できますか」です. いいえ、すべてのアプリは iPhone に独自のキーチェーン エリアを持っています。つまり、アプリは独自のシークレットにしかアクセスできません。これらのシークレットはアプリ自体に対してロックされていないため、アプリ自体からキーチェーン エントリを非表示にする方法はありません。要約すると、アプリは独自のエントリを読み取ることができ、他のエントリは読み取れません。

私が知りたいのは、ジェイルブレイクされたデバイスで何が起こるかです。デバイスがジェイルブレイクすると、すべてのアプリのキーチェーンが公開されますか?

于 2010-10-11T15:54:06.747 に答える