Attestierung für Confidential VM

Die Attestierung ist ein Verfahren, mit dem die Wahrscheinlichkeit erhöht wird, dass eine Confidential VM-Instanz legitim ist und sich in einem erwarteten Zustand befindet. Es ist ein wichtiges Tool, um zu prüfen, ob Ihre Arbeitslast in einer vertrauenswürdigen Ausführungsumgebung (Trusted Execution Environment, TEE) ausgeführt wird.

CPU-basierte Attestierung

Bestätigungsberichte sind der Nachweis dafür, dass Ihre VM in einer TEE ausgeführt wird. Sie werden von der Confidential VM-Instanz generiert und je nach verwendeter Confidential Computing-Technologie entweder von einem softwarebasierten vTPM oder einem dedizierten, hardwarebasierten Trusted Security Module (TSM) signiert. Attestberichte enthalten Messungen im Zusammenhang mit Bootloader-Aktivitäten, Hardwarekonfiguration, Firmwarekonfiguration und anderen während des Bootvorgangs protokollierten Ereignissen, die dazu beitragen, den Status und die Identität der Confidential VM-Instanz zu validieren.

Welche Art von Attestbericht Sie anfordern können, hängt von der Confidential Computing-Technologie ab, die von Ihrer Confidential VM-Instanz verwendet wird.

Signaturquelle Typ Berichtsabdeckung Confidential Computing-Technologie
SEV SEV-SNP Intel TDX
Von Google verwaltetes vTPM Softwarebasiertes vTPM Bootloader-Aktivität, Kernel-Integrität
AMD Secure Processor Hardwarebasiertes TSM Hardware- und Firmwareumgebung
Intel TDX-Modul Hardwarebasiertes TSM Hardware- und Firmwareumgebung

Attestbericht anfordern

Sie können Attestierungsberichte vom von Google verwalteten vTPM, vom Secure Processor von AMD und vom TDX-Modul von Intel mit den folgenden Tools anfordern:

  • Go-TPM

  • Go-TPM-Tools (Version 0.4.4 oder höher ist für die Unterstützung von AMD SEV-SNP und Intel TDX erforderlich)

Das GceNonHostInfo-Ereignis im vTPM-Attestierungsereignisprotokoll gibt an, welche Confidential Computing-Technologie verwendet wird. Go-TPM-Tools können einen Attestbericht vom AMD Secure Processor anfordern, wenn AMD SEV-SNP verwendet wird, oder vom Intel TDX-Modul, wenn Intel TDX verwendet wird.

Nur für Hardware-Attestierungsberichte können Sie mit den folgenden Tools eine kryptografische Challenge an das TSM senden:

  • Verwenden Sie für AMD SEV-SNP SEV Guest. VCEK-Zertifikate (Version Chip Endorsement Key) werden auf der VM zwischengespeichert, anstatt direkt vom KDS (Key Distribution System) von AMD angefordert zu werden.

  • Verwenden Sie für Intel TDX TDX Guest.

Intel TDX unter Ubuntu

Bei Ubuntu-Images mit Kernel 1016 und höher befindet sich das tdx_guest-Modul im linux-modules-extra-Paket.

Führen Sie den folgenden Befehl aus, um das linux-modules-extra-Paket zu installieren:

sudo apt-get install linux-modules-extra-gcp

Wenn bei der Installation von linux-modules-extra-gcp Probleme auftreten, können Sie den Kernel mit dem folgenden Befehl aktualisieren:

sudo apt-get upgrade

Sie müssen das Gerät neu starten oder das Modul manuell laden, damit die Änderungen wirksam werden. Führen Sie den folgenden Befehl aus, um das Modul manuell zu laden:

sudo modprobe tdx_guest

Attestierungsberichte mit Google Cloud Attestation überprüfen

