次の方法で共有


認定し、更新プログラムパッケージに署名します。

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

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

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

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

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

  2. 更新されたファームウェアを実行しているcapsuleに署名します。

  3. オペレーティングシステムに提供されるファームウェア更新パッケージに署名します。このパッケージには、capsuleが含まれます。

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

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

firmware update components and signers.

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

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

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

システムまたはデバイスのファームウェアは、システムブートROMにバインドされたキーにチェーンされたキーを使用して署名するか、他の手段(たとえば、署名されたcapsuleと保護されたインストール)で保護することができます。

capsuleに署名します

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ESRTテーブルを設定します。

さまざまな地域のファームウェアをカスタマイズします。

ファームウェア更新パッケージを作成します。

更新プログラムをインストールします。