Windows Secure Boot Key Creation and Management Guidance (original) (raw)

This document helps guide OEMs and ODMs in creation and management of the Secure Boot keys and certificates in a manufacturing environment. It addresses questions related to creation, storage and retrieval of Platform Keys (PKs), secure firmware update keys, and third party Key Exchange Keys (KEKs).

Note

Device OEMs, enterprises and customers can find the Microsoft recommended PK, KEK, DB and DBX binaries in Microsoft's Secure Boot open-source repository. The binaries are formatted to the expected EDKII format to easily integrate into firmware.

Device OEMs can find the Secure Boot configuration requirements for Windows 11, version 25H2 in section 1.6 of this article.

Note

The Microsoft Corporation KEK CA 2011 is set to expire in 2026, and all OEMs must create, sign, and submit updates for the new Microsoft Corporation KEK CA 2023 to Microsoft. This will allow Microsoft to update in-market devices with the new Microsoft KEK CA, allowing systems to continue receiving DB and DBX updates after 2026. For instructions and test collateral, please visit https://aka.ms/KEKUpdatePackage

Windows requirements for UEFI and Secure Boot can be found in the Windows Hardware Certification Requirements. This paper does not introduce new requirements or represent an official Windows program. It is intended as guidance beyond certification requirements, to assist in building efficient and secure processes for creating and managing Secure Boot Keys. This is important because UEFI Secure Boot is based on the usage of Public Key Infrastructure to authenticate code before allowed to execute.

The reader is expected to know the fundamentals of UEFI, basic understanding of Secure Boot (Chapter 27 of the UEFI specification), and PKI security model.

Requirements, tests, and tools validating Secure Boot on Windows are available today through the Windows Hardware Certification Kit (HCK). However, these HCK resources do not address creation and management of keys for Windows deployments. This paper addresses key management as a resource to help guide partners through deployment of the keys used by the firmware. It is not intended as prescriptive guidance and does not include any new requirements.

On this page:

This document serves as a starting point in developing customer ready PCs, factory deployment tools and key security best practices.

1. Secure Boot, Windows and Key Management

The UEFI (Unified Extensible Firmware Interface) specification defines a firmware execution authentication process called Secure Boot. As an industry standard, Secure Boot defines how platform firmware manages certificates, authenticates firmware, and how the operating system interfaces with this process.

Secure Boot is based on the Public Key Infrastructure (PKI) process to authenticate modules before they are allowed to execute. These modules can include firmware drivers, option ROMs, UEFI drivers on disk, UEFI applications, or UEFI boot loaders. Through image authentication before execution, Secure Boot reduces the risk of pre-boot malware attacks such as rootkits. Microsoft relies on UEFI Secure Boot in Windows 8 and above as part of its Trusted Boot security architecture to improve platform security for our customers. Secure Boot is required for Windows 8 and above client PCs, and for Windows Server 2016 as defined in the Windows Hardware Compatibility Requirements.

The Secure Boot process works as follows and as shown in Figure 1:

  1. Firmware Boot Components: The firmware verifies the OS loader is trusted (Windows or another trusted operating system.)
  2. Windows boot components: BootMgr, WinLoad, Windows Kernel Startup. Windows boot components verify the signature on each component. Any non-trusted components will not be loaded and instead will trigger Secure Boot remediation.
    • Antivirus and Antimalware Software initialization: This software is checked for a special signature issued by Microsoft verifying that it is a trusted boot critical driver, and will launch early in the boot process.
    • Boot Critical Driver initialization: The signatures on all Boot-critical drivers are checked as part of Secure Boot verification in WinLoad.
  3. Additional OS Initialization
  4. Windows Logon Screen

image of platform integrity architecture

Figure 1: Windows Trusted Boot Architecture

