セキュア ブート

セキュア ブートは、PC 業界のメンバーによって開発されたセキュリティ標準であり、OEM (Original Equipment Manufacturer) によって信頼されているソフトウェアのみを使用してデバイスが起動されるようにするのに役立ちます。 PC が起動すると、ファームウェアによって、UEFI ファームウェア ドライバー (オプション ROM とも呼ばれる)、EFI アプリケーション、およびオペレーティング システムを含む、各ブート ソフトウェアの署名がチェックされます。 署名が有効な場合、PC が起動し、ファームウェアによってオペレーティング システムに制御が渡されます。

OEM は、ファームウェア製造元の指示に従って、セキュア ブート キーを作成し、PC ファームウェアに保存できます。 UEFI ドライバーを追加する場合は、これらが署名されており、セキュア ブート データベースに含まれていることを確認する必要もあります。

トラスト ブートおよびメジャー ブートに含まれているセキュア ブート プロセスのしくみについては、「Windows 10 のブート プロセスのセキュリティ保護」を参照してください。

セキュア ブートの要件

セキュア ブートをサポートするには、次のものを用意する必要があります。

ハードウェア要件 詳細
UEFI バージョン 2.3.1 Errata C 変数 変数を SecureBoot=1 および SetupMode=0 に設定し、安全に事前プロビジョニングされたコンピューターを起動するために必要な署名データベース (EFI_IMAGE_SECURITY_DATABASE) を使用し、有効な KEK データベースに設定されている PK を含める必要があります。 詳細については、「Windows ハードウェア互換性プログラムの仕様とポリシー」の PDF のダウンロードで System.Fundamentals.Firmware.UEFISecureBoot システム要件を検索してください。
UEFI v 2.3.1 Section 27 プラットフォームでは、UEFI v 2.3.1 Section 27 のプロファイルに準拠するインターフェイスを公開する必要があります。
UEFI 署名データベース Windows が起動できるように、プラットフォームでは、UEFI 署名データベース (db) に正しいキーがプロビジョニングされている必要があります。 また、データベースに対する安全な認証済みの更新もサポートする必要があります。 安全な変数のストレージは、検出されずに変更できないように、実行中のオペレーティング システムから分離する必要があります。
ファームウェアの署名 すべてのファームウェア コンポーネントは、少なくとも RSA 2048 と SHA-256 を使用して署名されている必要があります。
ブート マネージャー 電源がオンにされたときに、システムによってファームウェアのコードの実行が開始され、アルゴリズム ポリシーに従って公開キー暗号化を使用して、ブート シーケンスのすべてのイメージ (Windows ブート マネージャーを含む) の署名を確認する必要があります。
ロールバック保護 システムでは、古いバージョンへのファームウェアのロールバックを防ぐ必要があります。
EFI_HASH_PROTOCOL プラットフォームでは、暗号化ハッシュ操作のオフロードのための EFI_HASH_PROTOCOL (UEFI v2.3.1 に従って) と、プラットフォーム エントロピーにアクセスするための EFI_RNG_PROTOCOL (Microsoft によって定義) を提供します。

署名データベースとキー

PC を展開する前に、OEM はセキュア ブート データベースを PC に保存します。 これには、署名データベース (db)、失効した署名データベース (dbx)、およびキー登録キー データベース (KEK) が含まれます。 これらのデータベースは、製造時にファームウェアの不揮発性 RAM (NV-RAM) に格納されます。

署名データベース (db) と失効した署名データベース (dbx) には、デバイスに読み込むことができる UEFI アプリケーション、オペレーティング システム ローダー (Microsoft オペレーティング システム ローダー、ブート マネージャーなど)、 UEFI ドライバーの署名者やイメージ ハッシュが一覧表示されます。 失効リストには、信頼できなくなったために読み込まれない可能性がある項目が含まれます。 イメージ ハッシュが両方のデータベースに存在する場合、失効した署名データベース (dbx) が優先されます。

キー登録キー データベース (KEK) は、署名データベースと失効した署名データベースを更新するために使用できる署名キーの個別のデータベースです。 Microsoft では、将来 Microsoft が署名データベースに新しいオペレーティング システムを追加したり、既知の不正なイメージを失効した署名データベースに追加したりできるように、指定したキーを KEK データベースに含める必要があります。

これらのデータベースに追加されたら、ファームウェアの最終検証とテストの後に、OEM はファームウェアを編集されないようにロックします。ただし、正しいキーで署名されている更新プログラムや、ファームウェア メニューを使用している物理的に存在するユーザーによる更新プログラムは除きます。次に、プラットフォームキー (PK) を生成します。 PK は、KEK への更新に署名するため、またはセキュア ブートをオフにするために使用できます。

これらのデータベースの作成に関するツールとサポートについては、ファームウェアの製造元にお問い合わせください。

ブート シーケンス

  1. PC の電源をオンにすると、署名データベースがそれぞれプラットフォーム キーに対してチェックされます。
  2. ファームウェアが信頼されていない場合、UEFI ファームウェアでは、OEM 固有の回復を開始して信頼されたファームウェアを復元する必要があります。
  3. Windows ブート マネージャーに問題がある場合、ファームウェアでは Windows ブート マネージャーのバックアップ コピーを起動しようと試みます。 これも失敗する場合、ファームウェアでは OEM 固有の修復を開始する必要があります。
  4. Windows ブート マネージャーの実行が開始された後、ドライバーまたは NTOS カーネルに問題があると、これらのドライバーやカーネル イメージを回復できるように、Windows 回復環境 (Windows RE) が読み込まれます。
  5. Windows によって、マルウェア対策ソフトウェアが読み込まれます。
  6. Windows によって、その他のカーネル ドライバーが読み込まれ、ユーザー モード プロセスが初期化されます。