Google のリモート キー プロビジョニングは Android 13 で義務付けられますが、これは複雑なトピックです。 それがあなたにとって何を意味するかは次のとおりです。
Android のキー認証は、SafetyNet、デジタル カー キー、 ID 認証情報 API. これは Android 8 Oreo 以降 Android の一部として必要であり、工場でデバイスにインストールされたルート キーに依存していました。 これらのキーのプロビジョニングには、メーカー側で最大限の機密性が必要であり、キーが漏洩した場合は、キーを取り消す必要があることを意味します。 これにより、消費者はこれらの信頼できるサービスをいずれも使用できなくなりますが、それを暴露する可能性のある脆弱性が存在した場合、残念なことになります。 リモートキープロビジョニング、これは必須になります アンドロイド13、その問題を解決することを目的としています。
Android 上の現在の信頼チェーンを構成するコンポーネント
新しいシステムがどのように機能するかを説明する前に、どのように機能するかについてのコンテキストを提供することが重要です。 古い (そして今でも多くのデバイスに設置されている) システムは機能します。 最近の多くの携帯電話は、ハードウェアを利用したキー構成証明を使用しています。これは、あらゆる種類の SafetyNet バイパスの重要な手段としてよく知られているかもしれません。 鍵構成証明の現在の状態について理解することが重要な概念がいくつかあります。
これらの概念を組み合わせることで、開発者はデバイスが改ざんされていないことを信頼でき、TEE 内の機密情報を処理できるようになります。
信頼できる実行環境
信頼できる実行環境 (TEE) は、重要なデータを処理するために使用される SoC 上の安全な領域です。 TEE は、Android 8 Oreo 以降で起動されたデバイスでは必須です。つまり、最近のスマートフォンには TEE が搭載されています。 TEE 内にないものはすべて「信頼できない」とみなされ、暗号化されたコンテンツのみが表示されます。 たとえば、DRM で保護されたコンテンツは、TEE 上で実行されているソフトウェアのみがアクセスできるキーで暗号化されます。 メイン プロセッサは暗号化されたコンテンツのストリームしか見ることができませんが、コンテンツは TEE によって復号化されてユーザーに表示されます。
ARM トラストゾーン
Trusty は、Android 上で TEE を提供する安全なオペレーティング システムであり、ARM システム上では ARM の Trustzone を利用します。 Trusty はプライマリ オペレーティング システムと同じプロセッサ上で実行され、デバイスの全機能にアクセスできますが、電話機の残りの部分からは完全に分離されています。 Trusty は以下で構成されます。
- から派生した小さな OS カーネル リトルカーネル
- 安全な環境と Android の間でデータを転送するための Linux カーネル ドライバー
- カーネルドライバー経由で信頼できるアプリケーション (つまり、安全なタスク/サービス) と通信するための Android ユーザー空間ライブラリ
独自の TEE システムに比べて利点があるのは、これらの TEE システムはコストが高くつく可能性があり、また Android エコシステムに不安定性をもたらす可能性があることです。 Trusty は Google からパートナー OEM に無料で提供されており、オープンソースです。 Android は他の TEE システムをサポートしていますが、Google が最も推進しているのは Trusty です。
ストロングボックス
StrongBox デバイスは、完全に独立した専用の認定済みセキュア CPU です。 これらには、組み込みセキュア エレメント (eSE) または SoC 上のセキュア プロセッシング ユニット (SPU) が含まれる場合があります。 Google は、現時点では StrongBox を搭載したデバイスに同梱することを「強く推奨」していると述べています。 アンドロイド12 (互換性定義ドキュメントによると) 将来の Android リリースでは必須になる可能性が高いためです。 これは本質的に、ハードウェア支援キーストアのより厳密な実装であり、TrustZone と一緒に実装できます。 StrongBox の実装例としては、Pixel スマートフォンの Titan M チップがあります。 StrongBox を利用している携帯電話はそれほど多くなく、ほとんどが ARM の Trustzone を利用しています。
キーマスターTA
Keymaster Trusted Application (TA) は、すべてのキーストア操作を管理および実行する安全なキーマスターです。 たとえば、ARM の TrustZone 上で実行できます。
Android 12 および Android 13 でのキー構成証明の変更点
Android スマートフォンでキーが公開された場合、Google はそのキーを取り消す必要があります。 これは、工場でキーが注入されたデバイスにとって問題を引き起こします。キーが漏洩するあらゆる種類の漏洩は、ユーザーが特定の保護されたコンテンツにアクセスできなくなることを意味します。 これには、多くの人が依存している Google Pay などのサービスへのアクセスの取り消しも含まれる可能性があります。 これは消費者にとって残念なことです。なぜなら、携帯電話をメーカーに修理してもらえなければ、自分で修理する方法がないからです。
リモートキープロビジョニングに入ります。 Android 12 以降、Google は工場内での秘密キーのプロビジョニングを次の組み合わせに置き換えています。 工場内の公開キー抽出と、有効期間が短い無線証明書プロビジョニング 証明書。 このスキームは Android 13 で必須となり、いくつかの利点があります。 何よりもまず、OEM や ODM が工場内で鍵の機密性を管理する必要がなくなります。 第 2 に、キーが侵害された場合でもデバイスを回復できるため、消費者は保護されたサービスへのアクセスを永久に失うことがなくなります。 今後は、デバイス上にあり、漏洩する可能性のあるキーを使用して計算された証明書を使用するのではなく、 脆弱性がある場合、証明書が必要なサービスが利用されるたびに、Google から一時証明書が要求されます。 使用済み。
仕組みとしては、とても簡単です。 一意の静的キーペアが各デバイスによって生成され、このキーペアの公開部分が OEM の工場で抽出され、Google のサーバーに送信されます。 そこで、それらは後でプロビジョニングするための信頼の基礎として機能します。 秘密キーは、それが生成された安全な環境から離れることはありません。
デバイスが初めてインターネットに接続するために使用されるとき、デバイスは、 生成したキーに、 工場。 Google のバックエンド サーバーはリクエストの信頼性を検証し、公開鍵に署名して証明書チェーンを返します。 その後、デバイス上のキーストアにこれらの証明書チェーンが保存され、証明書が要求されるたびにアプリに証明書チェーンが割り当てられます。 これは、Google Pay から Pokémon Go まで何でも可能です。
この正確な証明書要求チェーンは、証明書の有効期限が切れたとき、または現在のキー供給が枯渇したときに定期的に発生します。 各アプリケーションは異なる認証キーを受け取り、キー自体は定期的にローテーションされ、どちらもプライバシーを確保します。 さらに、Google のバックエンド サーバーは、デバイスの公開キーを検証するサーバーが添付された認証キーを認識しないようにセグメント化されています。 これは、Google が認証キーを、それを要求した特定のデバイスに関連付けることができないことを意味します。
Google によると、エンドユーザーは変更に気づきませんが、開発者は次の点に注意する必要があります。
- 証明書チェーン構造
- 新しいオンライン プロビジョニング インフラストラクチャの性質により、チェーンの長さは以前よりも長くなり、変更される可能性があります。
- 信頼のルート
- 最終的に、信頼のルートは現在の RSA キーから ECDSA キーに更新されます。
- RSA 認証の廃止
- KeyMint によって生成および証明されたすべてのキーは、ECDSA キーと対応する証明書チェーンで署名されます。 以前は、非対称キーは対応するアルゴリズムによって署名されていました。
- 有効期間の短い証明書と構成証明キー
- デバイスにプロビジョニングされた証明書は通常、有効期限が切れてローテーションされるまでの最大 2 か月間有効です。
私たちは Google に連絡し、これが Widevine DRM と関連があるかどうか、また一部の Pixel ユーザーがロックされたブートローダーによって DRM レベルがダウングレードされたと報告したことについて尋ねました。 また、これを OTA アップグレードとして Google Play サービス経由でユーザーに今すぐ配布できるかどうかも尋ねました。 返答があれば、必ずこの記事を更新します。 現在の信頼チェーンのどのコンポーネントがどのような影響を受けるかは明らかではありません。
ソース: グーグル