Pour déterminer qu'une instance Confidential VM Intel TDX s'exécute sur Google Cloud, vous devez établir sa provenance. Pour établir la provenance, vous devez effectuer les vérifications suivantes :
Vérification du devis et liaison du défi : vérifiez l'authenticité du devis Intel TDX à l'aide du certificat racine Intel intégré, et vérifiez éventuellement la fraîcheur par rapport à un défi attendu dans le champ
REPORT_DATAdu devis.Vérification de la provenance de l’hôte : extrayez l’ID de provisionnement de la plate-forme (PPID) du certificat PCK intégré au devis. Utilisez le PPID pour récupérer le document JSON du registre d'hôte à partir d'un bucket Cloud Storage afin de vérifier la provenance.
Vérification de la provenance de l'instance : utilisez le numéro de projet, la zone et l'ID d'instance (PZID) de l'instance Confidential VM pour calculer un condensé SHA-384, puis vérifiez que le condensé correspond à la valeur du champ
MR_OWNERdans le devis Intel TDX.
Vérifier la provenance à distance
Nous vous recommandons d'utiliser l'
gceprovenance
outil pour déterminer la provenance des machines Intel TDX. L'outil automatise l'extraction des valeurs requises et la récupération du document de provenance.
Pour vérifier la provenance à distance à l'aide de gceprovenance, procédez comme suit :
Clonez le dépôt GitHub
go-tdx-guestsur votre vérificateur à distance :git clone https://github.com/google/go-tdx-guest.gitSelon votre système d'exploitation invité, vous devrez peut-être installer certaines dépendances Go pour créer les outils dans
go-tdx-guest. La procédure varie en fonction de votre système d'exploitation. Par exemple, les commandes suivantes installent les dépendances nécessaires sur Ubuntu :sudo apt update sudo apt install golang-go build-essentialCréez l'outil
gceprovenance:go build -C go-tdx-guest/tools/gceprovenance .Générez un défi de 64 octets auquel l'instance Confidential VM Intel TDX doit être liée :
head -c 64 /dev/urandom > challenge.binEnvoyez le fichier de défi à l'instance Confidential VM Intel TDX que vous souhaitez vérifier.
Sur l'instance Confidential VM Intel TDX, transmettez le fichier de défi en tant qu'entrée (
inblob) au Linux ConfigFS à l'adresse/sys/kernel/config/tsm/report/:sudo mkdir -p /sys/kernel/config/tsm/report/report0 sudo sh -c 'cat challenge.bin > /sys/kernel/config/tsm/report/report0/inblob'Le défi est ensuite écrit dans le champ
REPORT_DATAdu devis par le système.Récupérez les octets bruts du devis à partir du fichier
outblobrésultant, puis nettoyez le répertoirereport0:sudo cat /sys/kernel/config/tsm/report/report0/outblob > quote.bin sudo rmdir /sys/kernel/config/tsm/report/report0Interrogez le serveur de métadonnées local pour obtenir l'ID d'instance, le numéro de projet et la zone de l'instance Confidential VM :
PROJECT_NUMBER=$(curl -s "http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id" -H "Metadata-Flavor: Google") INSTANCE_ID=$(curl -s "http://metadata.google.internal/computeMetadata/v1/instance/id" -H "Metadata-Flavor: Google") ZONE_PATH=$(curl -s "http://metadata.google.internal/computeMetadata/v1/instance/zone" -H "Metadata-Flavor: Google") ZONE=$(basename "$ZONE_PATH")Envoyez le binaire du devis (
quote.bin), le numéro de projet, l'ID d'instance et la zone au vérificateur à distance.Sur le vérificateur à distance, convertissez votre défi en une chaîne hexadécimale de 128 caractères, puis transmettez-le à
gceprovenance. L'outil vérifie ensuite la signature du devis et les liaisons de provenance :CHALLENGE_HEX=$(hexdump -v -e '/1 "%02x"' challenge.bin) ./go-tdx-guest/tools/gceprovenance/gceprovenance verify \ -quote PATH_TO_QUOTE \ -instance projects/PROJECT_NUMBER/zones/ZONE/instances/INSTANCE_ID \ -challenge $CHALLENGE_HEXIndiquez les éléments suivants :
PATH_TO_QUOTE: chemin d'accès au fichier de devis fourni.PROJECT_NUMBER: numéro de projet fourni.ZONE: zone fournie.INSTANCE_ID: ID d'instance Confidential VM fourni.
Une réponse réussie ressemble à ceci :
GCE TDX provenance verification: OK Instance Zone: ZONE Project: PROJECT_NUMBER Instance ID: INSTANCE_ID Checks Quote verification: OK REPORT_DATA challenge: OK Host registry document: found PZID binding: OK PPID: PPID Quote: tdx_quote.bin Host registry: host_registry.json
Pour d'autres gceprovenance commandes, consultez le
dépôt GitHub.