Implementation of UEFI Secure Boot is part of Microsoft’s Trusted Boot Architecture, introduced in Windows 8.1. A growing trend in the evolution of malware exploits is targeting the boot path as a preferred attack vector. This class of attack has been difficult to guard against, since antimalware products can be disabled by malicious software that prevents them from loading entirely. With Windows Trusted Boot architecture and its establishment of a root of trust with Secure Boot, the customer is protected from malicious code executing in the boot path by ensuring that only signed, certified "known good" code and boot loaders can execute before the operating system itself loads.

1.1 Public-Key Infrastructure (PKI) and Secure Boot

The PKI establishes authenticity and trust in a system. Secure Boot leverages PKI for two high-level purposes:

  1. During boot to determine if early boot modules are trusted for execution.
  2. To authenticate requests to service requests include modification of Secure Boot databases and updates to platform firmware.

A PKI consists of:

1.2 Public Key Cryptography

Public key cryptography uses a pair of mathematically related cryptographic keys, known as the public and private key. If you know one of the keys, you cannot easily calculate what the other one is. If one key is used to encrypt information, then only the corresponding key can decrypt that information. For Secure Boot, the private key is used to digitally sign code and the public key is used to verify the signature on that code to prove its authenticity. If a private key is compromised, then systems with corresponding public keys are no longer secure. This can lead to boot kit attacks and will damage the reputation of the entity responsible for ensuring the security of the private key.

In a Secure Boot public key system you have the following:

1.3 Secure Boot PKI requirements

The UEFI-defined root of trust consists of the Platform Key and any keys an OEM or ODM includes in the firmware core. Pre-UEFI security and a root of trust are not addressed by the UEFI Secure Boot process, but instead by National Institute of Standards and Technology (NIST), and Trusted Computing Group (TCG) publications referenced in this paper.

1.3.3.1 To enroll or update a Key Exchange Key (KEK) Enrolling the Platform Key

The platform owner enrolls the public half of the Platform Key (PKpub) by calling the UEFI Boot Service SetVariable() as specified in Section 7.2.1 of UEFI Spec 2.3.1 errata C, and resetting the platform. If the platform is in setup mode, then the new PKpub shall be signed with its PKpriv counterpart. If the platform is in user mode, then the new PKpub must be signed with the current PKpriv. If the PK is of type EFI_CERT_X509_GUID, then this must be signed by the immediate PKpriv, not a private key of any certificate issued under the PK.

1.3.3.2 Clearing the Platform Key

The platform owner clears the public half of the Platform Key (PKpub) by calling the UEFI Boot Ser¬vice SetVariable() with a variable size of 0 and resetting the platform. If the platform is in setup mode, then the empty variable does not need to be authenticated. If the platform is in user mode, then the empty variable must be signed with the current PKpriv; see Section 7.2(Variable Services) under UEFI specification 2.3.1 Errata C for details. It is strongly recommended that the production PKpriv never be used to sign a package to reset the platform since this allows Secure Boot to be disabled programmatically. This is primarily a pre-production test scenario.

The platform key may also be cleared using a secure platform-specific method. In this case, the global variable Setup Mode must also be updated to 1.

image: pk determines setup mode or user mode

Figure 4: Platform Key State diagram

1.3.3.3 PK generation

As per UEFI recommendations, the public key must be stored in non-volatile storage which is tamper and delete resistant on the PC. The Private keys stay secure at Partner or in the OEM’s Security Office and only the public key is loaded onto the platform. There are more details under section 2.2.1 and 2.3.

Microsoft provides a PK for OEMs to eliminate the responsibility of maintaining and securing the PK certificate. The PK is protected by Microsoft HSMs and managed as part of our Microsoft PKI operations.

