Pengesahan Confidential VM

Pengesahan untuk instance Confidential VM adalah proses untuk meningkatkan keyakinan bahwa instance tersebut sah dan beroperasi dalam status yang diharapkan. Alat ini adalah alat penting dalam memvalidasi bahwa workload Anda berjalan di trusted execution environment (TEE).

Pengesahan berbasis CPU

Laporan pengesahan adalah bukti bahwa VM Anda berjalan di TEE. Pengukuran ini dibuat oleh instance VM Rahasia, dan bergantung pada teknologi Confidential Computing yang digunakan, ditandatangani oleh vTPM berbasis software atau Modul Keamanan Tepercaya (TSM) khusus berbasis hardware. Laporan pengesahan berisi pengukuran yang terkait dengan aktivitas bootloader, konfigurasi hardware, konfigurasi firmware, dan peristiwa yang dicatat saat booting lainnya yang membantu memvalidasi status dan identitas instance Confidential VM.

Jenis laporan pengesahan yang dapat Anda minta bergantung pada teknologi Confidential Computing yang digunakan instance Confidential VM Anda.

Sumber penandatanganan Jenis Cakupan laporan Teknologi Confidential Computing
SEV SEV-SNP Intel TDX
vTPM yang dikelola Google vTPM berbasis software Aktivitas bootloader, integritas kernel
Prosesor Aman AMD1 TSM berbasis hardware Lingkungan hardware dan firmware
Modul Intel TDX TSM berbasis hardware Lingkungan hardware dan firmware2

1. AMD Secure Processor adalah resource bersama yang tersedia untuk semua host di server fisik tempatnya berada. Host dapat membatasi akses tamu ke Prosesor Aman, dan update firmware ke Prosesor Aman (yang dianggap sebagai peristiwa host) dapat terjadi kapan saja.

2. Komponen peluncuran awal (firmware) untuk instance TDX Confidential VM diukur ke dalam Pengukuran Domain Tepercaya (MRTD), sementara rantai booting yang tersisa diukur ke dalam Register Pengukuran Runtime (RTMR), yang mendasari semua pengukuran di hardware. Pengguna dapat memperluas register RTMR[3] dengan pengukuran ruang pengguna.

Meminta laporan pengesahan

Anda dapat meminta laporan pengesahan dari vTPM yang dikelola Google, AMD Secure Processor, dan modul TDX Intel dengan alat berikut:

  • Go-TPM

  • Alat Go-TPM (diperlukan versi 0.4.4 atau yang lebih baru untuk dukungan AMD SEV-SNP dan Intel TDX)

Peristiwa GceNonHostInfo di log peristiwa pengesahan vTPM menunjukkan teknologi Confidential Computing yang sedang digunakan. Alat Go-TPM dapat meminta laporan pengesahan dari AMD Secure Processor jika AMD SEV-SNP digunakan, atau dari modul Intel TDX jika Intel TDX digunakan.

Khusus untuk laporan pengesahan hardware, Anda dapat mengirimkan tantangan kriptografi ke TSM dengan alat berikut:

  • Untuk AMD SEV-SNP, gunakan SEV Guest. Sertifikat Version Chip Endorsement Key (VCEK) di-cache di VM, bukan diminta langsung dari sistem distribusi kunci (KDS) AMD.

  • Untuk Intel TDX, gunakan TDX Guest.

Intel TDX di Ubuntu

Untuk image Ubuntu di kernel 1016 dan yang lebih baru, modul tdx_guest ada dalam paket linux-modules-extra.

Untuk menginstal paket linux-modules-extra, jalankan perintah berikut:

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

Jika mengalami masalah saat menginstal linux-modules-extra-gcp, Anda dapat mengupdate kernel dengan menjalankan perintah berikut:

sudo apt-get upgrade

Anda harus memulai ulang atau memuat modul secara manual agar perubahan diterapkan. Untuk memuat modul secara manual, jalankan perintah berikut:

sudo modprobe tdx_guest

Memverifikasi laporan pengesahan dengan Pengesahan Google Cloud

