セキュア ブートSecure boot

セキュア ブートは、PC 業界のメンバーによって開発されたセキュリティ標準であり、相手先ブランド供給業者 (OEM) によって信頼されているソフトウェアのみを使用してデバイスを起動できるようにします。Secure boot is a security standard developed by members of the PC industry to help make sure that a device boots using only software that is trusted by the Original Equipment Manufacturer (OEM). PC が起動すると、ファームウェアによって、UEFI ファームウェア ドライバー (オプション ROM とも呼ばれる)、EFI アプリケーション、およびオペレーティング システムを含む、各ブート ソフトウェアの署名がチェックされます。When the PC starts, the firmware checks the signature of each piece of boot software, including UEFI firmware drivers (also known as Option ROMs), EFI applications, and the operating system. 署名が有効な場合、PC が起動し、ファームウェアによってオペレーティング システムに制御が渡されます。If the signatures are valid, the PC boots, and the firmware gives control to the operating system.

OEM は、ファームウェア製造元の指示に従って、セキュア ブート キーを作成し、PC ファームウェアに保存できます。The OEM can use instructions from the firmware manufacturer to create Secure boot keys and to store them in the PC firmware. UEFI ドライバーを追加する場合は、これらが署名されており、セキュア ブート データベースに含まれていることを確認する必要もあります。When you add UEFI drivers, you'll also need to make sure these are signed and included in the Secure Boot database.

トラスト ブートおよびメジャー ブートに含まれているセキュア ブート プロセスのしくみについては、「Windows 10 のブート プロセスのセキュリティ保護」を参照してください。For information on how the secure boot process works included Trusted Boot and Measured Boot, see Secure the Windows 10 boot process.

セキュア ブートの要件Secure boot requirements

セキュア ブートをサポートするには、次のものを用意する必要があります。In order to support Secure boot, you must provide the following.

ハードウェア要件Hardware requirement 説明Details
UEFI バージョン 2.3.1 Errata C 変数UEFI Version 2.3.1 Errata C variables 変数を SecureBoot=1 および SetupMode=0 に設定し、安全に事前プロビジョニングされたコンピューターを起動するために必要な署名データベース (EFI_IMAGE_SECURITY_DATABASE) を使用し、有効な KEK データベースに設定されている PK を含める必要があります。Variables must be set to SecureBoot=1 and SetupMode=0 with a signature database (EFI_IMAGE_SECURITY_DATABASE) necessary to boot the machine securely pre-provisioned, and including a PK that is set in a valid KEK database. 詳細については、「Windows ハードウェア互換性プログラムの仕様とポリシー」の PDF のダウンロードで System.Fundamentals.Firmware.UEFISecureBoot システム要件を検索してください。For more information, search for the System.Fundamentals.Firmware.UEFISecureBoot system requirements in PDF download of the Windows Hardware Compatibility Program Specifications and Policies.
UEFI v 2.3.1 Section 27UEFI v2.3.1 Section 27 プラットフォームでは、UEFI v 2.3.1 Section 27 のプロファイルに準拠するインターフェイスを公開する必要があります。The platform must expose an interface that adheres to the profile of UEFI v2.3.1 Section 27.
UEFI 署名データベースUEFI signature database Windows が起動できるように、プラットフォームでは、UEFI 署名データベース (db) に正しいキーがプロビジョニングされている必要があります。The platform must come provisioned with the correct keys in the UEFI Signature database (db) to allow Windows to boot. また、データベースに対する安全な認証済みの更新もサポートする必要があります。It must also support secure authenticated updates to the databases. 安全な変数のストレージは、検出されずに変更できないように、実行中のオペレーティング システムから分離する必要があります。Storage of secure variables must be isolated from the running operating system such that they cannot be modified without detection.
ファームウェアの署名Firmware signing すべてのファームウェア コンポーネントは、少なくとも RSA 2048 と SHA-256 を使用して署名されている必要があります。All firmware components must be signed using at least RSA-2048 with SHA-256.
ブート マネージャーBoot manager 電源がオンにされたときに、システムによってファームウェアのコードの実行が開始され、アルゴリズム ポリシーに従って公開キー暗号化を使用して、ブート シーケンスのすべてのイメージ (Windows ブート マネージャーを含む) の署名を確認する必要があります。When power is turned on, the system must start executing code in the firmware and use public key cryptography as per algorithm policy to verify the signatures of all images in the boot sequence, up to and including the Windows Boot Manager.
ロールバック保護Rollback protection システムでは、古いバージョンへのファームウェアのロールバックを防ぐ必要があります。The system must protect against rollback of firmware to older versions.
EFI_HASH_PROTOCOLEFI_HASH_PROTOCOL プラットフォームでは、暗号化ハッシュ操作のオフロードのための EFI_HASH_PROTOCOL (UEFI v2.3.1 に従って) と、プラットフォーム エントロピーにアクセスするための EFI_RNG_PROTOCOL (Microsoft によって定義) を提供します。The platform provides the EFI_HASH_PROTOCOL (per UEFI v2.3.1) for offloading cryptographic hash operations and the EFI_RNG_PROTOCOL (Microsoft defined) for accessing platform entropy.

