Tengo un portátil HP 245G7. El BIOS es muy básico y no parece haber ninguna opción desde dentro para agregar mi propio certificado personalizado a la base de datos db de arranque seguro.

Si hay una opción en este modelo, me gustaría saberlo.

Leí en alguna parte que solo las laptops empresariales HP tienen esta opción. Cuando llamo al soporte de HP, dicen que HP245G7 es una computadora portátil empresarial. Dado eso y asumiendo que BIOS no tiene esa opción, ¿cuáles son las alternativas para agregar mi propio certificado (archivo .cer) a la base de datos db?

El certificado se crea en Windows usando el comando de powershell New-SelfSignedCertificate

ingrese la descripción de la imagen aquí

answer

Todo el firmware técnicamente hace que esto sea posible, simplemente puede que no tengan una interfaz de usuario fácil para eso en la pantalla de configuración, lo que requiere que tome el camino más largo para crear los ESL usted mismo en el modo de configuración, pero ese modo debe estar disponible en x86.

Intentaré ampliar esto más adelante, pero en general lo haría:

  1. Cambie la función Arranque seguro a "Modo de configuración". Esto se puede hacer como una opción dedicada o borrando la clave de plataforma (PK) a través del firmware.

    Cuando el sistema está en modo de configuración, podrá actualizar db y KEK desde un sistema operativo en ejecución, sin necesidad de la clave secreta correspondiente a KEK o PK. Por ejemplo, un sistema Linux o alguna herramienta que se ejecute desde EFI Shell se puede utilizar para administrar db.

    Tengo mis notas para un sistema Dell, donde tuve que hacer esto en dos pasos separados: primero cambie el sistema al "Modo de configuración" a través de la configuración del firmware, luego inicie Linux y elimine manualmente el PKcontenido.

    chattr -i /sys/firmware/efi/efivars/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c
    efi-updatevar -k PlatformKey.key -d 0 PK
    
  2. Obtenga copias de las listas db y KEK originales de las variables EFI "dbDefault" y "KEKDefault", que son necesarias en las implementaciones de arranque seguro.

    Nota: Mis viejas notas para Dell dicen que esto no era necesario porque tenía la opción específica para activar el "Modo de configuración" y no necesitaba usar la opción "Borrar todas las claves" del martillo, por lo que la base de datos y la KEK conservaron sus valores originales y yo podría simplemente agregarles.

    Sin embargo, si termina borrando todas las claves (lo que también da como resultado el modo de configuración debido a que el PK está vacío), esta sigue siendo una opción útil.

  3. Cree una lista de firmas personalizada (.esl) a partir de dbDefault más su certificado de base de datos personalizado y agréguelo a la dbvariable. De manera similar, agregue KEKDefault más su certificado KEK personalizado en KEK.

    Lo que encontré en mis notas para crear este valor es que cert-to-efi-sig-listy es sign-efi-sig-listnecesario usarlo, y efi-updatevarluego importar ot.

    Sin embargo, también es posible agregar los certificados uno por uno al contenido existente de 'db' o 'KEK':

    chattr -i /sys/firmware/efi/efivars/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c
    efi-updatevar -k MyPlatformKey.key -g 77fa9abd-0359-4d32-bd60-28f4e78f784b -a -c KEK/MS_KEK_CA_2011.der KEK
    efi-updatevar -k MyPlatformKey.key -g $(uuidgen) -a -c MyKeyExchangeKey.crt KEK
    
    chattr -i /sys/firmware/efi/efivars/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f
    efi-updatevar -k MyKeyExchangeKey.key -a -c db/MS_UEFI_CA.der db
    efi-updatevar -k MyKeyExchangeKey.key -a -c db/MS_Windows_PCA.der db
    efi-updatevar -k MyKeyExchangeKey.key -a -c MySigningKey.crt db
    

    Finalmente, ingrese la clave de la plataforma original o la personalizada PK, momento en el que el sistema saldrá del modo de configuración al modo de usuario normal.

PowerShell se puede usar en Windows para manipular los certificados UEFI, donde el BIOS no tiene la interfaz de usuario requerida.

El siguiente método se encontró en la Guía de personalización de arranque seguro manual de HP . Esto requiere que PowerShell se ejecute como administrador.

El documento contiene descripciones extremadamente detalladas de los comandos de PowerShell y sobre el uso de Windows signtool.exepara preparar las claves para la instalación.

El documento en sí es demasiado voluminoso para incluirlo en una respuesta. Solo resumo a continuación su capítulo 2 para los pasos requeridos:

2 Setting up a customized Secure Boot environment
2.1 Backup existing Secure Boot configuration
2.2 Place your HP PC in Secure Boot setup mode
2.3 Obtain PK and KEK public keys
2.4 Self-signing certificates
2.4.1 Generate a new PK
2.4.2 Generate a new KEK
2.5 Install the new PK
2.5.1 PK: Create a valid SetVariable() package
2.5.2 Import PK using Windows tools
2.6 Install the new PK—signed KEK
2.6.1 KEK: Create a valid SetVariable() package
2.6.2 Import KEK Using Windows Tools
2.7 Install the New KEK—signed DB and DBX
2.8 Enable Secure Boot Once More
2.9 Add Additional Certificates to DB or DBX