Untuk menentukan bahwa instance Confidential VM Intel TDX berjalan Google Cloud, Anda harus menetapkan provenance. Menetapkan asal-usul melibatkan pemeriksaan berikut:
Verifikasi kutipan dan pengikatan tantangan: Verifikasi keaslian kutipan Intel TDX menggunakan sertifikat root Intel yang disematkan, dan secara opsional verifikasi kesegaran terhadap tantangan yang diharapkan di kolom
REPORT_DATAkutipan.Verifikasi asal-usul host: Ekstrak ID penyediaan platform (PPID) dari sertifikat PCK yang disematkan dalam kutipan. Gunakan PPID untuk mengambil dokumen JSON registri host dari bucket Cloud Storage guna memverifikasi asal-usul.
Verifikasi asal-usul instance: Gunakan nomor project, zona, dan ID instance (PZID) instance Confidential VM untuk menghitung ringkasan SHA-384, lalu verifikasi bahwa ringkasan cocok dengan nilai kolom
MR_OWNERdalam kutipan Intel TDX.
Memverifikasi asal-usul dari jarak jauh
Sebaiknya gunakan alat
gceprovenance
untuk menentukan asal-usul mesin Intel TDX. Alat ini mengotomatiskan ekstraksi nilai yang diperlukan dan mengambil dokumen asal-usul.
Untuk memverifikasi asal-usul dari jarak jauh menggunakan gceprovenance, selesaikan petunjuk berikut:
Clone repositori GitHub
go-tdx-guestke verifier jarak jauh Anda:git clone https://github.com/google/go-tdx-guest.gitBergantung pada sistem operasi tamu Anda, Anda mungkin perlu menginstal beberapa dependensi Go untuk membuat alat di
go-tdx-guest. Cara melakukannya akan berubah bergantung pada sistem operasi Anda. Misalnya, perintah berikut menginstal dependensi yang diperlukan di Ubuntu:sudo apt update sudo apt install golang-go build-essentialBuat alat
gceprovenance:go build -C go-tdx-guest/tools/gceprovenance .Buat tantangan 64 byte yang harus diikat oleh instance Confidential VM Intel TDX ke kutipannya:
head -c 64 /dev/urandom > challenge.binKirim file tantangan ke instance Confidential VM Intel TDX yang ingin Anda verifikasi.
Di instance Confidential VM Intel TDX, teruskan file tantangan sebagai input (
inblob) ke Linux ConfigFS di/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'Tantangan tersebut kemudian ditulis ke kolom
REPORT_DATAkutipan oleh sistem.Ambil byte kutipan mentah dari file
outblobyang dihasilkan, dan hapus direktorireport0:sudo cat /sys/kernel/config/tsm/report/report0/outblob > quote.bin sudo rmdir /sys/kernel/config/tsm/report/report0Kueri server metadata lokal untuk ID instance, nomor project, dan zona 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")Kirim biner kutipan (
quote.bin), nomor project, ID instance, dan zona ke verifier jarak jauh.Di verifier jarak jauh, konversi tantangan Anda menjadi string heksadesimal 128 karakter, lalu teruskan ke
gceprovenance. Alat ini kemudian memverifikasi tanda tangan kutipan dan pengikatan asal-usul: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_HEXBerikan hal berikut:
PATH_TO_QUOTE: Jalur ke file kutipan yang diberikan.PROJECT_NUMBER: Nomor project yang diberikan.ZONE: Zona yang diberikan.INSTANCE_ID: ID instance Confidential VM yang diberikan.
Respons yang berhasil akan terlihat mirip dengan berikut ini:
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
Untuk perintah gceprovenance lainnya, lihat
repositori GitHub.