Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Bestätigen Sie eine Amazon EC2-Instance mit AMD SEV-SNP
Die Bescheinigung ist ein Prozess, mit dem Ihre Instance ihren Status und ihre Identität nachweisen kann. Nachdem Sie AMD SEV-SNP für Ihre Instance aktiviert haben, können Sie vom zugrunde liegenden Prozessor einen SEV-SNP AMD-Bestätigungsbericht anfordern. Der SEV-SNP AMD-Bestätigungsbericht enthält einen kryptografischen Hash, der als Startmessung bezeichnet wird und den anfänglichen Gastspeicherinhalt und den anfänglichen vCPU-Status wiedergibt. Der Bestätigungsbericht ist mit einer VCEK-Signatur (bei Dedicated Hosts) oder einer VLEK-Signatur (bei Shared Tenancy) signiert, die auf einen AMD-Vertrauensstamm zurückgeht. Sie können anhand der im Bescheinigungsbericht enthaltenen Startmessung überprüfen, ob die Instance in einer echten AMD-Umgebung ausgeführt wird, und den anfänglichen Startcode überprüfen, der zum Starten der Instance verwendet wurde.
Voraussetzung
Starten Sie eine Instance, die für AMD aktiviert ist. SEV-SNP Weitere Informationen finden Sie unter Aktivieren Sie AMD SEV-SNP für eine EC2-Instance.
Inhalt
Bestätigung für Instanzen auf Dedicated Hosts
Dedicated Hosts verwenden einen Versioned Chip Endorsement Key (VCEK), einen eindeutigen Signaturschlüssel pro Chip, um den Bestätigungsbericht zu signieren. Sie müssen die Vertrauenskette vom VCEK-Zertifikat bis zur Vertrauensbasis von AMD überprüfen.
Anmerkung
Das derzeit unterstützte Prozessormodell ist. milan
Voraussetzungen
Eine Instanz, die auf einem SEV-SNP AMD-fähigen Dedicated Host ausgeführt wird, auf dem Git, Cargo und Perl installiert sind.
Schritt 1: Erstellen Sie das snpguest-Hilfsprogramm
In diesem Schritt installieren und erstellen Sie das snpguest Hilfsprogramm, mit dem Sie den Bestätigungsbericht generieren, die erforderlichen Zertifikate abrufen und den Bestätigungsbericht validieren.
-
Verbinden Sie sich mit der Instance.
-
Stellen Sie sicher, dass die Voraussetzungen installiert sind.
$perl --version; cargo --version; git --version -
Führen Sie die folgenden Befehle aus, um das
snpguest-Hilfsprogramm vom snpguest repositoryzu installieren. $git clone https://github.com/virtee/snpguest.git$cd snpguest$cargo build -r$cd target/release
Schritt 2: Generieren Sie den Bescheinigungsbericht
Generieren Sie eine Anfrage für den Bestätigungsbericht. Das snpguest Hilfsprogramm fordert den Bestätigungsbericht vom AMD Secure Processor über den Host an und schreibt ihn in eine Binärdatei. Das folgende Beispiel erstellt eine zufällige Anforderungs-Nonce und speichert den Bericht in. report.bin
$./snpguest reportreport.binrequest-file.txt--random
Schritt 3: Rufen Sie die VCEK-Zertifikatskette ab und validieren Sie sie
Der Bestätigungsbericht wird vom VCEK signiert, was nur für den AMD-Chip auf Ihrem Dedicated Host gilt. Sie müssen die Vertrauenskette vom VCEK bis zur Vertrauenswurzel von AMD überprüfen.
-
Rufen Sie das VCEK-Zertifikat vom AMD Key Distribution Service (KDS) ab. Das Zertifikat wird anhand der Chip-ID und der TCB-Version aus dem Bestätigungsbericht identifiziert.
$./snpguest fetch vcek pem ./ ./report.bin --processor-model milan -
Rufen Sie die AMD-Root-Zertifikate (AMD Root Key (ARK) und AMD SEV Key (ASK)) ab, die die Vertrauenskette bilden.
$./snpguest fetch ca PEM ./ milan --endorser vcek -
Überprüfen Sie die Zertifikatskette.
$./snpguest verify certs ./Es folgt eine Beispielausgabe.
The AMD ARK was self-signed! The AMD ASK was signed by the AMD ARK! The VCEK was signed by the AMD ASK!
Optional: Für zusätzliche Transparenz können Sie die Kette unabhängig verifizieren, indem Sie die Zertifikate direkt von AMD herunterladen und verwendenopenssl.
$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
Es folgt eine Beispielausgabe.
vcek.pem: OK
Schritt 4: Bestätigen Sie die Signatur des Bestätigungsberichts
Stellen Sie sicher, dass der Bestätigungsbericht mit dem VCEK-Zertifikat signiert wurde. Dies bestätigt, dass der Bericht auf Originalhardware von AMD erstellt und nicht manipuliert wurde.
$./snpguest verify attestation ./ report.bin
Es folgt eine Beispielausgabe.
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!
Die TCB-Versionsfelder (Trusted Computing Base) bestätigen, dass die Firmware-Versionen im Zertifikat mit den im Bestätigungsbericht angegebenen Versionen übereinstimmen. Die letzte Zeile bestätigt, dass das VCEK den Bericht unterzeichnet hat.
Bescheinigung für Fälle von gemeinsamem Mietverhältnis
Shared Tenancy Instances verwenden einen Versioned Loaded Endorsement Key (VLEK), der von AMD für ausgestellt wird. AWS Sie müssen die Vertrauenskette vom VLEK-Zertifikat bis zum Vertrauensstamm von AMD überprüfen.
Schritt 1: Erstellen Sie das snpguest-Hilfsprogramm
In diesem Schritt installieren und erstellen Sie das snpguest Hilfsprogramm, mit dem Sie den Bestätigungsbericht generieren, die erforderlichen Zertifikate abrufen und den Bestätigungsbericht validieren.
-
Verbinden Sie sich mit der Instance.
-
Führen Sie die folgenden Befehle aus, um das
snpguest-Hilfsprogramm vom snpguest repositoryzu installieren. $git clone https://github.com/virtee/snpguest.git$cd snpguest$cargo build -r$cd target/release
Schritt 2: Generieren Sie den Bescheinigungsbericht
Generieren Sie eine Anfrage für den Bestätigungsbericht. Das snpguest Hilfsprogramm fordert den Bestätigungsbericht vom Host an und schreibt ihn in eine Binärdatei. Das folgende Beispiel erstellt eine zufällige Anforderungs-Nonce und speichert den Bericht in. report.bin
$./snpguest reportreport.binrequest-file.txt--random
Fordern Sie die Zertifikate aus dem Host-Speicher an und speichern Sie sie als PEM-Dateien.
$./snpguest certificates PEM./
Schritt 3: Rufen Sie die VLEK-Zertifikatskette ab und validieren Sie sie
Der Bestätigungsbericht wird vom VLEK unterzeichnet, der von AMD für ausgestellt wird. AWS Sie müssen die Vertrauenskette vom VLEK bis zur Vertrauensbasis von AMD überprüfen.
-
Laden Sie die VLEK-Root-of-Trust-Zertifikate vom offiziellen AMD Key Distribution Service in das aktuelle Verzeichnis herunter.
$sudo curl --proto '=https' --tlsv1.2 -sSf https://kdsintf.amd.com/vlek/v1/Milan/cert_chain -o ./cert_chain.pem -
Verwenden Sie
openssl, um zu überprüfen, ob das VLEK-Zertifikat von den Zertifikaten der AMD-Stammvertrauenstellung signiert ist.$sudo openssl verify --CAfile ./cert_chain.pem vlek.pemEs folgt eine Beispielausgabe.
vlek.pem: OK
Schritt 4: Bestätigen Sie die Signatur des Bestätigungsberichts
Stellen Sie sicher, dass der Bestätigungsbericht mit dem VLEK-Zertifikat signiert wurde. Dies bestätigt, dass der Bericht auf Originalhardware von AMD erstellt und nicht manipuliert wurde.
$./snpguest verify attestation ./ report.bin
Es folgt eine Beispielausgabe.
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!