View a markdown version of this page

Membuktikan instans Amazon EC2 dengan AMD SEV-SNP - Amazon Elastic Compute Cloud

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuktikan instans Amazon EC2 dengan AMD SEV-SNP

Pengesahan adalah proses yang memungkinkan instans Anda membuktikan status dan identitasnya. Setelah Anda mengaktifkan AMD SEV-SNP untuk instans Anda, Anda dapat meminta laporan SEV-SNP pengesahan AMD dari prosesor yang mendasarinya. Laporan SEV-SNP pengesahan AMD berisi hash kriptografi, yang disebut pengukuran peluncuran, dari konten memori tamu awal dan status vCPU awal. Laporan pengesahan ditandatangani dengan tanda tangan VCEK (pada Host Khusus) atau tanda tangan VLEK (pada penyewaan bersama) yang menghubungkan kembali ke akar kepercayaan AMD. Anda dapat menggunakan pengukuran peluncuran yang disertakan dalam laporan pengesahan untuk memvalidasi bahwa instans berjalan di lingkungan AMD asli dan untuk memvalidasi kode boot awal yang digunakan untuk meluncurkan instans.

Prasyarat

Luncurkan instance yang diaktifkan untuk AMD SEV-SNP. Untuk informasi selengkapnya, lihat Aktifkan AMD SEV-SNP untuk instans EC2.

Pengesahan untuk instans pada Host Khusus

Host Khusus menggunakan Versioned Chip Endorsement Key (VCEK), kunci penandatanganan per chip yang unik, untuk menandatangani laporan pengesahan. Anda harus memvalidasi rantai kepercayaan dari sertifikat VCEK kembali ke akar kepercayaan AMD.

catatan

Model prosesor yang saat ini didukung adalahmilan.

Prasyarat

Instance yang berjalan pada Host Khusus AMD yang SEV-SNP diaktifkan dengan Git, Cargo, dan Perl diinstal.

Langkah 1: Bangun utilitas snpguest

Pada langkah ini, Anda menginstal dan membangun snpguest utilitas, yang Anda gunakan untuk menghasilkan laporan pengesahan, mengambil sertifikat yang diperlukan, dan memvalidasi laporan pengesahan.

  1. Terhubung ke instans Anda.

  2. Verifikasi prasyarat diinstal.

    $ perl --version; cargo --version; git --version
  3. Jalankan perintah berikut untuk membangun snpguest utilitas dari file snpguest repository.

    $ git clone https://github.com/virtee/snpguest.git $ cd snpguest $ cargo build -r $ cd target/release

Langkah 2: Buat laporan pengesahan

Hasilkan permintaan untuk laporan pengesahan. snpguestUtilitas meminta laporan pengesahan dari AMD Secure Processor melalui host, dan menulisnya ke file biner. Contoh berikut membuat permintaan acak nonce dan menyimpan laporan direport.bin.

$ ./snpguest report report.bin request-file.txt --random

Langkah 3: Ambil dan validasi rantai sertifikat VCEK

Laporan pengesahan ditandatangani oleh VCEK, yang unik untuk chip AMD pada Host Khusus Anda. Anda harus memvalidasi rantai kepercayaan dari VCEK kembali ke akar kepercayaan AMD.

  1. Ambil sertifikat VCEK dari AMD Key Distribution Service (KDS). Sertifikat diidentifikasi oleh ID chip dan versi TCB dari laporan pengesahan.

    $ ./snpguest fetch vcek pem ./ ./report.bin --processor-model milan
  2. Ambil sertifikat root AMD (AMD Root Key (ARK) dan AMD SEV Key (ASK)) yang membentuk rantai kepercayaan.

    $ ./snpguest fetch ca PEM ./ milan --endorser vcek
  3. Verifikasi rantai sertifikat.

    $ ./snpguest verify certs ./

    Berikut ini adalah output contoh.

    The AMD ARK was self-signed! The AMD ASK was signed by the AMD ARK! The VCEK was signed by the AMD ASK!

Opsional: Untuk transparansi tambahan, Anda dapat memverifikasi rantai secara independen dengan mengunduh sertifikat langsung dari AMD dan menggunakanopenssl.

