Die Enklave im Rechner

0 Kommentare  
551 Aufrufe  

Personenbezogene Daten, Geschäftsgeheimnisse und andere sensible Informationen müssen bei der Speicherung und Verarbeitung zuverlässig vor fremden Blicken, Manipulation und Datendiebstahl geschützt werden. Im traditionellen Rechenzentrum nutzte man für diese Aufgabe oft eigene physikalisch und logisch abgeschottete Bereiche. Nur Mitarbeiter mit den notwendigen Berechtigungen erhielten Zugang zu den Servern und Firewalls. Auch andere Mechanismen der Perimetersicherheit schützten das Firmennetz vor Angriffen von außen.

In einer zunehmend vernetzten und hybriden Welt, in der lokale und Cloud-Ressourcen nahtlos ineinander übergehen, ist eine solche Abschottung nicht mehr möglich. Es wurden deshalb Konzepte entwickelt, die Daten sowohl während der Speicherung (Data at Rest) als auch bei der Übertragung (Data in Motion) schützen. Bei aller Vorsicht bleibt jedoch in verteilten Systemen ein prinzipielles Problem: Für die Verarbeitung müssen Daten in den Arbeitsspeicher geladen werden, wo sie in der Regel unverschlüsselt vorliegen. Verschaffen sich Insider, Hacker oder Malware Zugriff auf den Arbeitsspeicher, können sie diese Daten lesen oder entwenden.

Um dieses Problem zu lösen, haben Unternehmen wie Intel, IBM und Microsoft unter dem Dach der Linux Foundation das Confidential Computing Consortium (CCC) gegründet, das die Entwicklung und Verbreitung einer sicheren Datenverarbeitung vorantreiben will. Die Basis von Confidential Computing bildet dabei eine vertrauenswürdige Laufzeitumgebung (Trusted Execution Environment, TEE). Die auch als „Enklave“ bezeichnete TEE umfasst Bereiche des Prozessors und des Arbeitsspeichers, die für die Ausführung definierter Programmbestandteile reserviert werden. Nur der autorisierte Code kann dort Daten lesen und analysieren, Betriebssystem, Hypervisor, Cloud-Services und privilegierte Anwender mit Root-Rechten haben keinen Zugriff.

Über Befehlserweiterungen wie Intel® Software Guard Extensions (Intel® SGX), die in Intel® Xeon® E Prozessoren und seit Kurzem auch in den skalierbaren Intel® Xeon® Prozessoren der 3. Generation verfügbar sind, können Entwickler solche Enklaven sehr einfach nutzen. Sie definieren dazu, welche Funktionen im Code vertrauliche Daten verwenden dürfen. Bei der Ausführung dieser Programmbestandteile werden die Daten dann in den Enklave-Bereich geladen und von den autorisierten Funktionen verarbeitet.

 

Einsatzgebiete für Confidential Computing

