Public bug reported:

[Impact]

Enable DRTM (Dynamic Root of Trust for Measurement) on the linux-nvidia kernel, 
giving Grace-based
platforms hardware-measured boot-integrity
attestation. Adds:

- ARM64 Secure Launch (DRTM): on `drtm=on` the kernel (as DLME) requests a
  dynamic launch, measures ACPI/DTB/cmdline/initrd into the TPM (PCR 18),
  validates the EFI systab/memory map, asserts SMMU DMA protection, and disables
  EFI runtime services.
- Trusted KASLR: under launch, the linear-map and kernel-image KASLR are seeded
  from the firmware TRNG (`TRNG_RND64`) instead of the attacker-visible FDT 
seed.
- FIRME attestation driver (`nvidia_firme`): TSM report + measurement-register
  backends (configfs/sysfs).

[Test Plan]

On DRTM-capable Grace/GB200 (TF-A/EL3 Secure Launch service + TPM):

- Boot `drtm=on` and confirm the launch engaged: `dmesg | grep -i slaunch`
  shows `DRTM Secure Launch detected`, the ACPI/DTB/cmdline/initrd measurement
  chain, and `SMMU DMA protection verified`; `modprobe nvidia_firme` loads.
- Boot without `drtm=on` → boots via the standard EFI stub (feature inert when
  not requested).

Validated on Grace/GB200/GB300.

[Where problems could occur]

- The Secure Launch code is gated behind the `drtm=on` command-line parameter, 
so
  without it the kernel behaves as before. The configuration changes it 
requires,
  though, apply to every arm64 build.

- Trusted KASLR requires disabling memory hotplug (`MEMORY_HOTPLUG=n`), which 
also
  disables the features built on it: ZONE_DEVICE, DAX and NVDIMM, HMM device
  memory, GPU shared virtual memory, PCI peer-to-peer DMA, VFIO DMABUF and
  virtio-mem. This is an intentional trade-off, limited to arm64; amd64 keeps
  memory hotplug.

- The image also ships uncompressed (`EFI_ZBOOT=n`), adding about 48 MB to 
`/boot`
  and the package per flavour, because GRUB on Grace can't load the compressed 
one.

[Other Info]

References:
- Arm DRTM Architecture (DEN0113) — dynamic-launch/DLME interface this
  implements: https://developer.arm.com/documentation/den0113/latest/
- Arm TRNG Firmware Interface (DEN0098) — SMCCC `TRNG_RND64`, trusted-entropy
  source for KASLR: https://developer.arm.com/documentation/den0098/latest/
- Trusted Firmware-A DRTM service — firmware side that performs the launch:
  
https://trustedfirmware-a.readthedocs.io/en/latest/design_documents/drtm_poc.html
- ARM64 Secure Launch upstreaming (LPC 2024, TrenchBoot):
  
https://lpc.events/event/18/contributions/1814/attachments/1482/3132/arm_securelaunch_lpc_2024.pdf

** Affects: linux-nvidia (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2161563

Title:
  Enable ARM64 Secure Launch (DRTM)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-nvidia/+bug/2161563/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to