UEFI Secure Boot y OpenCore (5)

Todos los certificados UEFI actuales de Microsoft caducan en 2026. Estos incluyen Microsoft Corporation KEK CA 2011, almacenado en la base de datos KEK, y dos certificados almacenados en la db llamados Microsoft Windows Production PCA 2011, que firma el gestor de arranque de Windows, y Microsoft UEFI CA 2011 (o UEFI CA de terceros) que firma componentes de controladores de hardware y sistemas operativos de terceros.

Microsoft está migrando a otros nuevos. La primera actualización es añadir Microsoft Windows UEFI CA 2023 a la base de datos del firmware. El nuevo certificado se utilizará para firmar los componentes de arranque de Windows antes de que expire la CA de producción de Microsoft Windows 2011.

¿Mi placa base tiene el nuevo certificado?

Algunos fabricantes OEM incluyen el certificado 2023 en actualizaciones recientes de BIOS. Es un proceso que ha comenzado recientemente por lo que (bastantes) firmware UEFI no lo incluyen todavía. Por ejemplo, la última versión de mi placa base es F11 y no tiene este certificado, solo tiene los del 2011.

Para verificar si tienes el nuevo certificado en el firmware, ve al menú de BIOS donde puede ver las claves de arranque seguro >> Authorized Signatures (db) >> busca Windows UEFI CA 2023. Si sólo tienes Microsoft Windows Production PCA 2011 y Microsoft Corporation UEFI CA 2011 >> el firmware no tiene el certificado 2023.

OpenCore y el nuevo certificado

Pero los usuarios de OpenCore operan de manera diferente. Tenemos que crear nuestras propias claves seguras, firmar los archivos de OpenCore con ellas e insertarlas en el firmware en lugar de (o agregarlas) a las existentes.

He generado nuevas claves con los certificados de Microsoft 2011, que ya estábamos usando antes del lanzamiento del nuevo certificado 2023, y no he encontrado ningún problema para insertarlas en el firmware y arrancar OpenCore 1.0.0 firmado digitalmente con estas claves. Parece que OpenCore no necesita el nuevo certificado 2023 (como es de esperar).

Lo que también es de esperar es que las versiones más recientes de Windows 11 y probablemente Linux necesiten este nuevo certificado. Pero yo he arrancado Windows 11 (con las últimas actualizaciones a fecha del 15 de junio de 2024) y Ubuntu 24.04, así como OpenCore 1.0.0, con las claves creadas para OpenCore sin tener aún el certificado 2023 en el firmware.

Sin embargo, hay usuarios que han tenido problemas al iniciar OpenCore con UEFI Secure Boot habilitado después de actualizar el BIOS de su placa base, usando las mismas variables seguras que arrancaban OpenCore antes de actualizar BIOS. Puede ser algo relacionado con el fabricante y modelo de la placa base. En mi caso, Gigabyte Z390 Aorus Elite, no he tenido este problema hasta el momento.

Instalación del nuevo certificado

El certificado Windows UEFI CA 2023 se puede instalar de 2 formas: menú BIOS o dentro de Windows 11.

1.- Instalar el certificado de Microsoft actualizado desde Windows es bastante fácil:

Abre PowerShell como administrador y ejecuta:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Nombre "AvailableUpdates" -Valor 0x40
Start-ScheduledTask -TaskName “\Microsoft\Windows\PI\Secure-Boot-Update”

Reinicia (dos veces)

Comprueba si se ha instalado el certificado. Ejecuta en PowerShell:

[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match 'Windows UEFI CA 2023'. Debe devolver Verdadero.

2.- Para instalarlo desde el menú del BIOS debes descargarlo en un formato compatible. Hay un sitio Secure Boot Objects de Microsoft en GitHub donde puedes obtener todos los archivos binarios actualizados de Microsoft en un formato que puedes insertar en el firmware usando el menú del BIOS. Este repositorio se utiliza para contener los objetos de arranque seguro recomendados por Microsoft para usar como variables KEK, DB y DBX predeterminadas:

  • Ve a Releases y descarga edk2-x64-secureboot-binaries
  • Dentro del paquete hay 4 archivos .bin:
    • DefaultPk.bin
    • DefaultKek.bin
    • DefaultDb.bin
    • DefaultDbx.bin
  • Ve al menú BIOS >> Secure Boot >> Ket Management >> reemplaza las variables seguras (DefaultDb.bin en este caso).

Al actualizar las claves seguras UEFI con estos archivos, configuras la placa base con las últimas versiones de las variables seguras de Microsoft. Esto soluciona el problema de avisos como «Revoked Certificate» o «Security Violation» que los usuarios pueden recibir al iniciar Windows o Linux con UEFI Secure Boot habilitado y BIOS actualizado que incluye el certificado 2023. Pero con esta configuración no es posible iniciar OpenCore con el arranque seguro habilitado porque OpenCore ya no está firmado con las claves existentes en el firmware.

Nota: Puedes agregar solo DefaultDb.bin (certificado actualizado en 2023) agregándolo (no reemplazando) a las variables db existentes. Si estas son las que hemos creado para OpenCore, el certificado 2023 se suma a las 3 variables que ya existen: nuestra propia KEK y los 2 certificados de Microsoft de 2011. Con esta configuración, OpenCore arranca bien con UEFI Secure Boot habilitado.

Windows UEFFI CA 2023

Resumen

  • La última versión de mi BIOS no incluye el certificado 2023.
  • Puedo iniciar OpenCore firmado digitalmente con arranque seguro habilitado después de insertar en el firmware mis propias claves, incluso si no tengo el certificado 2023.
  • También puedo arrancar OpenCore firmado digitalmente con arranque seguro habilitado después de insertar en el firmware mis propias claves y además el certificado 2023.

Enlaces de interés

KB5036210: Actualización del certificado de Windows UEFI CA 2023 de las claves de arranque seguro de Microsoft a la base de datos de firmas (DB) permitida de arranque seguro

KB5025885: Cómo administrar las revocaciones del Administrador de arranque de Windows para cambios de arranque seguro asociados con CVE-2023-24932

Deja un comentario