AMD Zen: RAM-Verschlüsselung für virtuelle Maschinen

Kommende Opterons mit Zen-Mikroarchitektur für Server können den Hauptspeicher ganz oder teilweise verschlüsseln, um Daten in virtuellen Maschinen zu schützen.

In Pocket speichern vorlesen Druckansicht 117 Kommentare lesen
AMD Secure Memory Encryption (SME) und Secure Encrypted Virtualization (SEV)

AMD Secure Memory Encryption (SME): Speicher-Controller verschlüsselt RAM

(Bild: AMD)

Lesezeit: 4 Min.
Inhaltsverzeichnis

Der Software-Entwickler Thomas Lendacky aus der Linux OS Group von AMD stellt auf dem KVM Forum 2016 die Funktionen Secure Memory Encryption (SME) und Secure Encrypted Virtualization (SEV) vor. SME und SVE dienen dazu, Daten im RAM zu verschlüsseln, um Daten Virtueller Maschinen (VMs) zu schützen. Die neuen Funktionen sollen 2017 mit den neuen Opteron-Prozessoren starten, in denen Zen-Mikroarchitektur steckt, also beispielsweise im "Naples" mit bis zu 32 Kernen und 64 Threads. Sie sind unter anderem für Server in Rechenzentren von Firmen und Cloud-Dienstleistern gedacht, auf denen ein Hypervisor wie KVM, Xen, VMware ESXi oder Hyper-V Ressourcen für VMs bereitstellt.

Das Konzept von SME und SVE hat AMD bereits in einem Whitepaper erklärt sowie in der aktuellen Revision 3.26 des AMD64-Programmierhandbuchs. Demnach verschlüsselt SME das RAM per AES128 mit einem geheimen Schlüssel, der sich weder manipulieren noch auslesen lässt. Die Verschlüsselung soll mit geringer zusätzlicher Latenz auskommen.

Den einfachsten Modus der Vollverschlüsselung des gesamten RAM nennt AMD Transparent SME (TSME); dazu müssen weder Betriebssystem (OS) noch Hypervisor (HV) für SME vorbereitet sein. TSME schützt jedoch nur vor Angriffen, die physischen Zugriff auf die Hardware des Systems benötigen: Cold-Boot-Attacken, Sniffing-Hardware am Speicherbus oder den Diebstahl nichtflüchtiger Speichermodule (NVDIMMs), die bisher vor allem in Storage-Systemen stecken.

Spannender ist es, nur bestimmte RAM-Adressbereiche zu verschlüsseln, denn aus dem unverschlüsseltem RAM besteht kein Zugriff auf verschlüsselte Bereiche. Um bestimmte RAM-Adressen vom Speicher-Controller verschlüsseln zu lassen, setzen OS oder HV das sogenannte C-Bit (C für enCryption) im zugehörigen Page-Table-Eintrag (PTE). Wenn ein Hypervisor nur die RAM-Adressbereiche der VMs verschlüsselt, kann der HV-Administrator den Speicher der VMs auch mit Sniffing-Software nicht mehr im Klartext auslesen.

Ist das C-Bit im PTE gesetzt, verschlüsselt der Speicher-Controller die Daten an der jeweiligen RAM-Adresse.

(Bild: AMD)

Eine Abschottung einzelner VMs untereinander ist möglich, wenn das RAM jeder VM mit einem anderen Schlüssel verschlüsselt ist. Dazu braucht dann aber auch das Gast-Betriebssystem Unterstützung für SVE. Bei SVE hat jede VM eine eigene sogenannte ASID, die zugehörigen Code und Daten kennzeichnet.

DMA-Zugriffe auf das verschlüsselte RAM einer VM sind dabei verboten, weil sie das Konzept aushebeln würden. Für die Kommunikation mit anderen VMs und dem HV kann eine VM aber bestimmte RAM-Bereiche unverschlüsselt lassen, also als Shared Memory einrichten. Patches für den Linux-Kernel hat AMD bereits auf den Weg gebracht.

Die Schlüsselverwaltung übernimmt der in allen aktuellen AMD-Prozessoren integrierte Secure Processor auf der Basis von ARM TrustZone eines eingebauten Cortex-A5-Kerns. Er läuft mit proprietärem und von AMD digital signiertem Binärcode, der über AGESA im (UEFI-)BIOS des Systems integriert ist.

Weist der Gast einer VM unverschlüsseltes RAM als Shared Memory aus, kann er darüber Daten austauschen.

(Bild: AMD)

Mit den Prozessoren der Skylake-Generation hat Intel die Software Guard Extensions (SGX) eingeführt. Auch damit sind Schutzfunktionen ähnlich wie mit AMD SME/SEV möglich und auch Intel hat Memory Encryption Extensions (MEE) entwickelt. Serverprozessoren der Xeon-Familie mit Skylake-Technik werden wie AMD Naples im kommenden Jahr erwartet (Skylake-EP/Purley).

Sicherheitsexperten vom MIT und Joanna Rutkowska kritisieren allerdings, dass SGX die "Schlüsselgewalt" letztlich in Intels Hände legt.

Links zum Thema

(ciw)