セキュリティウォッチ AppleがiOSセキュリティの詳細を公開

AppleがiOSセキュリティの詳細を公開

Anonim

Appleは最近のBlack Hatカンファレンスで新しいバグ報奨金プログラムを発表したと聞いています。 Appleのセキュリティエンジニアリングおよびアーキテクチャの責任者であるIvan Krsticは、異常な外観で自分で発表しました。 しかし、それは50分間のプレゼンテーションの最後の10分間に過ぎませんでした。 Krsticは最初の40分間、iOSセキュリティの3つのコンポーネントに前例のない詳細な調査を行いました。 そして深く、私は深海を意味します。

私の全体的なテイクアウトは、これらのシステムがApple自体からでさえもユーザーデータをどれだけ徹底的に保護しているかに対するa敬の念でした。 あまり技術的にならずに、言われたことを伝えようと思います。

強化されたWebKit JITマッピング

申し訳ありませんが、それはそれが呼ばれているものです。 JITはJust In Timeの略で、実行に間に合うようにJavascriptコードをコンパイルする方法を指します。 「これは高性能JavaScriptに必要です」とKrsticは説明しました。 「ただし、コード署名ポリシーを緩和する必要があります。JITコンパイラは、新しい無署名のコードを発行します。write-anywhere攻撃を管理した攻撃者は、任意のコードの実行を可能にする可能性があります。」

少しの背景については、メモリの領域を読み取り、書き込み、実行の許可でマークできます。 数年前に導入されたこの区別は、データ専用の領域でコードを実行する攻撃を排除しました。 簡単に言えば、Appleのソリューションには、コンパイルされたJavaScriptを実行 のみ を許可するメモリ領域に配置する技術が含まれます。 プロセスは、そこにあるものを読み取ることも、新しいデータを書き込むこともできません。 それよりも少し多くのことがありますが、iOS 10に固有のこの変更により、考えられるあらゆる攻撃が一掃されます。

セキュアエンクレーブプロセッサ

Appleデバイス上のアプリケーションは、アプリケーションプロセッサ(AP)と呼ばれるCPUで実行されます。 最新のAppleデバイスには、Secure Enclave Processor(SEP)と呼ばれる完全に独立したCPUがあります。 「SEPは、ユーザーのパスコードからの強力な暗号化マスターキーによって保護されています」とKrsticは述べています。 「オフライン攻撃は不可能です。APが侵害された場合でも、APの攻撃面を回避します。すべてのユーザーアクセスを調停し、独自の暗号化メモリを管理します。最初の初期化では、真の乱数ジェネレーターを使用して一意のプロセッサ内のデバイスキー。エクスポートできず、不変のセキュアROMに格納されています。」

Krsticは、デバイスが異なる特性を持つ4種類の内部セキュリティキーをどのように使用するかについて説明しました。 タイプAは、デバイスのロックが解除されている場合にのみ存在します。 タイプBは、常に存在する公開キーに加えて、デバイスのロックが解除されたときに存在する秘密キーです。 タイプCは、起動後にデバイスが初めてロック解除されるときに存在します。 また、タイプDは常に使用可能です。

プレゼンテーションは、いくつかの非常に複雑な図に移りました。 デバイスの起動とロック解除のプロセスを順を追って説明し、各キータイプがどのように作成および保存されたかを示しました。 デバイス上のすべてのファイルには、独自の一意の暗号化キーがあります。 別の図は、SEPがそのファイルを認証および復号化できる一方で、重要なセキュリティキーを内部に保持する複雑なダンスを示しています。 別の人は、「後で更新」を選択できるようにする複雑なプロセスについて説明しました。 さらに、別の人は、マスターキーを一切表示せずに、タッチIDを介してロック解除を許可するプロセスを説明しました。

講演のこの部分からの重要なポイントは、AppleがSecure Enclave Processor内で完全に暗号化を管理するために必要なものを、ユーザーをまったく面倒にせずに本当に熟考したことです。 これらの図を自分で見てみたい場合は、Krsticの完全なプレゼンテーションをご覧ください。

秘密の同期

複数のAppleデバイス間でデータを同期できると非常に便利です。 HomeKitを使用すると、IoTデバイスを管理できます。AutoUnlockを使用すると、Apple Watchが近くにあるときにMacのロックを解除したり、写真をiCloudで同期したりできます。 しかし、セキュリティ面では、同期が問題です。

「伝統的なアプローチは良くない」とKrsticは言った。 「1つの方法は、ユーザーにすべてのデバイスで強力な「ソックドロワーキー」を入力させることです。それを失うと、シークレットへのアクセスが失われます。もう1つの方法は、データをアカウントプロバイダー。」

「ここにはいくつかの目標がありました」とKrsticは続けました。 「強力な暗号で保護されたすべてのデバイスで秘密が利用可能である必要があります。接続されているすべてのデバイスを失ってもユーザーは秘密を回復できます。データはAppleに公開されず、ブルートフォース攻撃の可能性はありません」

基本的なiCloudキーチェーンシステムでの認証は簡単です。 すべてのデバイスには独自のキーペアがあり、新しいデバイスを同期サークルに追加するには、既存のデバイスのいずれかから承認する必要があります。 Appleのバックエンドは関係ありません。 特権はありません。 ユーザーがすべてのデバイスへのアクセスを失った場合、iCloudセキュリティキーとiCloudパスワードの両方を使用してアクセスを回復できます。

Krsticは、Appleがバックエンドからデータにアクセスできる可能性を少しも残さずに、Appleがこのシステムを管理する方法を詳細に説明しました。 システムには、管理サーバーと呼ばれるものが含まれます。これは、新しい暗号サーバーのフリートがコミッションされるときに作成されます。 「管理カードは、艦隊の委託時に安全な式典で作成され、改ざん防止の証拠バッグに入れて、Appleの3つの異なる組織の管理下にある個別の物理的金庫に保管されます。」

この状況は、艦隊が実際に運用されるまで続きます。 その時点で、Krstic氏は次のように述べています。「管理カードに新しい一方向ハッシュ関数を適用します。」 表彰台の下から明らかに使用されたブレンダーを引いて、彼は続けました、「はい、ブレンダーを通る旅」。 暗号サーバーのフリートがアクティブになると、管理カードが破壊されたため、Appleでさえ更新または変更することはできません。 更新が本当に必要な場合は、Appleは新しいフリートを起動し、ユーザーデバイスを新しいフリートに接続させるソフトウェアの更新を送信する必要があります。

「なぜこれを行うのか」とKrsticは言った。 「非常に珍しいこの最後のステップを踏むのはなぜですか?信頼を提供するためにセキュリティシステムを設計するために多大な努力を払っています。データがデバイスを離れるとき、利害関係はさらに高くなります。これらの管理者カードには、真実ではない可能性があります。それが、ユーザーデータに関する使命を真剣に受け止めていることです。」

「FBIが情報を要求したため、これをしましたか?」 Krsticは、「私はエンジニアです。今日私が発表した理由についての質問にしか答えられません。」と答えました。 OK、結構です。 しかし、質問者は正しかったと思います。 自分で修正することさえできない自己完結型のシステムを作成することは、他の誰かが不要な変更を加えるのを防ぐための非常に良い方法です。

Krsticの講演で、あなたの目をかすめることなく詳細レベルを伝えたことを願っています。 グループが解散したときのチャットで判断すると、部屋の真のバイトレベルのセキュリティオタクは非常に感銘を受けました。

AppleがiOSセキュリティの詳細を公開