I have a general question about UEFI Secure boot for Jetson Systems on JP6 and JP7.
Could you please clarify how to update the PK key and revoke the old PK in case it is compromised? Is it possible to do this through the Capsule Update?
I read the documentation, but it doesn’t mention updating the PK.
That topic is about PKC key revocation, which is not UEFI key. But I am interested in UEFI Secure boot keys revocation (PK, KEK, DB), especially PK (Platform Key).
UEFI Secure Boot can be disabled by enrolling noPK.auth at runtime.
assume you enable UEFI secureboot via Capsule update, you may disable UEFI Secure Boot on next boot by running the kernel utility efi-updatevar with noPK.auth
Could you give me an example of how to generate noPK.auth correctly? I have not managed to find it in the documentation.
Is it possible to disable UEFI Secure boot if UEFI Secure Boot was enabled during the flashing process?
The Documentation strongly recommends to enable UEFI Secure boot at flashing time. However it seems that it will not possible to disable UEFI Secure boot in such case.
Is it possible to update PK key without disabling UEFI Secure boot?
it also depends-on how you enable UEFI Secure Boot.
– If UEFI Secure Boot is enabled during flashing, it cannot be disabled except by reflashing the QSPI.
– If UEFI Secure Boot is enabled at runtime, it can be disabled using noPK.auth.
so, to do this, please create an empty EFI Signature List (ESL) file named noPK.esl. i.e.$ touch noPK.esl
next, sign this empty file with your existing Platform Key using sign-efi-sig-list. this will generate noPK.auth,
for instance, $ sign-efi-sig-list -k PK.key -c PK.crt PK noPK.esl noPK.auth
We would like to enable UEFI Secure Boot during flashing on the factory floor. And we would like to have possibility to revoke PK key if it is compromised.
We also don’t want the device to boot with UEFI Secure boot disabled after flashing, so enabling UEFI SB by using Capsule Update after flashing is not our case.
Are you going to support such case in further JP releases?
I used Method Three to enable UEFI Secure boot. Next tried to disable it with noPK.auth, but with no luck (JP7.1, Thor)
note, you should install below utilities, $ sudo apt-get update $ sudo apt-get install efitools $ sudo efi-readvar
you should also check the UEFI Secureboot status with.. $ mokutil --sb-state.
let me have confirmation, had you enrolled keys (PK.auth), and then enroll the noPK.auth by efi-updatevar as below? $ sudo efi-updatevar -f /opt/uefi_keys/PK.auth PK
//reboot for checking $ sudo efi-updatevar -f /opt/uefi_keys/noPK.auth PK
after updating, you should reboot the system for checking UEFI secureboot status,
i.e. $ mokutil --sb-state.
Yes, I did the following steps: sudo efi-updatevar -f uefi_keys/db.auth db sudo efi-updatevar -f uefi_keys/KEK.auth KEK sudo efi-updatevar -f uefi_keys/PK.auth PK sudo reboot
may I also confirm UEFI secureboot status for each state. thanks
for instance, $ sudo efi-updatevar -f uefi_keys/db.auth db $ sudo efi-updatevar -f uefi_keys/KEK.auth KEK $ sudo efi-updatevar -f uefi_keys/PK.auth PK $ sudo reboot $ mokutil --sb-state // it checks the UEFI secureboot status of above operations.
But we never use SDK Manager and any ISO images. All our production tools based on Driver Package (BSP) like Jetson_Linux_R38.4.0_aarch64.tbz2. We hope that provided BSP contains correct versions of firmwares, especially UEFI firmwares in this case.