[Bug 2119159] Re: [SRU] [Nano] [Agx] [Nx] DA Lockout issues when performing encrypt and decrypt operations using ECC or RSA through clevis-encrypt-tpm2
Arturo Esteban Vazquez Gutierrez
2119159 at bugs.launchpad.net
Thu Aug 7 23:13:59 UTC 2025
After discussing internally we decided to include an additional
validation, to ensure that the `/dev/tpmrm0` device node exists before
updating its read/write permissions, since the questing version of the
package has already been uploaded (1.5) we implemented and updated
version (1.6) with this fix for questing (1.5_to_1.6).
A test build for this package can be in this PPA:
https://launchpad.net/~esteban-vazquez/+archive/ubuntu/lp-2119159
** Patch added: "nvidia-tegra-defaults_from_1.5_to_1.6.diff"
https://bugs.launchpad.net/ubuntu/+source/nvidia-tegra-defaults/+bug/2119159/+attachment/5897473/+files/nvidia-tegra-defaults_from_1.5_to_1.6.diff
--
You received this bug notification because you are a member of Ubuntu
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/2119159
Title:
[SRU] [Nano] [Agx] [Nx] DA Lockout issues when performing encrypt and
decrypt operations using ECC or RSA through clevis-encrypt-tpm2
Status in nvidia-tegra-defaults package in Ubuntu:
Fix Released
Status in nvidia-tegra-defaults source package in Jammy:
In Progress
Status in nvidia-tegra-defaults source package in Noble:
In Progress
Status in nvidia-tegra-defaults source package in Plucky:
In Progress
Status in nvidia-tegra-defaults source package in Questing:
Fix Released
Bug description:
[ Impact ]
* This is a change for hardware enablement.
* On the NVIDIA Jetson Orin platforms (Nano, NX, and AGX) installed
with candidate Ubuntu for Jetson images (Jammy:
https://cdimage.ubuntu.com/nvidia-tegra/ubuntu-server/jammy/daily-
preinstalled/ Noble: https://cdimage.ubuntu.com/nvidia-tegra/ubuntu-
server/noble/daily-preinstalled/), when performing encrypt and decrypt
operations using ECC or RSA through clevis-encrypt-tpm2, the following
error is displayed: "authorizations for objects subject to DA
protection are not allowed at this time because the TPM is in DA
lockout mode".
* On the NVIDIA Jetson Orin platforms, the TPM (Trusted Platform
Module) is an fTPM (Firmware TPM), implemented as an OP-TEE Trusted
Application. The "DA Lockout" message is not actually been hammered by
a dictionary attack, but when OP-TEE Secure Storage is unavailable,
TPM NVRAM is unavailable so the system locks everyone out.
* This error will be fixed properly initializing the TPM, by first
starting the TEE-supplicant and then installing the "tpm_ftpm_tee"
module, using a system-d Drop-In file to override the TEE-supplicant
initialization sequence. TEE-supplicant has been set as a dependency
of the "nvidia-tegra-defaults" package, for it to be installed in the
Ubuntu for Jetson images.
[ Test Plan ]
1. Install the candidate Ubuntu for Jetson image on a Jetson Orin
device (Jammy: https://cdimage.ubuntu.com/nvidia-tegra/ubuntu-
server/jammy/daily-preinstalled/manual/, Noble:
https://cdimage.ubuntu.com/nvidia-tegra/ubuntu-server/noble/daily-
preinstalled/current/).
2. Run the commands below, for both cases (ECC and RSA) the following
error will be displayed: "authorizations for objects subject to DA
protection are not allowed at this time because the TPM is in DA
lockout mode".
* ECC encrypt and decrypt:
```
$ sudo apt install clevis-tpm2 -y
$ sudo chmod 666 /dev/tpmrm0 #This is only needed before updating
the package, since the updated package runs this step.
$ rand=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c32768)
$ result=$(echo -n $rand | clevis-encrypt-tpm2 '{"hash": "sha256", "key":"ecc", "pcr_bank":"sha256","pcr_ids":"0,1"}' | clevis-decrypt-tpm2)
$ [[ $result == $rand ]] && echo "The strings are the same" || echo "there was an error"
```
* RSA encrypt and decrypt:
```
$ sudo apt install clevis-tpm2 -y
$ sudo chmod 666 /dev/tpmrm0 #This is only needed before updating
the package, since the updated package runs this step.
$ rand=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c32768)
$ result=$(echo -n $rand | clevis-encrypt-tpm2 '{"hash": "sha256", "key":"rsa", "pcr_bank":"sha256","pcr_ids":"0,1"}' | clevis-decrypt-tpm2)
$ [[ $result == $rand ]] && echo "The strings are the same" || echo "there was an error"
```
If the following error is displayed when testing the "Noble"
version of this package: "A TPM2 device with the in-kernel resource
manager is needed!", proceed with the steps described in bullet #3.
3. If testing the "Noble" version of the package, ensure to have the
CONFIG_ARM_FFA_TRANSPORT Kernel config symbol set to "y".
```
$ grep CONFIG_ARM_FFA_TRANSPORT /boot/config-$(uname -r)
CONFIG_ARM_FFA_TRANSPORT=y
```
If CONFIG_ARM_FFA_TRANSPORT is set to "m" the Kernel can be updated
by installing the `linux-nvidia-tegra-ppadev-jetson-devel` package as
shown below.
It is important to say that the Tegra Noble Kernel is still under
development, that's why to test this updated package in "Noble" it
should be used the devel-daily Kernel.
```
$ sudo add-apt-repository ppa:ubuntu-tegra/kernel-daily
$ sudo apt update
$ sudo apt install linux-nvidia-tegra-ppadev-jetson-devel
$ sudo reboot now
$ grep CONFIG_ARM_FFA_TRANSPORT /boot/config-$(uname -r)
CONFIG_ARM_FFA_TRANSPORT=y
```
4. Then, proceed installing the updated "nvidia-tegra-defaults"
package.
5. Rerun the "encrypt and decrypt" testing instructions described on
bullet #2 and confirm that now the tests succeed.
6. The "Questing" and "Plucky" versions of the package were tested on
a "Noble" image following described the instructions for "Noble".
[ Where problems could occur ]
* If a user installs this package on a different platform which
doesn't has the proper TEE support enabled in the Kernel, the
following message can be displayed when starting the tee-supplicant
service: "failed to find an OP-TEE supplicant device".
* If a user installs this package on a different platform which
doesn't has the "tpm_ftpm_tee" module support, the system-d Drop-In
will fail to install such Kernel module.
* If user installs the package on a "Noble" environment which does not
have the CONFIG_ARM_FFA_TRANSPORT=y set, the TEE-supplicant service
will not be started, so, before installing the "Noble" version of the
package it is recommended to verify the CONFIG_ARM_FFA_TRANSPORT value
as suggested in the test plan.
* No additional problems should happen since this fix only ensures
that the TEE-supplicant is running before installing the
"tpm_ftpm_tee" module.
[ Other Info ]
* This tee/tpm initialization sequence was discussed in the following
private bug: https://bugs.launchpad.net/riverside/+bug/2103405
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nvidia-tegra-defaults/+bug/2119159/+subscriptions
More information about the Ubuntu-sponsors
mailing list