The number of PK generated is at the discretion of the Platform owner (OEM). These keys could be:

  1. One per PC. Having one unique key for each device. This may be required for government agencies, financial institutions, or other server customers with high-security needs. It may require additional storage and crypto processing power to generate private and public keys for large numbers of PCs. This adds the complexity of mapping devices with their corresponding PK when pushing out firmware updates to the devices in the future. There are a few different HSM solutions available to manage large number of keys based on the HSM vendor. For more info, see Secure Boot Key Generation Using HSM.
  2. One per model. Having one key per PC model. The tradeoff here is that if a key is compromised all the machines within the same model would be vulnerable. This is recommended by Microsoft for desktop PCs.
  3. One per product line. If a key is compromised a whole product line would be vulnerable.
  4. One per OEM. While this may be the simplest to set up, if the key is compromised, every PC you manufacture would be vulnerable. To speed up operation on the factory floor, the PK and potentially other keys could be pre-generated and stored in a safe location. These could be later retrieved and used in the assembly line. Chapters 2 and 3 have more details.

1.3.3.4 Rekeying the PK

This may be needed if the PK gets compromised or as a requirement by a customer that for security reasons may decide to enroll their own PK.

Rekeying could be done either for a model or PC based on what method was selected to create PK. All the newer PCs will get signed with the newly created PK.

Updating the PK on a production PC would require either a variable update signed with the existing PK that replaces the PK or a firmware update package. An OEM could also create a SetVariable() package and distribute that with a simple application such as PowerShell that just changes the PK. The firmware update package would be signed by the secure firmware update key and verified by firmware. If doing a firmware update to update the PK, care should be taken to ensure the KEK, db, and dbx are preserved.

On all PCs, it is recommended to not use the PK as the secure firmware update key. If the PKpriv is compromised then so is the secure firmware update key (since they are the same). In this case the update to enroll a new PKpub might not be possible since the process of updating has also been compromised.

On SOCs PCs, there is another reason to not use the PK as the secure firmware update key. This is because the secure firmware update key is permanently burnt into fuses on PCs that meet Windows Hardware Certification requirements.

  1. Microsoft Corporation KEK 2K CA 2023
    • SHA-1 cert hash: 459AB6FB5E284D272D5E3E6ABC8ED663829D632B.
    • SignatureOwner GUID: {77fa9abd-0359-4d32-bd60-28f4e78f784b}.
    • Microsoft will provide the certificate to partners and it can be added either as an EFI_CERT_X509_GUID or an EFI_CERT_RSA2048_GUID type signature.
    • The Microsoft KEK certificate can be downloaded from: https://go.microsoft.com/fwlink/?linkid=2239775.

1.3.4.4 KEKDefault The platform vendor must provide a default set of Key Exchange Keys in the KEKDefault variable. Please reference UEFI specification section 27.3.3 for more information.

1.3.4.5 OEM/3rd party KEK - adding multiple KEK

Customers and Platform Owners don’t need to have their own KEK. On non-Windows RT PCs the OEM may have additional KEKs to allow additional OEM or a trusted 3rd party control of the db and dbx.

1.4 Signature Databases (Db and Dbx)

  1. Windows UEFI CA 2023
    • SHA-1 cert hash: 45A0FA32604773C82433C3B7D59E7466B3AC0C67.
    • SignatureOwner GUID: {77fa9abd-0359-4d32-bd60-28f4e78f784b}.
    • Microsoft will provide the certificate to partners and it can be added either as an EFI_CERT_X509_GUID or an EFI_CERT_RSA2048_GUID type signature.
    • The Windows UEFI CA 2023 can be downloaded from here: https://go.microsoft.com/fwlink/?linkid=2239776.