$ curl --proto '=https' --tlsv1.2 -sSf https://kdsintf.amd.com/vcek/v1/Milan/cert_chain -o ./cert_chain.pem $ openssl verify --CAfile ./cert_chain.pem vcek.pem

Berikut ini adalah output contoh.

vcek.pem: OK

Langkah 4: Validasi tanda tangan laporan pengesahan

Verifikasi bahwa laporan pengesahan ditandatangani oleh sertifikat VCEK. Ini menegaskan bahwa laporan itu dihasilkan pada perangkat keras AMD asli dan belum dirusak.

$ ./snpguest verify attestation ./ report.bin

Berikut ini adalah output contoh.

Reported TCB Boot Loader from certificate matches the attestation report. Reported TCB TEE from certificate matches the attestation report. Reported TCB SNP from certificate matches the attestation report. Reported TCB Microcode from certificate matches the attestation report. VEK signed the Attestation Report!

Bidang versi TCB (Trusted Computing Base) mengonfirmasi bahwa versi firmware dalam sertifikat cocok dengan yang dilaporkan dalam laporan pengesahan. Baris terakhir mengkonfirmasi VCEK menandatangani laporan tersebut.

Pengesahan untuk instance pada penyewaan bersama

Instans sewa bersama menggunakan Versioned Loaded Endorsement Key (VLEK), yang dikeluarkan oleh AMD untuk. AWS Anda harus memvalidasi rantai kepercayaan dari sertifikat VLEK kembali ke akar kepercayaan AMD.

Langkah 1: Bangun utilitas snpguest

Pada langkah ini, Anda menginstal dan membangun snpguest utilitas, yang Anda gunakan untuk menghasilkan laporan pengesahan, mengambil sertifikat yang diperlukan, dan memvalidasi laporan pengesahan.

  1. Terhubung ke instans Anda.

  2. Jalankan perintah berikut untuk membangun snpguest utilitas dari file snpguest repository.

    $ git clone https://github.com/virtee/snpguest.git $ cd snpguest $ cargo build -r $ cd target/release

Langkah 2: Buat laporan pengesahan

Hasilkan permintaan untuk laporan pengesahan. snpguestUtilitas meminta laporan pengesahan dari host, dan menulisnya ke file biner. Contoh berikut membuat permintaan acak nonce dan menyimpan laporan direport.bin.

$ ./snpguest report report.bin request-file.txt --random

Minta sertifikat dari memori host, dan simpan sebagai file PEM.

$ ./snpguest certificates PEM ./

Langkah 3: Ambil dan validasi rantai sertifikat VLEK

Laporan pengesahan ditandatangani oleh VLEK, yang dikeluarkan oleh AMD untuk. AWS Anda harus memvalidasi rantai kepercayaan dari VLEK kembali ke akar kepercayaan AMD.

  1. Unduh root sertifikat kepercayaan VLEK dari Layanan Distribusi Kunci AMD resmi ke direktori saat ini.

    $ sudo curl --proto '=https' --tlsv1.2 -sSf https://kdsintf.amd.com/vlek/v1/Milan/cert_chain -o ./cert_chain.pem
  2. Gunakan openssl untuk memvalidasi bahwa sertifikat VLEK ditandatangani oleh root sertifikat kepercayaan AMD.

    $ sudo openssl verify --CAfile ./cert_chain.pem vlek.pem

    Berikut ini adalah output contoh.

    vlek.pem: OK

Langkah 4: Validasi tanda tangan laporan pengesahan

Verifikasi bahwa laporan pengesahan ditandatangani oleh sertifikat VLEK. Ini menegaskan bahwa laporan itu dihasilkan pada perangkat keras AMD asli dan belum dirusak.

$ ./snpguest verify attestation ./ report.bin

Berikut ini adalah output contoh.

Reported TCB Boot Loader from certificate matches the attestation report. Reported TCB TEE from certificate matches the attestation report. Reported TCB SNP from certificate matches the attestation report. Reported TCB Microcode from certificate matches the attestation report. VEK signed the Attestation Report!