Wenn Ihr Vertrauensmodell dies zulässt, können Sie anstelle des Schreibens und Ausführens eines eigenen Attestierungsprüfers Google Cloud Attestation verwenden. Dazu müssen Sie Go-TPM-Tools verwenden, um ein Attestzitat vom vTPM einer Confidential VM-Instanz abzurufen und zur Überprüfung an Google Cloud Attestation zu senden. Wenn das Angebot die Überprüfung besteht, gibt Google Cloud Attestation ein Token mit VM-Informationen zurück, das Sie dann mit Ihrer eigenen Richtlinie vergleichen können, um zu bestätigen, ob die VM vertrauenswürdig ist.

Google Cloud Attestation kann nur mit AMD SEV Confidential VM-Instanzen verwendet werden.

Ein End-to-End-Beispiel für die Verwendung von Google Cloud Attestation finden Sie im Codelab vTPM Remote Attestation on Confidential Virtual Machine.

GPU-basierte Attestierung

Bei der GPU-Attestierung wird der GPU-Treiber, das GPU-Gerät oder beides überprüft.

GPU-Treiber-Attestierung

Aktivieren Sie Secure Boot beim Erstellen Ihrer Confidential VM-Instanz, um eine robuste Attestierung zu gewährleisten.

Secure Boot ermöglicht das Laden von GPU-Treibern, die von der Distribution signiert wurden. Diese Überprüfung ist wichtig, um zu bestätigen, dass der GPU-Treiber offiziell von NVIDIA veröffentlicht und bereitgestellt wird. Ein offizieller Treiber ist wichtig, da er eine sichere SPDM-Sitzung (Security Protocol and Data Model) mit GPU-Geräten herstellt und als Vertrauensanker für die NVIDIA-GPU-Gerätebestätigung dient.

NVIDIA-GPU-Gerätebestätigung

Zusätzlich zur GPU-Treiberbestätigung können Sie auch NVIDIA-GPU-Geräte bestätigen. Bei der NVIDIA-GPU-Gerätebestätigung wird das auf der GPU ausgeführte Video-BIOS (VBIOS) überprüft. So können Sie NVIDIA-Softwareversionen identifizieren und das Vorhandensein potenzieller Sicherheitslücken bewerten.

Wenn Sie die Gerätebestätigung für NVIDIA-GPUs durchführen möchten, müssen Sie zuerst die nvtrust-Bibliothek von NVIDIA installieren und sie dann für die lokale oder Remote-Bestätigung verwenden.

API_LINK="https://api.github.com/repos/NVIDIA/nvtrust/tags"
LATEST_VER="$(curl -s "${API_LINK}" | jq -r '..name')"
DOWNLOAD_LINK="https://github.com/NVIDIA/nvtrust/archive/refs/tags/${LATEST_VER}.tar.gz"
echo "Downloading nvtrust version ${LATEST_VER}"
curl -L "${DOWNLOAD_LINK}" -o nvtrust.tar.gz
mkdir github_nvtrust
tar xvf nvtrust.tar.gz -C github_nvtrust
cd github_nvtrust/nvtrust-${LATEST_VER:1}
python3 -m venv./prodtest
source./prodtest/bin/activate

Lokale GPU-Gerätebestätigung

Mit der lokalen GPU-Gerätebestätigung können Sie den Bestätigungsprozess direkt auf Ihrer VM-Instanz ausführen und die Ergebnisse lokal ansehen, um die Integrität Ihrer GPU zu überprüfen.

Wenn Sie eine lokale GPU-Gerätebestätigung durchführen möchten, installieren Sie das lokale Bestätigungstool. Eine ausführliche Anleitung finden Sie unter Verifier.

Remote-Attestierung von GPU-Geräten

Bei der Remote-GPU-Gerätebestätigung wird der NVIDIA Remote Attestation Service (NRAS) verwendet, um die Integrität Ihrer GPU zu überprüfen. Dieser Prozess führt zu einem von NVIDIA signierten Attestierungstoken. Dieses Token kann Dritten vorgelegt werden, um die Authentizität und Integrität Ihrer GPU nachzuweisen. Dies ist häufig für den Zugriff auf vertrauliche Daten oder Ressourcen erforderlich.

Eine ausführliche Anleitung finden Sie im NVIDIA Attestation SDK und im NVIDIA Remote Attestation Service (NRAS).