Except on systems that are locked down to boot Windows only, the OEM should consider including the Microsoft 3rd Party UEFI CAs and Microsoft Option ROM CA to allow UEFI drivers and applications from 3rd parties to run on the PC without requiring additional steps for the user.

  1. Microsoft Corporation UEFI CA 2011
    • SHA-1 cert hash: 46DEF63B5CE61CF8BA0DE2E6639C1019D0ED14F3.
    • SignatureOwner GUID: {77fa9abd-0359-4d32-bd60-28f4e78f784b}.
    • Microsoft will provide the certificate to partners and it can be added either as an EFI_CERT_X509_GUID or an EFI_CERT_RSA2048_GUID type signature.
    • The Microsoft Corporation UEFI CA 2011 can be downloaded from here: https://go.microsoft.com/fwlink/p/?linkid=321194.
  2. Microsoft UEFI CA 2023
    • SHA-1 cert hash: B5EEB4A6706048073F0ED296E7F580A790B59EAA.
    • SignatureOwner GUID: {77fa9abd-0359-4d32-bd60-28f4e78f784b}.
    • Microsoft will provide the certificate to partners and it can be added either as an EFI_CERT_X509_GUID or an EFI_CERT_RSA2048_GUID type signature.
    • The Microsoft UEFI CA 2023 can be downloaded from here: https://go.microsoft.com/fwlink/?linkid=2239872.
  3. Microsoft Option ROM UEFI CA 2023
    • SHA-1 cert hash: 3FB39E2B8BD183BF9E4594E72183CA60AFCD4277.
    • SignatureOwner GUID: {77fa9abd-0359-4d32-bd60-28f4e78f784b}.
    • Microsoft will provide the certificate to partners and it can be added either as an EFI_CERT_X509_GUID or an EFI_CERT_RSA2048_GUID type signature.
    • The Microsoft Option ROM UEFI CA 2023 can be downloaded from here: https://go.microsoft.com/fwlink/?linkid=2284009.

1.5 Keys Required for Secure Boot on all PCs

Note

Device OEMs, enterprises and customers can find the Microsoft recommended PK, KEK, DB and DBX binaries in Microsoft's Secure Boot open-source repository. The binaries are formatted to the expected EDKII format to easily integrate into firmware.

Key/db Name Variable Owner Notes
PKpub PK OEM PK – 1 only. Must be RSA 2048 or stronger. https://go.microsoft.com/fwlink/?linkid=2255361
Microsoft Corporation KEK 2K CA 2023 KEK Microsoft Allows updates to db and dbx: https://go.microsoft.com/fwlink/p/?linkid=2239775.
Windows UEFI CA 2023 db Microsoft This CA in the Signature Database (db) allows Windows to boot: https://go.microsoft.com/fwlink/?LinkId=2239776
Forbidden Signature Database dbx Microsoft List of known bad Keys, CAs or images from Microsoft
Secure firmware update key OEM Recommendation is to have this key be different from PK

Table 1: Keys/db needed for Secure Boot

1.6 UEFI Secure Boot configuration Requirements for Windows 11, version 25H2+ devices

OEMs must ensure that the UEFI Secure Boot configuration provisioned and shipped on Windows 11, 25H2+ devices with preloaded Windows includes the following:

PK OEM or Microsoft PK
KEK Microsoft Corporation KEK 2K CA 2023
DB Windows UEFI CA 2023
DBX Latest dbx package

For devices that are intended to support Linux, other 3rd party UEFI apps, or include special hardware requiring Option ROMs, OEMs may ship devices with this alternative configuration:

PK OEM or Microsoft PK
KEK Microsoft Corporation KEK 2K CA 2023
DB Windows UEFI CA 2023 Microsoft UEFI CA 2023 Microsoft Corporation UEFI CA 2011 Microsoft Option ROM UEFI CA 2023
DBX Latest dbx package

OEMs must ship the device with the Windows UEFI CA 2023-signed Windows Boot Manager, both on the device and in bootable media provided with the device. This ensures that the device uses the Windows Boot Manager that will continue to be serviced after the 2011 certificates expire.

While not recommended for devices shipping with Windows preloaded, the following configurations may be used:

Please refer to Microsoft's Secure Boot open-source repository for the recommended content for all secure boot UEFI variables. In the case of dbx content, revocations will be split and applied based on the signing certificate(s) in the KEK and DB variable of the device.

2. Key Management Solutions

Below are given some of the metrics we used for comparison.

2.1 Metrics used

The following metrics can help you select a HSM PC based on the requirements of UEFI specification 2.3.1 Errata C and your needs.

Pricing

