UEFI Secure Boot の AWS バイナリ BLOB を作成する
次の手順により、AMI の作成中に UEFI Secure Boot 変数をカスタマイズすることができます。この手順で使用される KEK は、2021 年 9 月現在のものです。Microsoft により KEK が更新された場合は、その最新の KEK を使用する必要があります。
AWS でバイナリ BLOB を作成するには
-
空の PK 署名リストを作成します。
touch empty_key.crt cert-to-efi-sig-list empty_key.crt PK.esl
-
KEK 証明書をダウンロードします。
https://go.microsoft.com/fwlink/?LinkId=321185
-
UEFI 署名リスト (
siglist
) で KEK 証明書をラップします。sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_Win_KEK.esl MicCorKEKCA2011_2011-06-24.crt
-
Microsoft から db 証明書をダウンロードします。
https://www.microsoft.com/pkiops/certs/MicWinProPCA2011_2011-10-19.crt https://www.microsoft.com/pkiops/certs/MicCorUEFCA2011_2011-06-27.crt
-
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
-
次のリンクから、更新された dbx 変更リクエストをダウンロードします。
https://uefi.org/revocationlistfile
-
前のステップでダウンロードした dbx 変更リクエストには、既に Microsoft KEK を使用した署名が行われているので、これを抽出または解凍する必要があります。以下のリンクを使用できます。
https://gist.github.com/out0xb2/f8e0bae94214889a89ac67fceb37f8c0
https://support.microsoft.com/en-us/topic/microsoft-guidance-for-applying-secure-boot-dbx-update-e3b9e4cb-a330-b3ba-a602-15083965d9ca
-
uefivars.py
スクリプトを使用して UEFI 変数ストアを作成します。./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 ~/dbx-2021-April.bin
-
バイナリ BLOB と UEFI 変数ストアを確認します。
./uefivars.py -i aws -I uefiblob-microsoft-keys-empty-pk.bin -o json | less
-
再度、同じツールに渡すと、BLOB を更新できます。
./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 ~/dbx-2021-April.bin
正常な出力
Replacing PK Replacing KEK Replacing db Replacing dbx