Skip to content

Commit a54ac72

Browse files
Ying Jiang56ht86hrd5-ai
authored andcommitted
feat(verifier): add NVIDIA DPU verifier with DICE-based attestation
Add NvidiaDpu TEE variant support to the attestation service verifier. The verifier validates DICE certificate chains from NVIDIA BlueField DPUs, including firmware measurements and rshim OOB channel integrity verification. Signed-off-by: 56ht86hrd5-ai <56ht86hrd5-ai@users.noreply.github.com>
1 parent 79520b4 commit a54ac72

24 files changed

Lines changed: 174 additions & 14993 deletions

Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,4 @@ zeroize = "1"
7979

8080
[patch.crates-io]
8181
sev = { git = "https://github.com/virtee/sev", rev = "d487809188c3c92e397bc92e2cb2a85eb982c980" }
82+
kbs-types = { git = "https://github.com/56ht86hrd5-ai/kbs-types", branch = "feat/add-dpu-tee" }

attestation-service/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ cca-verifier = ["verifier/cca-verifier"]
1717
se-verifier = ["verifier/se-verifier"]
1818
nvidia-verifier = ["verifier/nvidia-verifier"]
1919
tpm-verifier = ["verifier/tpm-verifier"]
20+
nvidia-dpu-verifier = ["verifier/nvidia-dpu-verifier"]
2021

2122
rvps-grpc = ["prost", "tonic", "mobc"]
2223

attestation-service/docs/tcb_claims.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Policy input is a JSON object composed from verifier output. In most cases, it f
1212

1313
| Field | Type | Meaning |
1414
| --- | --- | --- |
15-
| `<tee-name>` | object | TEE-specific claims (for example: `tdx`, `sgx`, `snp`, `se`, `tpm`, `nvidia`, `hygondcu`, `az-tdx-vtpm`, `az-snp-vtpm`, `sample`, `csv`, `cca`) |
15+
| `<tee-name>` | object | TEE-specific claims (for example: `tdx`, `sgx`, `snp`, `se`, `tpm`, `nvidia`, `nvidia-dpu`, `hygondcu`, `az-tdx-vtpm`, `az-snp-vtpm`, `sample`, `csv`, `cca`) |
1616
| `report_data` | string | Hex/base64-encoded report data extracted from evidence (format depends on verifier) |
1717
| `init_data` | string | Hex/base64-encoded init-data hash extracted from evidence (when supported) |
1818
| `init_data_claims` | object | Parsed init-data claims (present when init-data is provided and verified) |
@@ -223,6 +223,29 @@ The remote verifier exports the claims that come from NRAS, which are listed [he
223223
Claims version 3 is used. The `x-nvidia-overall-att-result` from the overall claims is included
224224
along with the full set of detached claims.
225225

226+
## NVIDIA DPU (nvidia-dpu)
227+
228+
The NVIDIA DPU verifier validates DICE certificate chains from NVIDIA BlueField DPUs.
229+
It performs ECDSA P-384 signature verification, certificate temporal validity checks,
230+
firmware measurement extraction, and nonce binding for session freshness.
231+
232+
Claims are produced under the top-level key `nvidia-dpu`. In Rego, use bracket
233+
syntax: `input["nvidia-dpu"]`.
234+
235+
- `["nvidia-dpu"].passed`: Overall DICE chain verification result (boolean).
236+
- `["nvidia-dpu"].device_serial`: Device serial number (e.g., BlueField DPU hardware serial).
237+
- `["nvidia-dpu"].device_class`: Device class identifier (e.g., "bluefield3").
238+
- `["nvidia-dpu"].firmware_layers_count`: Number of firmware layers in the DICE certificate chain.
239+
- `["nvidia-dpu"].accumulated_fwid`: Accumulated Firmware ID measurement across all layers (SHA-384, hex-encoded).
240+
- `["nvidia-dpu"].session_nonce`: DICE Alias certificate session nonce for freshness binding (hex-encoded).
241+
- `["nvidia-dpu"].alias_timestamp`: Timestamp of Alias certificate issuance (UNIX epoch seconds).
242+
- `["nvidia-dpu"].failure_reason`: Verification failure reason (null when verification passed).
243+
- `["nvidia-dpu"].tee_class`: TEE class identifier (always "nvidia-dpu").
244+
245+
Note: FWID comparison against RVPS reference values is deferred to a follow-up PR.
246+
Currently the verifier extracts and reports firmware measurements but does not
247+
enforce a specific expected value.
248+
226249
## AMD SEV-SNP
227250

228251
- `snp.measurement` Launch Digest covering initial guest memory

deps/kbs-types/.github/auto_assign.yml

Lines changed: 0 additions & 21 deletions
This file was deleted.

deps/kbs-types/.github/workflows/code_quality.yml

Lines changed: 0 additions & 33 deletions
This file was deleted.

deps/kbs-types/.github/workflows/unit_tests.yml

Lines changed: 0 additions & 29 deletions
This file was deleted.

deps/kbs-types/.gitignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

deps/kbs-types/CODEOWNERS

Lines changed: 0 additions & 1 deletion
This file was deleted.

deps/kbs-types/Cargo.toml

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)