Manufacturing environment

Standards and Compliance

Reliability and disaster recovery

2.2 Key Management Options

makecert -pe -ss MY -$ individual -n "CN=your name here" -len 2048 -r  

For more info, see Certificate Creation Tool (Makecert.exe).
This solution is not recommended.

2.3 HSM Key generation and storage for Secure Boot keys

2.4 Secure Boot and 3rd party signing

3. Summary and Resources

This section intends to summarize the above sections and show a step by step approach:

  1. Establish a secure CA or identify a partner to securely generate and store keys
    If you are not using a 3rd party solution:
    1. Install and configure the HSM software on the HSM server. Check your HSM reference manual for installation instructions. The server will either be connected to a standalone or network HSM.
      For info about HSM configuration, see Section 2.2.1, 2.3 and Appendix C.
      Most HSMs offer FIPS 140-2 level 2 and 3 compliance. Configure the HSM for either level 2 or level 3 compliance. Level 3 compliance has stricter requirements around authentication and key access and hence is more secure. Level 3 is recommended.
    2. Configure HSM for High Availability, Backup and Authentication. Check your HSM reference manual.
      Follow HSM provider guidelines on setting up HSM for High Availability and backup.
      Also, Network HSMs typically have multiple network ports to segregate traffic; allowing a server to communicate with network HSMs on a network separate from the regular production network.
      Once team members who are part of the security team have been identified and tokens assigned to them. You will need to setup HSM hardware for k-of-m authentication.
    3. Secure Boot Keys and certificate pre-generation. See Sections 1.3 to 1.5
      Use HSM APIs to pre-generate (generate in advance) the PK and Firmware Update Key and certificates.
      Required - PK (recommend 1 per model), Firmware Update key (recommend 1 per model), Microsoft KEK, Db, DbxNOTE: The Microsoft KEK, db, and dbx don’t have to be generated by the OEM and are mentioned for completeness.Optional - OEM/3rd party KEK db, dbx and any other keys which would go into OEM Db.
  2. Apply a Windows image to the PC.
  3. Install Microsoft db and dbx. See Section 1.3.6 and Appendix B – Secure Boot APIs.
    1. Install the Windows UEFI CA 2023 into db.
    2. Install an empty dbx if Microsoft does not provide one. Windows will automatically update DBX to the latest DBX through Windows Update on first reboot.
      Note
      Use PowerShell cmdlets which are part of the Windows HCK tests or use methods provided by BIOS vendor.
  4. Install Microsoft KEK. See Section 1.3.3.
    Install Microsoft KEK into the UEFI KEK database
    Caution
    Use PowerShell cmdlets which are part of the Windows HCK tests or use methods provided by BIOS vendor.
  5. Optional step - OEM/3rd party secure boot components. See Section 1.3.4 and 1.4.
    1. Identify if you have need for creating a OEM/3rd party KEK, db and dbx.
    2. Sign OEM/3rd party db and dbx with OEM/3rd party KEK(generated earlier) using HSM API.
    3. Install OEM/3rd party KEK, db and dbx.
  6. UEFI driver signing – See Section 2.4.
    If supporting add-in cards or other UEFI drivers/apps/bootloaders, install Microsoft UEFI CA 2023 and Microsoft Corporation UEFI CA 2011 into UEFI db.
  7. Secure boot firmware update key - See Section 1.3.5.
    1. Non-Windows RT PCs only: Install the Secure firmware update public key or its hash to save space.
    2. On SoC only, you may need to do something different, for example, burn Secure firmware update key: public or its hash.
  8. Enabling Secure Boot. See Appendix B – Secure Boot APIs.
    1. Install the OEM/ODM PKpub (certificate preferred, but key is okay) into the UEFI PK.
    2. Enroll the PK using Secure Boot API. The PC should be now enabled for Secure Boot.
      Note
      If you install the PK at the end, the MS KEK, db, dbx don’t need to be signed – no SignerInfo must be present. This is a shortcut.
  9. Testing Secure Boot: Execute any proprietary tests and Windows HCK tests as per instructions. See Appendix B – Secure Boot APIs.
  10. Ship platform: The PKpriv will likely never be used again, keep it safe.
  11. Servicing: Future firmware updates are securely signed with the Secure Firmware Update "private" key using the signing service.