署名データベースとキーSignature Databases and Keys

PC を展開する前に、OEM はセキュア ブート データベースを PC に保存します。Before the PC is deployed, you as the OEM store the Secure Boot databases on the PC. これには、署名データベース (db)、失効した署名データベース (dbx)、およびキー登録キー データベース (KEK) が含まれます。This includes the signature database (db), revoked signatures database (dbx), and Key Enrollment Key database (KEK). これらのデータベースは、製造時にファームウェアの不揮発性 RAM (NV-RAM) に格納されます。These databases are stored on the firmware nonvolatile RAM (NV-RAM) at manufacturing time.

署名データベース (db) と失効した署名データベース (dbx) には、デバイスに読み込むことができる UEFI アプリケーション、オペレーティング システム ローダー (Microsoft オペレーティング システム ローダー、ブート マネージャーなど)、 UEFI ドライバーの署名者やイメージ ハッシュが一覧表示されます。The signature database (db) and the revoked signatures database (dbx) list the signers or image hashes of UEFI applications, operating system loaders (such as the Microsoft Operating System Loader, or Boot Manager), and UEFI drivers that can be loaded on the device. 失効リストには、信頼できなくなったために読み込まれない可能性がある項目が含まれます。The revoked list contains items that are no longer trusted and may not be loaded. イメージ ハッシュが両方のデータベースに存在する場合、失効した署名データベース (dbx) が優先されます。If an image hash is in both databases, the revoked signatures database (dbx) takes precedent.

キー登録キー データベース (KEK) は、署名データベースと失効した署名データベースを更新するために使用できる署名キーの個別のデータベースです。The Key Enrollment Key database (KEK) is a separate database of signing keys that can be used to update the signature database and revoked signatures database. Microsoft では、将来 Microsoft が署名データベースに新しいオペレーティング システムを追加したり、既知の不正なイメージを失効した署名データベースに追加したりできるように、指定したキーを KEK データベースに含める必要があります。Microsoft requires a specified key to be included in the KEK database so that in the future Microsoft can add new operating systems to the signature database or add known bad images to the revoked signatures database.

これらのデータベースに追加されたら、ファームウェアの最終検証とテストの後に、OEM はファームウェアを編集されないようにロックします。ただし、正しいキーで署名されている更新プログラムや、ファームウェア メニューを使用している物理的に存在するユーザーによる更新プログラムは除きます。次に、プラットフォームキー (PK) を生成します。After these databases have been added, and after final firmware validation and testing, the OEM locks the firmware from editing, except for updates that are signed with the correct key or updates by a physically present user who is using firmware menus, and then generates a platform key (PK). PK を使用して、KEK への更新に署名したり、セキュア ブートを無効にしたりすることができます。The PK can be used to sign updates to the KEK or to turn off Secure Boot.

これらのデータベースの作成に関するツールとサポートについては、ファームウェアの製造元にお問い合わせください。You should contact your firmware manufacturer for tools and assistance in creating these databases.

ブート シーケンスBoot sequence

  1. PC の電源をオンにすると、署名データベースがそれぞれプラットフォーム キーに対してチェックされます。After the PC is turned on, the signature databases are each checked against the platform key.
  2. ファームウェアが信頼されていない場合、UEFI ファームウェアでは、OEM 固有の回復を開始して信頼されたファームウェアを復元する必要があります。If the firmware is not trusted, the UEFI firmware must initiate OEM-specific recovery to restore trusted firmware.
  3. Windows ブート マネージャーに問題がある場合、ファームウェアでは Windows ブート マネージャーのバックアップ コピーを起動しようと試みます。If there is a problem with Windows Boot Manager, the firmware will attempt to boot a backup copy of Windows Boot Manager. これも失敗する場合、ファームウェアでは OEM 固有の修復を開始する必要があります。If this also fails, the firmware must initiate OEM-specific remediation.
  4. Windows ブート マネージャーの実行が開始された後、ドライバーまたは NTOS カーネルに問題があると、これらのドライバーやカーネル イメージを回復できるように、Windows 回復環境 (Windows RE) が読み込まれます。After Windows Boot Manager has started running, if there is a problem with the drivers or NTOS kernel, Windows Recovery Environment (Windows RE) is loaded so that these drivers or the kernel image can be recovered.
  5. Windows によって、マルウェア対策ソフトウェアが読み込まれます。Windows loads antimalware software.
  6. Windows によって、その他のカーネル ドライバーが読み込まれ、ユーザー モード プロセスが初期化されます。Windows loads other kernel drivers and initializes the user mode processes.

関連トピックRelated topics