Erstellen Sie den AWS binären Blob für UEFI Secure Boot - Amazon Elastic Compute Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen Sie den AWS binären Blob für UEFI Secure Boot

Sie können die folgenden Schritte ausführen, um die UEFI Secure Boot-Variablen während der AMI-Erstellung anzupassen. Der KEK, der in diesen Schritten verwendet wird, ist auf dem Stand von September 2021. Wenn Microsoft den KEK aktualisiert, müssen Sie den neuesten KEK verwenden.

Um den AWS binären Blob zu erstellen
  1. Erstellen Sie eine leere PK-Signaturliste.

    touch empty_key.crt cert-to-efi-sig-list empty_key.crt PK.esl
  2. Laden Sie die KEK-Zertifikate herunter.

    https://go.microsoft.com/fwlink/?LinkId=321185
  3. Verpacken Sie die KEK-Zertifikate in einer UEFI-Signaturliste (siglist).

    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_Win_KEK.esl MicCorKEKCA2011_2011-06-24.crt
  4. Laden Sie Microsofts DB-Zertifikate herunter.

    https://www.microsoft.com/pkiops/certs/MicWinProPCA2011_2011-10-19.crt https://www.microsoft.com/pkiops/certs/MicCorUEFCA2011_2011-06-27.crt
  5. Generieren Sie die DB-Signaturliste.

    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. Das Unified Extensible Firmware Interface Forum stellt die DBX-Dateien nicht mehr zur Verfügung. Sie werden jetzt von Microsoft am bereitgestellt GitHub. Laden Sie das neueste DBX-Update aus dem Microsoft Secure Boot-Updates-Repository unter https://github.com/microsoft/secureboot_objects herunter.

  7. Entpacken Sie die signierte Update-Binärdatei.

    Erstellen Sie SplitDbxContent.ps1 mit dem folgenden Skriptinhalt. Alternativ können Sie das Skript aus der PowerShell Galerie mit installierenInstall-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

    Verwenden Sie das Skript, um die signierten DBX-Dateien zu entpacken.

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

    Dadurch werden zwei Dateien erzeugt — signature.p7 undcontent.bin. Verwenden Sie content.bin im nächsten Schritt.

  8. Erstellen Sie einen UEFI-Variablenspeicher mit dem uefivars.py-Skript.

    ./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. Prüfen Sie das binäre Blob und den UEFI-Variablenspeicher.

    ./uefivars.py -i aws -I uefiblob-microsoft-keys-empty-pk.bin -o json | less
  10. Sie können das Blob aktualisieren, indem Sie es erneut an dasselbe Tool übergeben.

    ./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

    Erwartete Ausgabe

    Replacing PK Replacing KEK Replacing db Replacing dbx