3.1 Resources

Security Strategies White Paper - https://go.microsoft.com/fwlink/p/?linkid=321288

Windows HCK Submission -https://go.microsoft.com/fwlink/p/?linkid=321287

Appendix A – Secure Boot PKI checklist for manufacturing

Below is a high-level checklist summarizing the steps needed for enabling Secure Boot on non-Windows RT PCs.

Setting up Secure Boot

  1. Define security strategy (identify threats, define proactive and reactive strategy) as per the white paper in section 4.
  2. Identify security team as per the white paper in section 4.
  3. Establish a secure CA or identify a partner (recommended solution) to securely generate and store keys.
  4. Identify policy for how frequently you will be rekeying keys. This may depend on if you have any special customer requirements like governments or other agencies.
  5. Have a contingency plan in case the Secure Boot Key is compromised.
  6. Identify how many PK and other keys will you be generating as per section 1.3.3 and 1.5.
    This will be based on customer base, key storage solution and security of PCs.
    You can skip steps 7-8 if you are using the recommended solution of using a 3rd party for key management.
  7. Procure server and hardware for key management. – network or standalone HSM per section 2.2.1. Consider whether you will need one or several HSMs for high availability and your key back up strategy.
  8. Identify at least 3-4 team members who will have an authentication token for authentication on HSM.
  9. Use HSM or 3rd party to pre-generate Secure Boot-related keys and certificates. The keys will depend on the PC type: SoC, Windows RT or non-Windows RT. For more info, see Sections 1.3 through 1.5.
  10. Populate the firmware with the appropriate keys.
  11. Enroll the Secure Boot Platform Key to enable Secure Boot. See Appendix B for more details.
  12. Execute any proprietary tests and HCK Secure Boot tests as per instructions. See Appendix B for more details.
  13. Ship the PC. The PKpriv will likely never be used again, keep it safe.

Servicing (Updating firmware)

You may need to update firmware for several reasons such as updating an UEFI component or fixing Secure Boot key compromise or periodic rekeying of Secure Boot keys.

For more info, see Section 1.3.5 and section 1.3.6.

