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 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 einen AMD-Bestätigungsbericht SEV-SNP vom zugrunde liegenden Prozessor anfordern. Der SEV-SNP AMD-Bestätigungsbericht enthält einen kryptografischen Hash, der als Startmessung bezeichnet wird und den anfänglichen Inhalt des Gastspeichers und den anfänglichen vCPU-Status erfasst. Der Bestätigungsbericht ist mit einer VCEK-Signatur (auf Dedicated Hosts) oder einer VLEK-Signatur (auf Shared Tenancy) signiert, die auf eine AMD-Vertrauensbasis 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 Instanz, 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 validieren.
Anmerkung
Das derzeit unterstützte Prozessormodell istmilan.
Voraussetzungen
Eine Instanz, die auf einem SEV-SNP AMD-fähigen Dedicated Host läuft und 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 Bestätigungsbericht
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 Anfrage 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 Vertrauensbasis von AMD validieren.
-
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-Stammzertifikate (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: Validieren 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 originaler AMD-Hardware erstellt wurde 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 Felder für die TCB-Version (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 der VCEK den Bericht unterzeichnet hat.
Bescheinigung für Fälle von geteiltem Mietverhältnis
Shared Tenancy-Instanzen verwenden einen Versioned Loaded Endorsement Key (VLEK), der von AMD für ausgestellt wird. AWS Sie müssen die Vertrauenskette vom VLEK-Zertifikat bis zur Vertrauensbasis von AMD validieren.
Schritt 1: Erstellen Sie das Tool snpguest
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. Im folgenden Beispiel wird eine zufällige Anfrage ohne Angabe von Nonce erstellt und der Bericht in gespeichert. 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 ist vom VLEK unterzeichnet, der von AMD für ausgestellt wird. AWS Sie müssen die Vertrauenskette vom VLEK bis zur Vertrauensbasis von AMD validieren.
-
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: Überprüfen 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 originaler AMD-Hardware erstellt wurde 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!