Jika model kepercayaan Anda mengizinkannya, alih-alih menulis dan menjalankan verifier pengesahan sendiri, Anda dapat menggunakan Pengesahan Google Cloud. Hal ini melibatkan penggunaan alat Go-TPM untuk mengambil kutipan pengesahan dari vTPM instance Confidential VM, dan mengirimkannya ke Google Cloud Attestation untuk verifikasi. Jika kutipan lulus verifikasi, Pengesahan Google Cloud akan menampilkan token yang berisi informasi VM yang kemudian dapat Anda bandingkan dengan kebijakan Anda sendiri untuk mengonfirmasi apakah VM tersebut harus dipercaya atau tidak.

Google Cloud Attestation dapat digunakan dengan instance Confidential VM yang menggunakan teknologi Confidential Computing berikut:

Untuk contoh end-to-end cara menggunakan Google Cloud Attestation, lihat codelab Pengesahan Jarak Jauh vTPM di Confidential Virtual Machine.

Pengesahan berbasis GPU

Pengesahan GPU melibatkan verifikasi driver GPU, perangkat GPU, atau keduanya.

Masalah umum

Pengesahan GPU mungkin gagal, melaporkan rekaman pengukuran yang tidak cocok pada indeks 9. Google dan NVIDIA sedang berupaya memperbaikinya.

Untuk mengatasi masalah ini, lakukan penghentian dan mulai ulang Confidential VM secara penuh. Memulai ulang VM dari OS tamu VM tidak akan memperbaiki masalah ini.

Pengesahan Driver GPU

Untuk memastikan pengesahan yang kuat, aktifkan Booting Aman saat membuat instance Confidential VM Anda.

Booting Aman memungkinkan pemuatan hanya driver GPU yang ditandatangani oleh distribusi. Verifikasi ini penting untuk mengonfirmasi bahwa driver GPU dirilis dan disediakan secara resmi oleh NVIDIA. Driver resmi penting karena driver ini membuat sesi Security Protocol and Data Model (SPDM) yang aman dengan perangkat GPU dan berfungsi sebagai root of trust untuk pengesahan perangkat GPU NVIDIA.

Pengesahan Perangkat GPU NVIDIA

Selain pengesahan driver GPU, Anda dapat lebih lanjut mengesahkan perangkat GPU NVIDIA. Pengesahan perangkat GPU NVIDIA memverifikasi BIOS Video (VBIOS) yang berjalan di GPU. Dengan begitu, Anda dapat mengidentifikasi versi software NVIDIA dan menilai keberadaan potensi kerentanan.

Untuk melakukan pengesahan perangkat GPU NVIDIA, instal dependensi go-nvattest-tools dan bangun alat nvattest dari google/go-nvattest-tools:

  1. Instal dependensi build:

    sudo apt-get update && sudo apt-get install -y \
      git gcc pkg-config libxml2-dev curl
    
  2. Download dan instal Go:

    GO_VERSION="1.25.0"
    curl -fsSL \
      "https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz" \
      -o go.tar.gz
    sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go.tar.gz
    rm go.tar.gz
    export PATH=/usr/local/go/bin:$PATH
    
  3. Buat clone repositori dan kompilasi biner nvattest:

    git clone https://github.com/google/go-nvattest-tools.git
    cd go-nvattest-tools
    go build -o nvattest ./cmd/nvattest
    

Pengesahan perangkat GPU lokal

Pengesahan perangkat GPU lokal memungkinkan Anda melakukan proses pengesahan secara langsung di instance VM dan melihat hasilnya secara lokal untuk memverifikasi integritas GPU Anda.

Untuk melakukan pengesahan perangkat GPU lokal langsung, jalankan alat nvattest langsung di instance VM Rahasia Anda:

sudo ./nvattest attest --device=gpu

Secara opsional, Anda dapat memisahkan pengumpulan bukti dari verifikasi:

  1. Buat nonce hex 32 byte dan kumpulkan bukti pengesahan:

    NONCE=$(openssl rand -hex 32)
    sudo ./nvattest collect-evidence \
      --device=gpu \
      --nonce="${NONCE}" \
      --evidence_file=gpu_evidence.json
    
  2. Verifikasi bukti yang dikumpulkan secara lokal:

    ./nvattest attest \
      --device=gpu \
      --nonce="${NONCE}" \
      --evidence_file=gpu_evidence.json