次の方法で共有


更新プログラム パッケージの認定と署名

ファームウェアの更新プログラムはドライバー パッケージとして配信されるため、通常のドライバー パッケージと同じ検証および署名プロセスをすべて実行する必要があります。 ドライバー パッケージは Windows Hardware Lab Kit (Windows HLK) テストに合格する必要があり、署名のためにパートナー センターに提出する必要があります。 署名されると、ドライバー パッケージが提出者に配布されます。

ドライバー パッケージの署名は、UEFI ファームウェアまたはデバイス ファームウェア自体の署名とは異なります。 セキュリティ カタログを介して提供されるドライバー パッケージの署名は、UEFI に渡す前にfirmware.binの整合性を検証するために Windows によって使用されます。 Windows では、ファームウェアにセキュリティ カタログが提供されません。 UEFI ファームウェアまたはデバイス ファームウェアの更新プログラムの署名はプラットフォーム ファームウェアによって検証され、Windows ではチェックされません。 IHV/OEM は、署名の検証、暗号化、またはその他の手段を通じてファームウェアの整合性とセキュリティを確保する責任を負います。

ファームウェア更新プログラムの署名プロセスと UEFI セキュア ブートの要件

UEFI セキュア ブートがアクティブな Windows デバイスで使用することを目的とした UEFI ファームウェアの更新プログラムに署名する場合、署名プロセスには次のタスクの組み合わせが必要です。

  1. 更新されたファームウェア イメージに署名します。

  2. 更新されたファームウェアを搭載したカプセルに署名します。

  3. オペレーティング システムに提供されているファームウェア更新プログラム パッケージに署名する。このパッケージにはカプセルが含まれます。

これらのタスクのうち、#3 のみが常に必要です。 セキュア ブート対応システムでは、すべての UEFI ファームウェアに署名する必要があります。これは、更新プログラムが UEFI ドライバーまたはアプリケーションに関する場合に #1 が必要であることを意味します。 コネクト スタンバイ システムの場合は、すべてのシステム ファームウェアにも #1 が必要です。 ファームウェア更新プログラムが他の方法で保護されていない場合は、ファームウェアの更新プログラム自体を保護し、インストールする前に更新プログラム パッケージの信頼性を確保するために、カプセルにサインインする必要があります。

次の図は、この記事の残りの部分で説明するさまざまなコンポーネントの署名者を示しています。

ファームウェア更新コンポーネントと署名者。

更新されたファームウェアに署名する

署名されている場合、更新されたファームウェアの署名は、起動時にシステムのファームウェア ローダーによって検証できる必要があります。 少なくとも、これは再起動時に自動的に発生しますが、信頼性とユーザー エクスペリエンスの理由から事前検証をお勧めします。

Arm システムでは、UEFI PE/COFF イメージのみが Microsoft Windows OS ローダー (BootMgfw.efi) であるため、ファームウェア イメージ自体とは別の UEFI ドライバーまたはアプリケーションはインストールできません。また、Microsoft Windows Production CA 2011 を含む唯一の UEFI 許可データベース エントリを使用して検証されます。 したがって、システムとデバイスのファームウェアのみを追加できます。 Arm 以外のシステムでは、UEFI ドライバーとアプリケーションは、UEFI 許可データベース内のキーにチェーンバックされた任意のキーで署名できます。

システムまたはデバイスのファームウェアは、システム ブート ROM にバインドされたキーにチェーンバックされたキーを使用して署名することも、他の方法 (署名されたカプセルや保護されたインストールなど) によって保護することもできます。

カプセルに署名する

カプセルの内容は OEM によって決定されます。 カプセルには、OEM が選択した形式で更新するファームウェア イメージのカタログが含まれているか、EFI アプリケーション イメージ (PE/COFF ファイル形式) の形式で配信される場合があります。 カプセルが PE/COFF ファイルの場合は、Windows ファームウェア更新プログラム パッケージの署名のために Microsoft に提出する前に、OEM によって署名されている必要があります。

Arm ベースのシステムでは、Microsoft Production CA 2011 以外のキーは UEFI 許可データベース ("db") で許可されておらず、Microsoft はこの CA の署名者を使用してサード パーティの UEFI コードに署名しないため、このようなカプセルの読み込みでは通常の UEFI LoadImage サービスを使用できません。 ただし、カプセル アプリケーションは、ブート ROM 公開キーまたは UEFI PK に対するプラットフォーム固有の検証を使用して読み込まれる場合があります。 この負荷は、他の画像と同様に TPM PCR[7] に測定する必要があります。 より一般的には、カプセル署名が必要と見なされる場合 (たとえば、完全な更新プログラム パッケージの整合性と信頼性を確保するため)、カプセルが UEFI の外部にあるファームウェアの更新プログラムを構成する場合、カプセルは、プラットフォームで保持されている非 UEFI キー (たとえば、ブート ROM または UEFI PK にバインドされた公開キーにチェーンバックされたキーを使用して署名) を使用して検証できるようにサインインする必要があります。

Arm 以外のシステムでは、UEFI 許可データベースのエントリにキー チェーンで署名されている限り、カプセルは EFI アプリケーションにすることができます。 その後、UEFI セキュア ブートを使用して、カプセルの整合性を確認できます。

ファームウェア更新プログラム パッケージに署名する

署名するには、ファームウェア更新プログラム パッケージをパートナー センターに送信する必要があります。 この手順では、パッケージの内容のカタログ署名を作成します。 カタログ署名は、パッケージが本物であり、UpdateCapsule を介してファームウェアに実際の更新プログラムが提供される前に改ざんされていないことを確認するために、Microsoft OS ローダーによって使用されます。

署名のためにパートナー センターにファームウェア更新プログラム パッケージを送信する:

  1. 前のセクションの手順に従って、カプセルの内容に署名します。

  2. カプセルを含むファームウェア更新プログラム パッケージを作成し、ファームウェア更新プログラム パッケージにテスト署名します。 詳細については、「更新プログラム ドライバー パッケージの作成」を参照してください。

    Windows 8 以降、テスト環境であっても、Windows では OEM Verisign 署名付きファームウェア更新プログラム パッケージは許可されません。

  3. ファームウェア更新プログラム パッケージをインストールしてファームウェアを更新します。

  4. テスト システムに Windows Hardware Lab Kit (HLK) をインストールし、ファームウェア デバイスに適用可能なすべてのテストを実行します。

  5. 署名のために、HLK ログとドライバーをパートナー センターに送信します。

ファームウェア更新プログラム ドライバー パッケージを送信するときに、該当する OS として Windows 8 以降を選択してください。 ダウンレベルの OS を選択した場合、パートナー センターは SHA1 アルゴリズムを使用してドライバー パッケージ内のカタログに署名します。 Windows 8 以降では、すべてのファームウェア更新プログラム ドライバー パッケージが SHA256 署名されている必要があります。

ファームウェア ドライバー パッケージを使用したシステムとデバイスのファームウェアの更新

ESRT テーブルにデータを入力

異なる地理的リージョンのファームウェアをカスタマイズ

ファームウェア更新パッケージの作成

更新プログラムの をインストールする