Introduction#
nvat (or “NV Attest”) is an SDK that supports device attestation for NVIDIA products such as GPUs and the NVLink Switch. The SDK and associated tooling allows users to collect and verify device attestation reports. This is a new and improved version of the NVIDIA nvtrust attestation SDK, redesigned to address key limitations:
Improved API flexibility and structure with better separation of concerns and reusability
Enhanced error handling and logging suitable for library use cases
Removed global state enabling proper unit testing and multi-instance support
Better security practices including secure JWT signing in local verifiers
Improved documentation with consistent, well-documented data structures
Installation#
Prerequisites#
C++14 compiler
libnvml is required when compiling support for GPU evidence collection. See Driver Installation for instructions.
libnvidia-nscq is required when compiling support for NVSwitch evidence collection. See here
From package manager#
In the future, this SDK will be available via Linux package managers for easier installation.
From source#
This project uses CMake as its build system. The following instructions have been tested on Ubuntu 22.04 and 24.04 x86-64.
Install build dependencies
sudo apt-get update && \
sudo apt-get install -y cmake git pkg-config clang \
libcurl4-openssl-dev libssl-dev libxml2-dev \
libxmlsec1-dev libxmlsec1-openssl libspdlog-dev
# rust is a build dependency
# install from here - https://rust-lang.org/tools/install/
Get the source
git clone https://github.com/NVIDIA/attestation-sdk.git
cd attestation-sdk/nv-attestation-sdk-cpp
Build
cmake -S . -B build
cmake --build build
cmake --install build --strip
sudo ldconfig
Uninstall (the installed files are recorded in
build/install-manifest):
xargs rm -v < build/install_manifest.txt
Quick Start#
A CLI tool is also available that uses this SDK. For command-line attestation, see the instructions here.
For a minimal example demonstrating GPU attestation, see this example.
If attestation is successful, it prints out the claims and detached EAT. See here to see the format of claims and detached EAT
See here to understand how to configure attestation using relying party policy and evidence policy.
Next steps#
The public API of nvat is located here
For more in-depth examples on using the SDK, see here