Crea il blob binario per UEFI Secure Boot AWS - Amazon Elastic Compute Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea il blob binario per UEFI Secure Boot AWS

Puoi completare le fasi seguenti per personalizzare le variabili UEFI Secure Boot durante la creazione di un'AMI. La KEK che viene utilizzata in queste fasi è in vigore a partire da settembre 2021. Se Microsoft aggiorna la KEK, devi utilizzare la KEK più recente.

Per creare il blob AWS binario
  1. Crea un elenco di firme PK vuoto.

    touch empty_key.crt cert-to-efi-sig-list empty_key.crt PK.esl
  2. Scarica i certificati KEK.

    https://go.microsoft.com/fwlink/?LinkId=321185
  3. Avvolgi i certificati KEK in un elenco di firme UEFI (siglist).

    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_Win_KEK.esl MicCorKEKCA2011_2011-06-24.crt
  4. Scarica i certificati db di Microsoft.

    https://www.microsoft.com/pkiops/certs/MicWinProPCA2011_2011-10-19.crt https://www.microsoft.com/pkiops/certs/MicCorUEFCA2011_2011-06-27.crt
  5. Genera l'elenco delle firme db.

    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_Win_db.esl MicWinProPCA2011_2011-10-19.crt sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_UEFI_db.esl MicCorUEFCA2011_2011-06-27.crt cat MS_Win_db.esl MS_UEFI_db.esl > MS_db.esl
  6. L'Unified Extensible Firmware Interface Forum non fornisce più i file DBX. Ora sono forniti da Microsoft su GitHub. Scarica l'ultimo aggiornamento DBX dal repository degli aggiornamenti di Microsoft Secure Boot all'indirizzo https://github.com/microsoft/ secureboot_objects.

  7. Decomprimi l'update-binary firmato.

    Crea SplitDbxContent.ps1 con il contenuto dello script riportato di seguito. In alternativa, puoi installare lo script dalla PowerShell Galleria utilizzandoInstall-Script -Name SplitDbxContent.

    <#PSScriptInfo .VERSION 1.0 .GUID ec45a3fc-5e87-4d90-b55e-bdea083f732d .AUTHOR Microsoft Secure Boot Team .COMPANYNAME Microsoft .COPYRIGHT Microsoft .TAGS Windows Security .LICENSEURI .PROJECTURI .ICONURI .EXTERNALMODULEDEPENDENCIES .REQUIREDSCRIPTS .EXTERNALSCRIPTDEPENDENCIES .RELEASENOTES Version 1.0: Original published version. #> <# .DESCRIPTION Splits a DBX update package into the new DBX variable contents and the signature authorizing the change. To apply an update using the output files of this script, try: Set-SecureBootUefi -Name dbx -ContentFilePath .\content.bin -SignedFilePath .\signature.p7 -Time 2010-03-06T19:17:21Z -AppendWrite' .EXAMPLE .\SplitDbxAuthInfo.ps1 DbxUpdate_x64.bin #> # Get file from script input $file = Get-Content -Encoding Byte $args[0] # Identify file signature $chop = $file[40..($file.Length - 1)] if (($chop[0] -ne 0x30) -or ($chop[1] -ne 0x82 )) { Write-Error "Cannot find signature" exit 1 } # Signature is known to be ASN size plus header of 4 bytes $sig_length = ($chop[2] * 256) + $chop[3] + 4 $sig = $chop[0..($sig_length - 1)] if ($sig_length -gt ($file.Length + 40)) { Write-Error "Signature longer than file size!" exit 1 } # Content is everything else $content = $file[0..39] + $chop[$sig_length..($chop.Length - 1)] # Write signature and content to files Set-Content -Encoding Byte signature.p7 $sig Set-Content -Encoding Byte content.bin $content

    Utilizzate lo script per decomprimere i file DBX firmati.

    PS C:\Windows\system32> SplitDbxContent.ps1 .\dbx.bin

    Questo produce due file: signature.p7 e. content.bin Usalo content.bin nel passaggio successivo.

  8. Crea un archivio delle variabili UEFI usando lo script uefivars.py.

    ./uefivars.py -i none -o aws -O uefiblob-microsoft-keys-empty-pk.bin -P ~/PK.esl -K ~/MS_Win_KEK.esl --db ~/MS_db.esl --dbx ~/content.bin
  9. Controlla il blob binario e l'archivio delle variabili UEFI.

    ./uefivars.py -i aws -I uefiblob-microsoft-keys-empty-pk.bin -o json | less
  10. È possibile aggiornare il blob passandolo nuovamente allo stesso strumento.

    ./uefivars.py -i aws -I uefiblob-microsoft-keys-empty-pk.bin -o aws -O uefiblob-microsoft-keys-empty-pk.bin -P ~/PK.esl -K ~/MS_Win_KEK.esl --db ~/MS_db.esl --dbx ~/content.bin

    Output previsto

    Replacing PK Replacing KEK Replacing db Replacing dbx