Androidの暗号化と脆弱性の標準的な説明


16

注:まあ、賞金は失効しました。考えられる理由の1つは、コメントから収集する際に対処するために必要な労力です。賛成票の数を見ると、他の人にも興味があるようです。私はまだ答えを受け取りたいので、ここに私が提案するものがあります-1ヶ月以内に良い答えが50のボーナスを得るでしょう。これは十分な時間とインセンティブを与えることを望みます


私はしばらくの間Android暗号化プロセスとその脆弱性を理解しようとしています

このサイトおよび姉妹サイトには、このトピックの一部を扱う多くの質問があります。私のポイントを家に戻すために、これらの質問は全体はなく部分に対処します(「盲人と象?」を連想させます:)

私の理解(または誤解?)

  1. 暗号化パスワードは、ユーザーロック画面のPINと暗号化アルゴリズムの組み合わせから生成されます(PINの長さが制限されているため、固有の弱点があります)
  2. これはソルトされ、ルートの場所に保存され、ユーザーはアクセスできません
  3. これは、/ decryptを暗号化するための実際のパスワードを生成するために使用され、実際のパスワードはRAMに保存されます
  4. これは、ステップ1をデバイスSoCにリンクすることで強化されました(どのAndroidバージョン?デバイスを一意に識別するハードウェア要素はどれですか?それを偽物に置き換えることができますか?
  5. したがって、暗号化キーとデバイスなしでデータを復号化することはできません(外部SDも保持します)
  6. 可能な回復方法- ブルートフォース、キーを取得するためのRAM情報のキャプチャ(ステップ3)
  7. 根ざしたデバイスが表示されるカスタム回復/多分ROMとカーネル点滅を通じてアクセスステップ2データの影響を受けやすくします?(trueの場合、これが大きなリスクとして宣伝されないのはなぜですか?
  8. この情報が得られたとしても、実際のパスワードを生成するのは賢明努力ではないと推測しています
  9. マシュマロは、外部SDを「内部ストレージ」または「ポータブルストレージ」として扱うことができます。論理的には、違いはないはずですが、わかりません

私の理解にはギャップがあり、おそらく他の重要な側面も見逃しています。

だから、私はユーザーの観点から理解するための標準的な説明を探しています

  • 暗号化プロセス全体(外部SDを含む)

  • KitKatからマシュマロまでのAndroidバージョン間の実装バリエーション(マシュマロの外部SDのデュアルオプションを含む)

  • ユーザーレベルの脆弱性

注意

  • 質問が広すぎるとみなされるリスクがあることは承知していますが、IMOは包括的な取り扱いを保証します
  • 通信セキュリティの経験があり、暗号化の概念をユーザーレベルに変換する際の課題を理解しています。より深く理解するための説明ポインターを使用して、これに対処する答えを好むでしょう。プロセスの例は、厳密な意味で暗号的に正確である必要はありませんが、本質伝える必要があります

  • 考えられる利点は、関連する側面に関する将来の質問を「重複」させることです

  • 繰り返しの犠牲を払って、答えは主にユーザーレベルである必要がありますが、より深い理解のための適切な説明が必要です。二つの部分で答えを分割することに適した方法です。

  • 私は、包括的な答えを奨励するために、些細な/カジュアル/パッチワークの答えを下票にすることをポイントにします


1
コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました//これは、セキュリティに適している可能性があります。また、あなたが求めていることのかなりの部分が特定のハードウェアとメーカーがそれを実装する方法に依存するため、あまりにも広すぎると思います。
マシューリード

回答:


3

私はそれが次のように機能することを想定しています:

  • ストレージは、同期ランダムキーを使用して暗号化されます。
  • ユーザーが入力に基づいたパスワードを選択または変更する場合、文字や数字、文字で構成されるパスワード、PINコード、パターンスワイプ、フィンガープリント、その他の入力、非同期暗号化などアルゴリズムはマスターキーを暗号化するために使用され、正しい識別により入力が復号化され、マスターキーが生成されます。これにより、ストレージの暗号化と復号化が可能になります。
  • ユーザーがログアウトすると、マスターキーを保持しているメモリが上書きされます

ここでの大きなトリックは、マスターキーの非同期暗号化です。マスターキーを取得すると、Androidはストレージとデータを交換できます。ユーザーがログインしている場合にのみ、そのマスターキーが認識されます。非同期暗号化は、公開鍵暗号化と呼ばれるものです。何が起こるかというと、公開キーはデータ(この場合はマスターキー)を暗号化し、秘密キーはデータを解読します。ここでストレージの暗号化と混同しないでください。ストレージは単なる同期暗号化です。そこでは、同じキーが暗号化と復号化に使用されます。しかし、その「マスター」キーの発見/検索が大事です。つまり、ある時点でピンコードとしての「1234」のように弱いログイン方法があり、気が変わって、ピンコードを「5364」に変更すると、以前の「1234」 」盗まれ、sn索された、任意の時点で、セキュリティがちょうど良くなりました。ログイン方法を推測や辞書攻撃が不可能な完全なパスワードに変更する場合も同様です。ストレージ自体を再暗号化する必要はまったくありません。マスターキーを内部的に非表示にすることがすべてです。おそらくランダムな種類のハッシュコードであるため、ユーザーはそのマスターキーを見ることはありません。そのハッシュコードを「発見」または「推測」することはありません。NSAや地球上の他のセキュリティ機関でさえ、そのような一致するキーを見つけることはできませんでした。唯一の攻撃ベクトルは、ユーザー側の弱点を望んでいます。おそらく、ユーザーはPINコードのログインを選択しました。4桁の場合、最大10000個のPINコードが可能です。OSは、短時間で数回試行した後にデバイスを「ブロック」する場合があります。解決策は、OSを「ハッキング」することです。これにより、OSが介入してデバイスをブロックすることなく、可能なすべてのPINコードを試すことが可能になります。私はそれがFBIが最終的に犯罪者の電話にアクセスした方法だと信じています。サードパーティの会社(私が覚えているイスラエルの会社)が、私が思うFBIのハッキングを行った。彼らはそのPINコードの試行制限を迂回しました。ログインが完全なパスワードであり、ユーザーが強力なパスワードを選択した場合、あなたはsolです。地球上のすべてのCPUパワーを備えた生涯では、100万年後にそれをハックすることはありません。噂を解読できるNSAは購入していません。それらの人々は黒人男性の映画をあまりにも多く見たと思う。行う必要があるのは、さまざまな暗号化アルゴリズム(AESなど)に関する科学文書を見るだけです。ハッキングが発生しないことはご存知でしょう。昔は40ビットのキーがありました。そんな時代は過ぎ去りました。AES128はすでにハッキング不可能だと思います。誰か心配なら、AES256にジャンプすることで、宇宙の大きさに比べてかなり安全になります。 たぶん、いつか量子コンピューターがそれを解読するかもしれませんが、私は懐疑的です。確率システムを使用してソリューションを強調表示できるかどうかはわかりません。それについては、最終的に確認します。とにかく、それは数回の生涯の距離です。心配する必要はありません。

そのため、1日の終わりに、セキュリティの制限は、使用するログイン方法に完全に依存します。ストレージを再暗号化することなく方法を変更できます。これはすべて、マスターキーの非同期公開キー暗号化のためです。


「対称」と「非対称」を意味すると思います。「同期」および「非同期」ではありません。
ジェイサリバン

1

更新は頻繁に行われるため、電話(AndroidベースのOS)での暗号化の処理方法は、ビルドごとに変わる可能性があります。したがって、主な関心事は暗号化自体ではなく、プロセスが実行されている場所です。そして、そのプラットフォームに脆弱性がある場合、暗号化アルゴリズム自体の強度はほとんど重要ではなくなります。

基本的に、デバイスがファイルを復号化すると、スーパーユーザー権限を持つプロセスからファイルに直接アクセスできます。このプロセスは、ROM(Android OS)自体の脆弱性を悪用することにより、デバイスにアクセスする可能性があります。(WikiLeaksによっていくつかの欠陥が公開されたため、最近ニュースになりました)

ルート化されたデバイスは、カスタムリカバリ/ ROMおよびカーネルフラッシュを介してステップ2データにアクセスしやすいようですか?(本当なら、なぜこれが大きなリスクと宣伝されないのですか?)

ルートの前:デバイスをルートするには、外部ツールを使用する必要があります。これらはすべて、デバイスの内部構造に深くアクセスできます。これらのツールの一部はプリコンパイルされており、オープンソースではありません。彼らは「公式」ウェブサイトを持っていますが、これらの人々は誰ですか?(たとえば、twrp.me、supersu.com、KingoRootのような他のものがあります)本当に信頼できますか?私は他のものよりもいくらか信頼しています。たとえば、KingoRootは、ウイルスに似た動作をするプログラムをPCにインストールしました(デュアルブートを使用して削除する必要がありました)。

ルート化後:コンパイルされたプログラム(APK)にSUアクセスを与えると、制限なしで、または使用するインテントを指定せずに、必要なことをすべて実行できることを意味します。(意図は、APKがWiFi、カメラなどにアクセスする方法です)したがって、「十分に信頼されたアプリ」は、ルートアクセスを与えられた後、あらゆる種類の情報に簡単にアクセスしてサーバーに送り返すことができます。

完全なデバイス暗号化は、データをGoogleおよび政府から保護しますか?

Google-はい。ロックを解除するためのキーはありません。

政府(またはハッカー)-いいえ。政府またはハッカーは本質的に、上記のファイルを傍受するエクスプロイトを使用できるためです。

セキュリティ手順/アルゴリズムの複雑さは、傍受およびバイパスできる場合、ほとんど役に立ちません。

編集:Googleには、許可を求めることなく、または更新が行われたことを通知することなく、実際にAndroidデバイスにアプリをダウンロードおよびインストール/更新する機能があることを言及する価値があります。また、ルート化されたデバイスでも、主要な機能(Playストア、マップ、同期など)を失うことなくこれをブロックする方法はないようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.