Appendix B – Secure Boot APIs

  1. Secure Boot API
    The following APIs are related to UEFI/Secure Boot:
    1. GetFirmwareEnvironmentVariableEx: Retrieves the value of the specified firmware environment variable.
    2. SetFirmwareEnvironmentVariableEx: Sets the value of the specified firmware environment variable.
    3. GetFirmwareType: Retrieves the firmware type.
  2. Setting PK
    Use the Set-SecureBootUEFI cmdlet to turn on Secure Boot. After your code sets the PK, system enforcement of Secure Boot does not take effect until the next reboot. Prior to the reboot, your code could call GetFirmwareEnvironmentVariableEx() or the PowerShell cmdlet: Get-SecureBootUEFI to confirm the contents of the Secure Boot databases.
  3. Verification
    You can use Msinfo32.exe or PowerShell cmdlets to check Secure Boot variable state. There is no WMI interface. You could also test by having someone insert an incorrectly-signed bootable USB stick (for example, from the Windows HCK Secure Boot Manual Logo Test) and verify that it fails to boot.
  4. Secure Boot Powershell Cmdlets
    • Confirm-SecureBootUEFI: Is UEFI Secure Boot "ON", True or False?
      SetupMode == 0 && SecureBoot == 1
    • Set-SecureBootUEFI: Set or Append authenticated SecureBoot UEFI variables
    • Get-SecureBootUEFI: Get authenticated SecureBoot UEFI variable values
    • Format-SecureBootUEFI: Creates EFI_SIGNATURE_LISTs & EFI_VARIABLE_AUTHENTICATION_2 serializations
  5. Windows HCK and Secure Boot Instructions
    The following steps apply to system tests and non-class driver PC tests.
    1. Disable Secure Boot protections.
      Enter your BIOS configuration and disable Secure Boot.
    2. Install the HCK Client software.
    3. Run all of the Windows HCK tests, except for the following:
      • BitLocker TPM and Recovery password tests with PCR[7]
      • BitLocker TPM and Recovery password tests for Arm PCs with Secure Boot
      • Secure Boot Logo Test
      • Secure Boot Manual Logo Test
    4. Enter your BIOS configuration, enable Secure Boot, and restore Secure Boot to the Default configuration.
    5. Run the following BitLocker and Secure Boot tests:
      • BitLocker TPM and Recovery password tests with PCR[7]
      • BitLocker TPM and Recovery password tests for Arm PCs with Secure Boot
      • Secure Boot Logo Test (automated)
    6. Enter the BIOS configuration and clear the Secure Boot configuration. This restores the PC to Setup Mode by deleting PK and other keys.
      Note
      Support for clearing is required for x86/x64 PCs.
    7. Run the Secure Boot Manual Logo Test.
      Note
      Secure Boot requires Windows HCK signed or VeriSign drivers on non-Windows RT PCs
  6. Windows HCK Secure Boot Logo Test (automated)
    This test will check for proper out-of-box Secure Boot configuration. This includes:
    • Secure Boot is Enabled.
    • The PK is not a known, test PK.
    • KEK contains the production Microsoft KEK.
    • db contains the production Windows CA.
    • dbx present.
    • Many 1kB variables are created/deleted.
    • A 32kB variable is created/deleted.
  7. Windows HCK Secure Boot manual test folder layout
    The Windows HCK Secure Boot Manual Logo test folder layout is described below:
    • "\Test" folder has the following:
      * Manufacturing and Servicing Test
      * Programmatically Enable Secure Boot in test configuration
      * Servicing Tests
      * Append a cert to db, verify function
      * Append a hash to dbx, verify function
      * Append a cert to dbx, verify function
      * Append 600+ hashes to dbx, verify size
      * Programmatically change the PK
    • "\Generate" folder has scripts which show the following:
      * How test certificates were created
      * The test certificates and private keys are included
      * How all of the tests were created
      * Turning certificates and hashes into signed packages
      * You can run this yourself, substitute your own certificates
    • "\certs" folder has all of the certificates you need to boot Windows:
      Note
      Please don’t use the methodology used in "ManualTests\generate\TestCerts" to generate keys and certificates. This is meant for Windows HCK test purposes only. It uses keys which are stored on disk which is very insecure and not recommended. This is not meant for use in a production environment.
  1. Windows HCK UEFI signing and submission
    The following links have more information:
  2. Rudimentary
    This level provides the lowest degree of assurance concerning identity of the individual. One of the primary functions of this level is to provide data integrity to the information being signed. This level is relevant to environments in which the risk of malicious activity is considered to be low. It is not suitable for transactions requiring authentication, and is generally insufficient for transactions requiring confidentiality, but may be used for the latter where certificates having higher levels of assurance are unavailable.
  3. Basic
    This level provides a basic level of assurance relevant to environments where there are risks and consequences of data compromise, but they are not considered to be of major significance. This may include access to private information where the likelihood of malicious access is not high. It is assumed at this security level that users are not likely to be malicious.
  4. Medium
    This level is relevant to environments where risks and consequences of data compromise are moderate. This may include transactions having substantial monetary value or risk of fraud, or involving access to private information where the likelihood of malicious access is substantial.
  5. High
    This level is appropriate for use where the threats to data are high, or the consequences of the failure of security services are high. This may include very high value transactions or high levels of fraud risk.

Secure Boot Key Generation and Signing Using HSM (Example)

UEFI Validation Option ROM Validation Guidance

Secure Boot Overview