Per determinare su quale istanza Confidential VM Intel TDX è in esecuzione Google Cloud, devi stabilirne la provenance. Per stabilire la provenienza, esegui i seguenti controlli:
Verifica della citazione e associazione della challenge: verifica l'autenticità della citazione Intel TDX utilizzando il certificato radice Intel incorporato e, facoltativamente, verifica la freschezza rispetto a una challenge prevista nel campo
REPORT_DATAdella citazione.Verifica della provenienza dell'host: estrai l'ID di provisioning della piattaforma (PPID) dal certificato PCK incorporato della citazione. Utilizza il PPID per recuperare il documento JSON del registro host da un bucket Cloud Storage per verificare la provenienza.
Verifica della provenienza dell'istanza: utilizza il numero di progetto, la zona e l'ID istanza (PZID) dell'istanza Confidential VM per calcolare un digest SHA-384, quindi verifica che il digest corrisponda al valore del campo
MR_OWNERnella citazione Intel TDX.
Verificare la provenienza da remoto
Ti consigliamo di utilizzare lo
gceprovenance
strumento per determinare la provenienza delle macchine Intel TDX. Lo strumento automatizza l'estrazione dei valori richiesti e il recupero del documento di provenienza.
Per verificare la provenienza da remoto utilizzando gceprovenance, completa le seguenti istruzioni:
Clona il repository GitHub
go-tdx-guestnel tuo verificatore remoto:git clone https://github.com/google/go-tdx-guest.gitA seconda del sistema operativo guest, potrebbe essere necessario installare alcune dipendenze Go per creare gli strumenti in
go-tdx-guest. La procedura varia a seconda del sistema operativo. Ad esempio, i seguenti comandi installano le dipendenze necessarie su Ubuntu:sudo apt update sudo apt install golang-go build-essentialCrea lo strumento
gceprovenance:go build -C go-tdx-guest/tools/gceprovenance .Genera una challenge di 64 byte a cui l'istanza Confidential VM Intel TDX deve eseguire il binding alla sua citazione:
head -c 64 /dev/urandom > challenge.binInvia il file della challenge all'istanza Confidential VM Intel TDX che vuoi verificare.
Nell'istanza Confidential VM Intel TDX, passa il file della challenge come input (
inblob) a Linux ConfigFS in/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'La challenge viene quindi scritta nel campo
REPORT_DATAdella citazione dal sistema.Recupera i byte della citazione non elaborati dal file
outblobrisultante e libera spazio nella directoryreport0:sudo cat /sys/kernel/config/tsm/report/report0/outblob > quote.bin sudo rmdir /sys/kernel/config/tsm/report/report0Esegui una query sul server di metadati locale per l'ID istanza, il numero di progetto e la zona dell'istanza 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")Invia il file binario della citazione (
quote.bin), il numero di progetto, l'ID istanza e la zona al verificatore remoto.Nel verificatore remoto, converti la challenge in una stringa esadecimale di 128 caratteri, quindi passala a
gceprovenance. Lo strumento verifica quindi la firma della citazione e i binding di provenienza: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_HEXFornisci quanto segue:
PATH_TO_QUOTE: il percorso del file della citazione fornito.PROJECT_NUMBER: il numero di progetto fornito.ZONE: la zona fornita.INSTANCE_ID: l'ID istanza Confidential VM fornito.
Una risposta corretta è simile alla seguente:
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
Per altri gceprovenance comandi, consulta il
repository GitHub.