シールドキー保護(SKP)
データ保護をサポートするAppleデバイスでは、キー暗号鍵(KEK)はシステム上のソフトウェアの測定によって保護(または封印)され、Secure Enclaveからのみ利用可能なUIDに関連付けられます。Appleシリコン搭載Macでは、システム上のセキュリティポリシーに関する情報を取り込むことで、KEKの保護がさらに強化されています。これは、ほかのプラットフォームではサポートされない重要なセキュリティポリシーの変更(セキュアブートやSIPの無効化など)がmacOSではサポートされているためです。Appleシリコン搭載Macでは、この保護の対象にはFileVaultの鍵も含まれます。これは、FileVaultはデータ保護(クラスC)を使用して実装されているためです。
ユーザパスワード、長期SKP鍵、およびハードウェア鍵1(Secure EnclaveのUID)をタングルして生成される鍵を、「パスワードから導出された鍵」といいます。この鍵は、ユーザのキーバッグ(サポートされるすべてのプラットフォーム)およびKEK(macOSのみ)を保護し、生体認証でのロック解除やApple Watchなどのほかのデバイスでの自動ロック解除を可能にするために使用されます。
Secure Enclave Bootモニタは読み込まれたSecure Enclave OSの測定値を取得します。アプリケーションプロセッサのBoot ROMがLLBに付属したImage4マニフェストを測定するとき、そのマニフェストには、システムとペアリングされたその他のファームウェアのうち、読み込まれたものすべての測定値も含まれています。LocalPolicyには読み込まれたmacOSのコアセキュリティ構成が含まれます。LocalPolicyにはmacOS Image4マニフェストのハッシュであるnsih
フィールドも含まれます。macOS Image4マニフェストには、macOSとペアリングされたすべてのファームウェアの測定値、およびブートカーネルコレクションや署名済みシステムボリューム(SSV)のルートハッシュなどのコアmacOSブートオブジェクトの測定値が含まれます。
攻撃者が予期せず上記の測定されたファームウェア、ソフトウェア、またはセキュリティ構成コンポーネントのいずれかを変更できた場合には、それによりハードウェアレジスタに保存された測定値が変更されます。測定値の変更によって、暗号とハードウェアから導出されたシステム測定値ルート鍵(SMRK)が別の値へと変わり、その結果、鍵階層でシールの封印が壊れます。これによりシステム測定値デバイス鍵(SMDK)がアクセス不能となり、その結果KEKが、そしてデータがアクセス不能となります。
ただし、システムが攻撃を受けていないときは、ファームウェアの測定値およびLocalPolicyのnsih
フィールドが新規のmacOS測定値を指すように変更する正規のソフトウェアアップデートに対応する必要があります。信頼できると分かっている情報源を持たないようなほかのシステムがファームウェア測定値の取り込みを試みる場合、ユーザはセキュリティを無効にし、ファームウェアをアップデートしてから、再びセキュリティを有効にする必要があります。これは、新しい測定値ベースラインを取得するためです。これによって、ソフトウェアアップデート中に攻撃者がファームウェアを改ざんするリスクが大幅に高まります。Image4マニフェストが必要なすべての測定値を含んでいることがシステムの役に立っています。通常ブート中に測定値が一致したときにSMDKをSMRKと共に復号するハードウェアは、提示された将来のSMRKへとSMDKを暗号化することもできます。ソフトウェアアップデート後に予期される測定値を指定することで、ハードウェアは現在のオペレーティングシステムでアクセス可能なSMDKを暗号化し、将来のオペレーティングシステムでもアクセス可能とすることができます。同様に、お客様がLocalPolicyのセキュリティ設定を正規に変更したときは、LLBが次回の再起動で計算するLocalPolicyの測定値に基づいて、SMDKが将来のSMRKへと暗号化される必要があります。