I have implemented the secure boot for TX2 NX,
the fuse is programmed, and I can verify that I cannot program image without providing the correct sign key.
the user case is there are app partition and app_enc partition in external NVME device, the unencrypted app partition has the initrd and kernel which will be mounted as /boot. Then initrd will chroot and mount encrypted partition in app_ENC.
so the intention is to secure boot to verify signature of the initrd in /boot/, however, the initrd can be changed and board is boot up happily. In other words, secure boot does not verify the signature of initrd.
some fuse info can be found here.
it seems it’s following up of Topic 319744.
since JetPack 4 Reaches End of Life, we don’t have bug fixes anymore.
you should enable Disk Encryption, which prevent an attack from stealing or tampering with data on the disk.
Hi @JerryChang I don’t say it is a bug of Jetback 4, and the Disk Encryption is enabled.
The question is how to use secure boot feature to prevent initrd to be changed.
I enabled secure boot, but /boot/initrd still can be changed, and boot up. My scenario is to stop booting when initrd signature verification failed.
I understand that jetpack 4 has reached end of life - but we are not looking for bug fixes rather some assistance on technical issues around usage - particularly around how to protect the /boot/initrd file with a signature as a part of the secure boot feature.
Hi @JerryChang , just want to confirm one thing:
is the initrd and extlinux.conf signing supported by secure boot for Jetson TX2?
For the flash.sh code, I can see only AGX Xavier can do the initrd and extlinux.conf signing.
# Sign kernel, dtb, initrd and extlinux.conf images for T19x
if [ "${tegraid}" = "0x19" ]; then
do_sign="True";
fi
Hi @JerryChang , could you please help confirm that For TX2 NX, NVIDIA does not support the signing of initrd, but the encrypted initrd should be supported?
thanks
Hi @JerryChang, Also if encrypted initrd is supported - could you please help in explaining what will perform the decryption of the initrd - and how this works ? Thanks.
You can use this procedure on Jetson Xavier NX series, Jetson AGX Xavier series, and Jetson TX2 series to encrypt bootloader, kernel, kernel-dtb, and initrd. On Jetson Xavier NX series and Jetson AGX Xavier series you can encrypt and sign extlinux.conf.
it appears at least can encrypt initrd. BTW, we need they in NVME.
Or do we know what is the best solution to have initrd/kernel/extlinux.conf file secure, we don’t want to tamper them. thanks
We understand that the mmc can be programmed with flash.sh, however this does not support NVME, and we are trying to program the NVME using the “l4t_initrd_flash_internal.sh” which is the recommended process for running encryption on NVME.
Can you please assist with the issue of encrypting with NVME with l4t_initrd_flash_internal.sh ?