NSAからiCloudキーチェーンを守る方法

NSAからiCloudキーチェーンを守る方法

Appleは、ITプロフェッショナル向けのホワイトペーパー「iOSセキュリティ」を大幅にアップデートしました。このホワイトペーパーには、Touch ID、データ保護、ネットワークセキュリティ、アプリケーションセキュリティ、そしてほぼすべてのセキュリティ関連機能、オプション、保護コントロールに関する詳細な情報など、Appleがこれまで公開してきた中で最も詳細なiOSセキュリティ情報が含まれています。

iCloudのセキュリティについて、初めて詳細な情報が公開されました。私のようなセキュリティ専門家にとって、これはまるで目が覚めてキーボードの上に金の壺が隠されているような気分です。Appleは、私がこれまで目にした中で最も印象的なセキュリティに加え、NSAのような機関がiCloudキーチェーンのパスワードを入手できないようにする方法も提供しています。

この論文は非常に密度が高く、どのセキュリティ対策でどの種類の暗号化アルゴリズムが使われているかという詳細なレベルにまで踏み込んでいます。おそらく理解するには数ヶ月かかるでしょうが、あるセクションには、NSAがiCloudキーチェーンのパスワードを盗聴できない理由を説明する重要な情報が含まれていました。

iCloud キーチェーンの背景— iCloud キーチェーンには、具体的には次の 3 つの主要機能が含まれています。

  • Safari 内から Web サイトに強力でランダムなパスワードを作成します
  • キーチェーン(および保存されているパスワード)を異なるデバイス間で同期します
  • キーチェーンをAppleのサーバーにバックアップする

強力でランダムなパスワードはデジタルライフを守るために不可欠ですが、パスワードを紛失してしまうと、あらゆるサービスから締め出されてしまいます。そのため、Appleは、パスワードが常に同期され、紛失から可能な限り保護されることを保証し、ユーザーとAppleの双方にとって利益となるよう努めています。

つまり、Appleはキーチェーンのバックアップコピーを保管する必要があるということです。特に昨今の政府による監視への懸念を考えると、デジタルライフの鍵を大企業に託すのは気が重いことです。

Appleは、キーチェーンの同期とキーチェーンのエスクローおよび復元(バックアップ)の両方を保護するために、異なるものの関連性のあるセキュリティ手法を採用しています。Appleの説明によると、

Apple は、以下の条件下でもユーザーのパスワードが保護されるように iCloud キーチェーンとキーチェーン回復を設計しました。

  • ユーザーの iCloud アカウントが侵害されました。
  • iCloud が外部の攻撃者または従業員によって侵害されました。
  • ユーザー アカウントへのサードパーティのアクセス。

セキュア同期— キーチェーンを同期しても、Apple は実際には iCloud にマスターコピーを保存しません。信頼サークルに最初に加わったデバイス(iPhone など)は、公開鍵と秘密鍵のペア(非対称暗号化と呼ばれる、広く普及している技術)を使用して同期用の ID を作成します。鍵ペアが生成され、公開鍵は秘密鍵で署名され、その後、iCloud パスワードから生成された鍵で暗号化されます。署名された信頼サークルは iCloud に保存されますが、秘密鍵はデバイスから外部に持ち出されることはありません。

この時点で、iCloud にはデバイスの公開鍵が保存されており、iCloud パスワードで暗号化され、デバイスの秘密鍵で署名されています (そのため、誰も偽造したり変更したりすることはできません)。ただし、キーチェーン自体は iCloud にはありません。

新しいデバイスが承認されると、そのデバイス上で同じプロセスが実行され、承認された公開鍵が署名され、各デバイスとiCloudの信頼サークルに追加されます(さらに暗号化が強化されます)。これは、サークル内の既存のデバイスに送信される通知と、さらに暗号化された署名(およびiCloudパスワード)と連携しており、誰かがプロセスを不正に操作して独自のデバイスを登録できないようにします。

パスワードが追加または変更されると、Appleはアップデートが必要なキーチェーン項目のみを、一度に1つずつ他のデバイスに同期します。つまり、各キーチェーン項目はそれを必要とするデバイスにのみ送信され、そのデバイスのみが読み取れるよう暗号化され、iCloudを通過するのは一度に1つの項目のみです。

これを読むには、攻撃者は受信側デバイスのキーiCloudパスワードの両方を侵害する必要があります。あるいは、ユーザーに気付かれずにプロセス全体を再構築する必要があります。たとえ悪意のあるApple社員であっても、キーチェーンの項目に密かにアクセスするには、iCloudの基本アーキテクチャを複数の場所で侵害する必要があります。iCloudのユーザー名とパスワードを盗んだとしても、攻撃者がキーチェーンにアクセスすることはできません。また、攻撃者は、現在信頼サークル内にあるデバイスが新しいキーチェーンを承認し、既に信頼サークル内にある他のすべてのデバイスで承認通知がユーザーに表示されないようにする必要があります。

Apple は悪意のある理由や大規模な政府機関の要請により、技術的にはこのプロセスを破壊することはできるが、それは容易ではなく、アーキテクチャ (通知と承認の部分) を変更しなければならず、詳細が公開された今となっては重大な法的責任を負わなければ不可能である。