Sichere, vertrauenswürdige Laufzeitumgebungen spielen vor allem in den folgenden Bereichen eine Rolle:

  • Public-Cloud-Nutzung: Sicherheitsbedenken sind nach wie vor der größte Hemmschuh für die Nutzung öffentlicher Cloud-Ressourcen. Konzepte wie die garantierte Verarbeitung in regionalen Rechenzentren oder „Bring Your Own Keys“ (BYOK), bei denen der Kunde die Schlüssel für seine Cloud-Instanzen selbst verwaltet, lösen zwar manche rechtlichen und regulatorischen Probleme. Sie können aber nicht verhindern, dass der Cloud-Provider zumindest während der Ausführung von Programmen Zugriff auf Daten und Applikationen erhält. Mit Confidential Computing ließe sich das Risiko drastisch senken, dass Daten in der Cloud während der Programmausführung ausgespäht oder verfälscht werden. Das würde das Potenzial an Workloads für die Public-Cloud-Verarbeitung deutlich erweitern.
  • Blockchain: Die Validierungslogik und die verteilte Datenhaltung machen Blockchain-Technologien sehr robust gegen Manipulationen. Wenn allerdings alle Knoten in der Kette an jeder Verifikation beteiligt werden müssen, kommt es schnell zu Performanceschwierigkeiten. Mit Confidential Computing könnte man Teile der Berechnungen aus der Kette herausnehmen, ohne Robustheit und Sicherheit der Blockchain zu verringern. Wird Intel SGX zur Verschlüsselung eines Ledgers eingesetzt, lassen sich außerdem vertrauliche Daten innerhalb der Blockchain schützen. Das kann beispielsweise bei Blockchain-basierten Verträgen eine Rolle spielen, bei denen nicht alle Vertragsparteien ungehinderten Zugriff auf sämtliche Informationen haben sollen.
  • Föderales Lernen: Beim föderalen Lernen (Federated Learning) werden Machine-Learning-Modelle mit einer Vielzahl verteilter Datenquellen trainiert. Oft arbeiten dazu mehrere Organisationen zusammen, um ein möglichst breites Spektrum an Trainingsmaterial zur Verfügung zu haben. Das verteilte Training spart darüber hinaus Bandbreite und Zeit, da die Daten nicht erst zentral aggregiert und gespeichert werden müssen. Allerdings sind in föderalen Lernsystemen Daten und Modelle für alle Beteiligten zugänglich, so dass die Gefahr von Manipulation oder Datendiebstahl nicht völlig auszuschließen ist. Durch Confidential Computing lässt sich dieses Sicherheitsproblem lösen. Daten und Algorithmen werden durch Verschlüsselung geschützt, das Training erfolgt in sicheren Enklaven, zu denen andere Versuchsteilnehmer keinen Zugang erhalten.

 

Confidential Computing in der Praxis: SecuStack

Im Jahr 2019 gründeten die Unternehmen Cloud&Heat Technologies und Secunet Security Networks das Joint Venture „SecuStack“, um eine besonders sichere und vertrauenswürdige Public-Cloud-Infrastruktur zu entwickeln. Das IaaS-Angebot (Infrastructure-as-a-Service) richtet sich vor allem an Behörden und Unternehmen in Branchen mit besonders strengen Sicherheits-, Compliance- und Datenschutzvorgaben. Auf Basis des Open-Source-Cloud-Systems OpenStack stellt es eine besonders gehärtete Infrastruktur zur Verfügung. Blockspeicher und Images werden vollständig verschlüsselt, wobei der Kunde die Kontrolle über die eingesetzten kryptografischen Schlüssel behält. Auch die Zugänge und die voneinander isolierten Mandantennetzwerke sind durch Verschlüsselung abgesichert.

Um kritische Infrastrukturdienste wie Identitätsmanagement, Schlüsselverwaltung und VPN-Services (Virtual Private Network) zusätzlich zu schützen und sichere Anwendungen in Container-Umgebungen bereitzustellen, setzt SecuStack auf Intel SGX. Mit Hilfe der Plattform Scone, einer Umgebung für sichere Container-Services, können Dienste in Intel SGX-Enklaven zudem einfach in Umgebungen wie Kubernetes-Cluster integriert und ausgeführt werden.

Der hohe Sicherheitsstandard erlaubt es beispielsweise, maschinelles Lernen mit vertraulichen Daten auf einer Public-Cloud-Infrastruktur auszuführen. So könnten etwa Krankenhäuser föderale Machine-Learning-Modelle entwickeln und diese mit anderen Institutionen des Gesundheitswesens oder der Forschung teilen, ohne dass Patientendaten fremden Blicken ausgesetzt würden.

 

Fazit

Mit Confidential Computing lassen sich Daten und Applikationen in öffentlichen und verteilten Strukturen sicher und vertraulich verarbeiten. Die Verwendung vertrauenswürdiger Laufzeitumgebungen schützt dabei nicht nur Daten, sondern auch geistiges Eigentum wie Applikationen oder Algorithmen. Unternehmen, Behörden und andere Organisationen können daher wesentlich enger zusammenarbeiten, ohne den Verlust von sensiblen Informationen oder Geschäftsgeheimnissen fürchten zu müssen.