安全な復元- 一度に送信するキーチェーン項目が 1 つだけの同期とは異なり、iCloud キーチェーン復元ではキーチェーン全体が iCloud にバックアップされます

Appleは、この複雑なプロセスを極めて安全に処理するために、セキュアエスクローサービスを構築しました。キーチェーンは強力な鍵で暗号化され、iCloudに保存されます。キーチェーンを復号するために必要な強力な鍵は、新しいiCloudセキュリティコードと、HSM(ハードウェアセキュリティモジュール)と呼ばれる特殊な暗号化ハードウェアの公開鍵で暗号化されます。セキュリティアナリストとしての仕事で、私はHSMについて多くの記事を書いています。HSMは、銀行、政府、大企業が暗号化と鍵の管理に使用している、改ざん防止機能を備えた非常に安全なハードウェアデバイスです。

少し複雑になりますが、簡単に言えば、iCloud セキュリティコードで暗号化された鍵は HSM だけが読み取ることができますが、HSM は iCloud セキュリティコードを保存していないため、キーチェーンを保護するために使用されている鍵そのものを読み取ることはできません。適切な条件が満たされると、HSM(実際には、1つのHSMが破損した場合に備えて複数のHSMがクラスタ化されています)が鍵を解放し、iCloud セキュリティコードで復号できるようになります。こうして初めて、その鍵を使ってキーチェーンのロックを解除できるようになります。

理解しにくいと感じても気にしないでください。Appleの明確なドキュメントがあり、HSMベンダーへのアドバイスで生計を立てているにもかかわらず、私はこれを理解するまでにかなり時間がかかりました。

復旧プロセスでは電話番号も必要になります。Appleから復旧プロセスの一環として返信が必要なテキストメッセージが送信されるためです。また、復旧をリクエストするにはiCloudのユーザー名とパスワード、キーのロックを解除するにはiCloudセキュリティコードが必要です。キーチェーンを開くには、これら3つの情報が必要です。誰かがあなたのアカウントへの不正アクセスを試み、数回失敗するとアカウントはロックされ、再試行するにはAppleサポートに電話するしかありません。その後10回失敗すると、HSMによってエスクロー記録が破棄され、キーは永久にロックされます。

安全のため、AppleはHSMの管理者アクセスカードを破棄し、不正アクセスが検出された場合はすべての鍵を削除するように設定しました。その後、すべてのユーザーに鍵が失われる前に再登録を促す通知が送信され、再登録するとユーザーは別のHSMクラスタに移動されます。

先ほども申し上げましたが、私の仕事の一部は大企業やセキュリティベンダーへのアドバイスです。このようなレベルのセキュリティは滅多にありませんし、HSMへのアクセスに必要な管理用スマートカードを破壊されるようなことは滅多にありません。

NSA対策のキーチェーン復旧方法— これらすべてにもかかわらず、Appleが法執行機関の要請に応じてプロセスを変更したり、HSMに侵入してキーチェーンと保存されているすべてのパスワードにアクセスしたりする可能性は依然として残っています。しかし、管理者アクセスカードが破棄されているため、影響を受けるのは新規登録のみです。

HSMが採用された理由は、iCloudセキュリティコードの4桁の値(デフォルト)も、長いユーザーコード(2つ目の選択肢)も、エントロピーが不十分なため、暗号的に安全なキーを生成するには不十分だからです。Appleは、誰かがiCloudセキュリティコードを推測することを懸念しており、HSMとキーエスクロープロセスはそれを防ぎます。

Appleは、デバイスが暗号的に安全なiCloudセキュリティコードを生成できるようにする3つ目のオプションを追加しました。iCloudキーチェーンを有効にするプロセス(「設定」>「iCloud」>「キーチェーン」をタップし、「iCloudキーチェーン」をオンにして、スクリーンショットの手順に従います)でiCloudセキュリティコードを設定する際にこのオプションを選択すると、iCloudキーチェーンの復元は全く異なるプロセスでキーチェーンを保護します。


これを行うと、デバイスは完全にランダムなiCloudセキュリティコードを生成します。このコードは非常に高いエントロピーを持つため、HSMは必要ありません。これは、現在の(そして予測可能な)技術を用いた総当たり攻撃による解読は理論上不可能だからです。このオプションを選択すると、キーチェーンを保護していた元のランダムキーが、このランダムなiCloudセキュリティコードを使用して生成されたキーでラップされます。このキーはAppleに送信されることはなく、傍受されることはありません。

このランダムな iCloud セキュリティ コード (1Password や LastPass などのパスワード管理ツールに保存し、きれいな手書きで紙にバックアップして安全に保管してください) がなければ、iCloud からキーチェーンを復号化する方法はなく、たとえだれかがコピーを盗んだとしても保護されます。

このプロセス全体は印象的で、最も心配性な人でも満足できるオプションが用意されており、Apple がデータのセキュリティ維持に多大な配慮と努力を払っているのを見て安心します。

iOS セキュリティの完全なホワイト ペーパーには、さらに多くの興味深い詳細が記載されており、今後皆さんと共有したいと考えています。

Idfte
Contributing writer at Idfte. Passionate about sharing knowledge and keeping readers informed.