-
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Bereitstellungen von isolierten und abgesicherten Ausführungsumgebungen auf einem Endgerät, das durch einen oder mehrere Prozessoren mit einem oder mehreren Prozessorkernen gesteuert wird, wobei die Prozessoren eine erste vertrauenswürdige Ausführungsumgebung und eine zweite ungeschützte Ausführungsumgebung zur Verfügung stellen und ausführen, wobei in der vertrauenswürdigen Ausführungsumgebung mindestens eine vertrauenswürdige Anwendung ausgeführt wird, die sensible Daten verarbeitet, und wobei in der ungeschützten Ausführungsumgebung eine ungeschützte Anwendung ausgeführt wird. Ein weiterer Teil der Erfindung ist ein entsprechendes Endgerät.
-
Hintergrund der Erfindung
-
Die Sicherheitsarchitekturen, die derzeit auf den meisten ARM-basierten mobilen Geräten verwendet werden, werden im Folgenden erklärt und sind Teil der Erfindung. Die Erklärungen sind aber nicht auf die ARM-Architektur beschränkt andere Architekturen wie RISC oder CISC sind ebenfalls denkbar.
-
Die überwiegende Mehrheit der heutigen mobilen Geräte enthält einen Prozessor und andere Hardwarekomponenten, die auf einem ARM-Design basieren. Aufgrund des Bedarfs an sicheren mobilen Diensten wie Mobile Banking oder eID-Diensten (Der Begriff eID-Infrastruktur bezeichnet die für die Realisierung der sicheren elektronischen Identifizierung notwendige Infrastruktur zwischen dem Besitzer eines elektronischen Personalausweis und einem Service Provider über das Internet) wurde das ARM-Design um Funktionalitäten erweitert, die es ermöglichen, die Sicherheit des Systems, das ein ARM-Design verwendet, zu erhöhen. Diese Erweiterungen betreffen den Prozessor, den Speicher und andere Systemperipheriegeräte und werden unter dem Namen ARM TrustZone angeboten. ARM TrustZone ermöglicht eine Unterteilung des Systems, orthogonal zu den Privilegien-Stufen zur Unterteilung von Anwendungs-, Betriebssystem- und Hypervisor-Modus, welche insbesondere eine systemweite Hardwareisolation für vertrauenswürdige Software bietet. Mit Hilfe von TrustZone können Hersteller von mobilen Geräten Sicherheitsarchitekturen auf ihren Geräten implementieren, die es ermöglichen, sicherheitskritischen Programmcode in einer vertrauenswürdigen Umgebung auszuführen. Diese allgemeine Sicherheitsarchitektur, die als Trusted Execution Environment (TEE) bezeichnet wird, ist in 1 dargestellt und auf modernen mobilen Geräten weit verbreitet.
Ein TEE stellt eine sichere bzw. vertrauenswürdige Ausführungsumgebung für Anwendungen zur Verfügung. Dabei kann ein TEE isoliert auf einem separaten Prozessor, direkt auf dem Hauptprozessor(en) eines Computersystems oder aber in einem Die eines Multiprozessor-System bzw. eines Ein-Chip-System (SoC) existieren. Auf dem TEE können nur speziell dafür freigeschaltete Anwendungen ausgeführt werden.
-
Das TEE-Konzept verfeinert das Konzept des Trusted Computing. Ein oder mehrere vertrauenswürdige Ausführungsumgebungen können parallel existieren, daneben können noch weitere unsichere oder ungeschützte Umgebungen existieren.
-
Das Hauptmerkmal einer TEE-Sicherheitsarchitektur ist die Trennung des Systems in eine normale und eine sichere Welt (Normal World/Secure World). Der Grundgedanke ist, dass die normale Welt im Allgemeinen nicht vertrauenswürdig und daher auch potentiell bösartig ist. In dieser Welt sollte nur Programmcode ausgeführt werden, der keine sensiblen Daten verarbeitet und für das System nicht sicherheitsrelevant ist. Auf bestehenden Architekturen wird das ungeschützte OS /Betriebssystem (Legacy OS) (1) typischerweise durch das Betriebssystem Android und die ungeschützten Anwendungen (Legacy Apps) (2) von Android Apps repräsentiert. In der sicheren Welt hingegen läuft Programmcode, der sensible Daten verarbeitet und für das System sicherheitsrelevant ist. Programmcode, der mobile Dienste wie Mobile Banking oder eID implementiert, sollte nur in der sicheren Welt ausgeführt werden, da er sensible Daten verarbeitet. Es ist zwingend erforderlich, dass dem Code in der sicheren Welt vertraut wird, da er das gesamte System gefährden kann. Die sichere Welt besteht aus einem Betriebssystem, dem vertrauenswürdigen OS (Trusted OS) (3) und den vertrauenswürdigen Anwendungen (Trusted Apps) (4), die die mobilen Dienste implementieren. Das vertrauenswürdige OS wird in der Regel durch ein kleines benutzerdefiniertes Betriebssystem repräsentiert, das sich zwischen verschiedenen Anbietern von mobilen Geräten erheblich unterscheiden kann. Die Umschaltung zwischen normaler und sicherer Welt erfolgt durch eine vertrauenswürdige Softwarekomponente namens Monitor-Programmcode. In der Regel wird die offizielle Referenzimplementierung von ARM, die so genannte ARM Trusted Firmware (5), verwendet. Die eigentliche Trennung zwischen den beiden Welten wird durch die Sicherheitserweiterungen der TrustZone für den Prozessor und andere Peripheriegeräte erreicht. TrustZone-fähige Prozessoren können in zwei verschiedenen Sicherheitsmodi ausgeführt werden, entweder unsicher oder sicher. Im ungesicherten Modus kann der Prozessor nur auf Programmcode und Daten aus der normalen Welt zugreifen. Im sicheren Modus kann der Prozess auf Programmcode und Daten aus beiden Welten zugreifen. Die Welttrennung im Speicher wird durch einen TrustZone-fähigen Adressraum-Kontroller, den TrustZone Address Space Controller (TZASC) (6), erzwungen. In 1 ist dargestellt, dass der TZASC z.B. den Zugriff vom ungeschützten OS auf die Speicheradresse 0×D0 verhindern würde, da dieser Speicherbereich zur sicheren Welt gehört. Verfügt ein Prozessor zudem über Virtualisierungserweiterungen, kann der Prozessor auch in einen weiteren Modus, genannt Hypervisor Modus (EL-2 bei ARM Prozessoren), wechseln. In diesem Modus können die Virtualisierungsmechanismen des Prozessors konfiguriert werden.
-
Obwohl beide Welten strikt voneinander getrennt sind, ist eine Kommunikation zwischen den beiden Welten notwendig, um die in der sicheren Welt implementierten Funktionen nutzen zu können. Typischerweise stellt der Hersteller von mobilen Geräten vertrauenswürdige Anwendungen im TEE bereit, die einige grundlegende Funktionen, wie die sichere Speicherung eines Schlüssels in der sicheren Welt oder die Ver- und Entschlüsselung von Daten mit diesen Schlüsseln, bieten. In diesem Fall werden die sensiblen Daten nur innerhalb der sicheren Welt verarbeitet und sind daher nicht gefährdet, von einem Angreifer gestohlen zu werden. Diese Basisfunktionalitäten des Anbieters können von jeder ungeschützten Anwendung in der normalen Welt offen genutzt werden. Für die meisten mobilen Dienste reichen jedoch die bereitgestellten Funktionalitäten der vertrauenswürdigen Anwendungen des Anbieters nicht aus, denn die Mobilfunkanbieter verwenden eigene Algorithmen und Protokolle, z.B. für die Schlüsselverwaltung, die sensible Daten verarbeiten und zur Laufzeit geschützt werden müssen. In einer TEE-Architektur ist dies durch den Einsatz eigener vertrauenswürdiger Anwendungen im TEE möglich. Als Ergebnis würde ein Mobilfunkanbieter seinen Programmcode in sensiblen und nicht sensiblen Programmcode aufteilen. Der sensible Programmcode ist in einer vertrauenswürdigen Anwendung implementiert, der nicht sensible Programmcode in einer ungeschützten Anwendung. Wenn beide auf dem Gerät bereitgestellt werden, können sie zusammenarbeiten, um den mobilen Dienst bereitzustellen.
-
Theoretisch stellt die TEE-Architektur ein solides Konzept dar. In der Praxis hat sich jedoch ein großer Nachteil dieser Architektur entwickelt. Jeder vertrauenswürdigen Anwendung, die von einem externen Mobilfunkanbieter entwickelt wird, muss vom Hersteller des mobilen Gerätes ausdrücklich vertraut werden. Der Grund dafür ist, dass man nicht erwarten kann, dass die vertrauenswürdigen OS fehlerfrei sind. Die vertrauenswürdigen OS werden in der Regel kleiner sein als die ungeschützten OS. Sie sind jedoch immer noch komplex und groß genug, so dass Softwarefehler sehr wahrscheinlich sind und einige von ihnen wurden bereits in bestehenden Implementierungen gefunden. Das notwendige Vertrauen in den Programcode einer vertrauenswürdigen Anwendung ist auch viel höher als das Vertrauen, das ein Gerätehersteller in den Programmcode einer ungeschützten Anwendung setzen muss. Wenn es einer ungeschützten Anwendung gelingt, das ungeschützte OS zu kompromittieren, wird sie immer noch keinen Zugang zu den sensiblen Daten in der sicheren Welt erhalten. Wenn eine vertrauenswürdige Anwendung jedoch in der Lage ist, einen Fehler im vertrauenswürdigen OS auszunutzen, kann sie das gesamte System gefährden. Sie erhält Zugang zu allen sensiblen Daten in der sicheren Welt und auch zu allen Daten in der normalen Welt. In der Praxis führte dies zu folgender Situation im Ökosystem der mobilen Software:
- Einige Hersteller von mobilen Geräten sperren ihr TEE vollständig für Programmcode von Drittanbietern, so dass keine bösartige oder fehlerhafte vertrauenswürdige Anwendung auf das Gerät gebracht werden kann und die Systemsicherheit gefährdet ist. Dies bedeutet jedoch, dass kein Mobilfunkanbieter seinen eigenen sensiblen Programmcode in einer sicheren Umgebung ausführen und schützen kann. Andere Hersteller von mobilen Geräten erlauben es, vertrauenswürdige Anwendungen von Drittanbietern für ein Gerät bereitzustellen. Dies ist jedoch mit einem hohen Managementaufwand verbunden, der für einen Mobilfunkanbieter eine erhebliche Investition bedeutet, da jeder Gerätehersteller individuell kontaktiert werden muss, um eine maßgeschneiderte Lösung in ihrem TEE zu erhalten.
-
Außerdem müssen alle vertrauenswürdigen Anwendungen gründlich getestet werden, um Vertrauen in sie zu gewinnen. Wenn ein Gerätehersteller den Bereitstellungsprozess von vertrauenswürdigen Anwendungen vereinfachen würde, indem er jede vertrauenswürdige Anwendungen in seinem TEE zulässt, würde dies die Systemsicherheit stark gefährden. Obwohl es eine hohe Nachfrage nach sicheren mobilen Diensten gibt und ARM TrustZone auf den meisten mobilen Geräten verfügbar ist, sind sichere mobile Dienste, die durch TrustZone geschützt sind, heute nicht weit verbreitet.
-
Aus dem Stand der Technik sind bekannt:
- Intel SGX bietet Sicherheits-Funktionalitäten, ist aber nur für die x86-Plattform -und damit nicht für Mobilgeräte - verfügbar.
(V. Costan and S. Devadas. Intel sgx explained. IACR Cryptology ePrint Archive, 2016:86, 2016)
- Sanctum ähnelt SGX, schlägt aber eine komplett neue Plattformarchitektur vor und ist daher nicht praxisrelevant. (V. Costan, I. A. Lebedev, and S. Devadas. Sanctum: Minimal hardware extensions for strong software isolation. in USENIX Security Symposium, pages 857-874, 2016.)
- Sancus erweitert die openMSP430-Architektur durch weitere Hardware um kryptographische und Speicherisolations-Primitiven. Aufgrund der Kostspieligkeit von Hardware-Änderungen ist Sancus ebenfalls nicht praxisrelevant. (J. Noorman, P. Agten, W Daniels, R. Strackx, A. Van Herrewege, C. Huygens, B. Preneel, I. Verbauwhede, and F. Piessens. Sancus: Low-cost trustworthy extensible networked devices with a zero-software trusted computing base. in 22nd USENIX Security symposium, USENIX Sec, pages 479-494, 2013. J. Noorman, J. V. Bulck, J. T. Mühlberg, F. Piessens, P. Maene, B. Preneel, I. Verbauwhede, J. Götzfried, T. Müller, and F. Freiling. Sancus 2.0: A low-cost security architecture for iot devices. ACM Transactions on Privacy and Security (TOPS), 20(3):7, 2017.)
- TrustICE hat die gleiche Zielsetzung wie das Sanktuarium, ermöglicht aber keine parallele Ausführung des sensiblen Programmcodes mit dem ungeschützten OS, und erfordert Vertrauen in den sensiblen Programmcode, daher ist auch TrustICE nicht praxisrelevant. (H. Sun, K. Sun, Y. Wang, J. Jing, and H. Wang. Trustice: Hardwareassisted isolated computing environments on mobile devices. in Proceedings of the 2015 45th AnnuaiiEEE/IFIP International Conference on Dependable Systemsand Networks, DSN '15, pages 367-378, 2015.)
-
Überblick über die Erfindung:
-
Aufgabe ist es daher eine Lösung für die oben genannten Probleme zu finden.
Gelöst wird die Aufgabe durch ein Verfahren und eine Vorrichtung nach einem oder mehreren der Ansprüche.
-
Insbesondere durch ein Verfahren zur Bereitstellungen von abgesicherten Ausführungsumgebungen auf einem Endgerät, das durch einen oder mehrere Prozessoren mit einem oder mehreren Prozessorkernen gesteuert wird. Hierbei soll klargestellt werden, dass physische oder virtualisierte Prozessoren oder Prozessorkerne, Einheiten darstellen, denen ein eigener Speicherbereich zugeteilt wird, und die keinerlei Überschneidungen mit anderen Anwendungen erlauben, die auf anderen Prozessoren oder Prozessorkernen abgearbeitet werden. Es soll somit eine Separierung der Anwendungen auf Prozessor bzw. Prozessorkernebene und Speicherebene erfolgen.
Die Prozessoren führen eine erste vertrauenswürdige Ausführungsumgebung und eine zweite ungeschützte Ausführungsumgebung aus, wobei in der vertrauenswürdigen Ausführungsumgebung mindestens eine vertrauenswürdige Anwendung ausgeführt wird, die sensible Daten verarbeiten, und wobei in der ungeschützten Ausführungsumgebung eine ungeschützte Anwendung ausgeführt wird. Hierbei handelt es sich um die bekannte TEE-Architektur, wie sie zum Beispiel bei ARM-Prozessoren implementiert ist. Andere Prozessoren haben ähnliche Architekturen. Eine Beschränkung auf Prozessoren mit einem entsprechenden Design ist nicht beabsichtigt. In den Ausführungsumgebungen laufen in der Regel separate Betriebssysteme, mit separaten Anwendungen, die lediglich über klar definierte Schnittstellen miteinander kommunizieren können. Standardmäßig kommunizieren Anwendungen aus der ungeschützten Ausführungsumgebung mit Anwendungen in der vertrauenswürdigen Ausführungsumgebung über definierte Protokolle und Schnittstellen. Das Ganze wird durch eine entsprechende Architektur mit einem entsprechenden Adressraum-Kontroller umgesetzt, der die Speicherbereiche entsprechend voneinander trennt. Auch ist eine entsprechende Firmware denkbar, die als Schicht zwischen dem Prozessor und dem Adressraum-Kontroller angeordnet ist, und die Kommunikation mit der Hardware und zwischen der ungeschützten Ausführungsumgebung und der vertrauenswürdigen Ausführungsumgebung koordiniert.
-
Die Erfindung hat eine oder mehrere weitere Ausführungsumgebungen, genannt Sanktuarium Instanzen, welche isoliert von der ersten und zweiten Ausführungsumgebung sind und jeweils auf einem dedizierten Prozessor oder dedizierten Prozessorkern ausgeführt werden. Es handelt sich hierbei um andere Prozessoren oder Prozessorkerne, als diejenigen, auf denen die beiden ersten Ausführungsumgebungen ausgeführt werden. Ferner ist jeder Sanktuarium Instanz ein Sankturariumsspeicherbereich zugeordnet, der wiederum ausschließlich diesem Prozessor oder Prozessorkern zugeordnet ist.
In einer Sanktuarium Instanz läuft in der Regel ebenfalls ein kleines Betriebssystem, das in der Lage ist Anwendungen mit den entsprechenden Hardwareressourcen zu versorgen. Dieses Betriebssystem ist minimiert und auf den Zweck ausgerichtet, um bestimmte Sanktuariumsanwendungen auszuführen. Insbesondere können in einer Sanktuarium Instanz Bibliotheken angeboten werden, die von den Sanktuariumsanwendungen genutzt werden können, um eine Interaktion mit der ungeschützten Ausführungsumgebung und/oder der vertrauenswürdigen Ausführungsumgebung zu ermöglichen. Die Sanktuarium Bibliothek stellt hierbei die nötigen Kommunikationskanäle bereit. Diese Bibliothek dient auch zum Schutz, um bösartige Sanktuariumsanwendungen in ihrem Zugriff einzuschränken. Hierbei ist die ungeschützte Ausführungsumgebung so ausgebildet bzw. sind die Anwendungen, die in der ungeschützten Ausführungsumgebung laufen, so entwickelt, dass eine Kommunikation nicht unmittelbar mit der vertrauenswürdigen Anwendung in der vertrauenswürdigen Ausführungsumgebung erfolgt, sondern es findet zuerst eine Kommunikation mit den Sanktuariumsanwendungen statt, welche dann wiederum mit den Anwendungen in der vertrauenswürdigen Ausführungsumgebung kommunizieren. Wenn z.B. die ungeschützte Anwendung eine Kommunikationsanfrage an die vertrauenswürdige Anwendung vornimmt, wird die Kommunikationsanfrage umgelenkt auf die Sanktuariumsanwendung, die dann die Kommunikationsanfrage unter Durchführung einer Kommunikation mit der vertrauenswürdigen Anwendung verarbeitet.
Die Kommunikation der ungesicherten Ausführungsumgebung mit einer Sanktuarium Instanz kann entweder automatisch durch entsprechende Kernelmodule erfolgen oder die Anwendungen verwenden entsprechende Bibliotheken und Routinen, die in der ungesicherten Ausführungsumgebung bereitgestellt werden, um eine Kommunikation mit dem Sanktuarium zu ermöglichen.
Es ist zu beachten, dass die Anwendungen in einer Sanktuarium Instanz nicht notwendiger Weise auf Anwendungen in der vertrauenswürdigen Ausführungsumgebung zugreifen müssen. Sie können auch alleine in einer Sanktuarium Instanz ablaufen.
-
Hierbei ist vorzugsweise die Software, umfassend das vertrauenswürdige OS und die auf dem vertrauenswürdigen OS laufenden vertrauenswürdigen Anwendungen, nach der initialen Konfiguration des Endgerätes nicht mehr bzw. sehr aufwendig änderbar. D. h. zum Zeitpunkt der Auslieferung an den Endkunden besteht keinerlei Updatemöglichkeit für den Endkunden selbst. Hierdurch soll sichergestellt werden, dass Software in der vertrauenswürdigen Ausführungsumgebung beim Endkunden nicht mehr geändert werden kann bzw. eine Änderung nur mit Hilfe des Endgeräteherstellers erfolgen kann. Hierdurch wird sichergestellt, dass ein Angriff auf Software hardwareseitig stark eingeschränkt wird. Da auch Fehler in der vertrauenswürdigen Ausführungsumgebung behoben werden müssen, hat der Endgerätehersteller die Möglichkeit diese zu updaten. Um auf Anpassungen der vertrauenswürdigen Ausführungsumgebung reagieren zu können und um eigene Fehler beheben zu können, sind die Sanktuariumsanwendungen nach Auslieferung des Endgeräts auch durch Endbenutzer bzw. Drittanbieter, die Sanktuariumsanwendungen entwickeln, austauschbar. Hierdurch kann eine schnellere Reaktion auf Fehler und eine höhere Unabhängigkeit vom Endgerätehersteller erreicht werden.
Der Austausch kann hierbei entweder über ein Funknetz erfolgen oder durch aufspielen von Software über Kabelverbindungen. Der Austausch kann sowohl lediglich die Sanktuariumsanwendungen betreffen als auch das Betriebssystem, das in einer Sanktuarium Instanz ausgeführt wird oder die entsprechenden Bibliotheken.
In einer bevorzugten Ausführungsform wird in der vertrauenswürdigen Ausführungsumgebung eine Anwendung ausgeführt, vorzugsweise als Kernelmodul, die überprüft, ob eine Sanktuarium Instanz korrekt eingerichtet ist, um nur dann eine Kommunikation mit den Anwendungen in der vertrauenswürdigen Ausführungsumgebung zu erlauben, wenn eine korrekte Einrichtung der Sanktuarium Instanz vorliegt.
-
Diese Überprüfung kann auf der Basis von Signaturen oder Hash-Werten erfolgen. Somit wird sichergestellt, dass lediglich dann eine Interaktion erfolgt, wenn eine Sanktuarium Instanz bzw. deren Anwendungen nicht korrumpiert wurden. Die entsprechenden Signaturen oder Hash- Werte können in der vertrauenswürdigen Ausführungsumgebung abgelegt werden und zum Beispiel aus dem Netzwerk abgerufen werden. Somit kann sichergestellt werden, dass die Integrität des Gerätes gegeben ist. Auch kann zum Beispiel die Ausführung einer Sanktuarium Instanz erst dann erfolgen, wenn eine Überprüfung erfolgreich durchgeführt wurde.
-
In einer bevorzugten Ausführungsform stellt eine Sanktuarium Instanz eine Sanktuariumsbibliothek bereit, die grundlegende Prozess- und Speicherverwaltungs-, und Kommunikationsfunktionen bereitstellt, insbesondere um mit der vertrauenswürdigen Anwendung und den ungeschützten Anwendungen zu kommunizieren. Somit wird der Umfang der Programmierung der Sanktuariumsanwendungen reduziert und die Kommunikation standardisiert, wodurch bösartige Angriffe reduziert werden können.
-
In der bevorzugten Ausführungsform ist das Endgerät ein mobiles Endgerät, wie es in bekannten zellbasierten Mobilfunknetzen umfassend GSM und LTE verwendet wird. Somit sind die Sanktuariumsanwendungen z.B. nach Auslieferung des Endgeräts durch einen Betreiber des Mobilfunknetzwerks über das Mobilfunknetzwerk austauschbar. Der Austausch der Anwendungen in einer Sanktuarium Instanz kann zum Beispiel so gesteuert werden, dass lediglich Anwendungen, die in der vertrauenswürdigen Ausführungsumgebung laufen, berechtigt sind, ein Überschreiben der Anwendungen in einer Sanktuarium Instanz vorzunehmen. Auch ist es denkbar, dass die Anwendungen in einer Sanktuarium Instanz selbst regelmäßig nach Updates suchen, um sich selbst zu ersetzen. Die Anwendungen in der vertrauenswürdigen Ausführungsumgebung überprüfen dann, ob die Updates zulässig sind oder nicht. Aufgrund der Tatsache, dass auf die vertrauenswürdigen Anwendungen nur über eine Sanktuarium Instanz zugegriffen werden kann, wird sichergestellt, dass ein unmittelbarer Angriff auf die vertrauenswürdigen Anwendungen verhindert wird.
-
Eine Sanktuarium Instanz wird vorzugsweise einem physischen oder virtualisierten Prozessor oder Prozessorkern zugewiesen und auf diesem ausgeführt. Der Prozessor bzw. Prozessorkern wird zum Beispiel auf Basis von Prozessor-Identifikatoren ausgewählt. Der Sanktuariumsspeicherbereich wird ausschließlich diesem Prozessor oder Prozessorkern zugewiesen.
Die Sanktuarium Instanzen, die ungeschützte Ausführungsumgebung und die vertrauenswürdige Ausführungsumgebung werden durch geeignete Isolationsmechanismen voneinander isoliert. Die Isolation erfolgt durch die Kontrolle der Zugriffe auf die Speicherbereiche, die den einzelnen Sanktuarium Instanzen, der ungeschützten Ausführungsumgebung und der vertrauenswürdigen Ausführungsumgebung zugewiesen sind. Die Zugriffskontrolle der Speicherbereiche der ungeschützten und vertrauenswürdigen Ausführungsumgebungen wird, wie beim Stand der Technik, durch einen Adressraum-Kontroller realisiert (z.B. TZASC von ARM). Wenn eine Sanktuarium Instanz einem physischen Prozessor oder Prozessorkern zugewiesen wird, wird die Isolation der Sanktuarium Instanz auch durch einen Adressraum-Kontroller realisiert. Wird eine Sanktuarium Instanz einem virtualisierten Prozessor oder Prozessorkern zugewiesen, erfolgt die Isolation durch Virtualisierungsmechanismen des physischen Prozessors oder Prozessorkerns (z.B. eine entsprechend ausgebildete Memory Management Unit (MMU)). Die Sanktuarium Isolationsmechanismen regeln, dass Anwendungen aus der ungeschützten Ausführungsumgebung lediglich Zugriff auf den Teil des Sanktuariumsspeicherbereichs erhalten, welcher mit der ungeschützten Ausführungsumgebung geteilt werden soll. Ferner steuert der Adressraum-Kontroller, dass Sanktuariumsanwendungen nur auf den Teil des Speicherbereichs der vertrauenswürdigen Ausführungsumgebung zugreifen können, welcher mit der Sanktuarium Instanz geteilt werden soll.
In einer bevorzugten Ausführungsform können die Sanktuariumsanwendungen nun mit Hilfe der Sanktuariumsbibliothek, über die geteilten Speicherbereiche, mit Anwendungen in der ungeschützten Ausführungsumgebung und mit Anwendungen in der vertrauenswürdigen Ausführungsumgebung interagieren.
-
In einer bevorzugten Ausführungsform wird eine Sanktuarium Instanz nur aufgebaut und ausgeführt, wenn eine Kommunikationsanfrage von einer ungeschützten Anwendung vorliegt. Nachdem eine Sanktuarium Instanz seine Ausführung beendet hat, kann sie sich selbst abbauen oder sie wird entweder von der ungeschützten oder der vertrauenswürdigen Ausführungsumgebungen beendet und abgebaut, wenn bestimmte zeitliche oder andere Bedingungen hinsichtlich der Nutzung eingetreten sind. In diesem Falle können die Ressourcen, die von einer Sanktuarium Instanz in Anspruch genommen wurden, wieder freigegeben werden. Auf der anderen Seite, wenn eine Sanktuarium Instanz aufgebaut werden soll, sind entsprechende Ressourcen zu belegen, damit ein Prozessor oder ein Prozessorkern lediglich für die Sanktuarium Instanz zur Verfügung steht. Das Gleiche gilt für den Speicherbereich.
-
In den Aufbau einer Sanktuarium Instanz sind Komponenten der vertrauenswürdigen Ausführungsumgebung als auch Komponenten der ungeschützten Ausführungsumgebung involviert.
-
Die Komponenten der ungeschützten Ausführungsumgebung laden die Sanktuariumsbibliothek und Sanktuariumsanwendungen in den Speicher, und initiieren den Aufbau-Prozess. Zudem wählen sie den Prozessor oder Prozessorkern aus der einer Sanktuarium Instanz zugewiesen wird. Die Komponenten der vertrauenswürdigen Ausführungsumgebung überprüfen die Korrektheit des Aufbaus. Wird die Sanktuarium Instanz an einen physischen Prozessor oder Prozessorkern gebunden, aktiviert die vertrauenswürdige Ausführungsumgebung die Speicherisolation, d.h. sie konfiguriert den Adressraum-Kontroller entsprechend. Wird die Sanktuarium Instanz an einen virtualisierten Prozessor oder Prozessorkern gebunden, so wechselt ein Prozessor des Endgerätes in den Hypervisor Modus und aktiviert die Speicherisolation durch eine entsprechende Konfiguration der Virtualisierungsmechanismen (z.B. eine entsprechende MMU) des Prozessors oder Prozessorkerns welcher der Sanktuarium Instanz zugewiesen wurde.
-
Ein weiterer Teil der Erfindung ist ein Endgerät, das entsprechende Prozessoren, Speicher, dauerhafte Speichermedien und eine entsprechende Architektur besitzt, um das vorgenannte Verfahren auszuführen. In der Regel handelt sich um bekannte mobile Endgeräte, deren Firmware und Softwarekonfiguration anzupassen ist, um das Verfahren auszuführen. Es kann sich aber auch um Server oder Personal Computer handeln, die entsprechende Firmware aufweisen.
-
Figurenliste
-
- 1: Übersicht über die TEE-Architektur
- 2: Übersicht über die Architektur der vorliegenden Erfindung wenn eine Sanktuarium Instanz einem physischen Prozessorkern zugewiesen wird, die gestrichelten Linien stellen die neuen Komponenten dar.
- 3: Übersicht über die Architektur der vorliegenden Erfindung wenn eine Sanktuarium Instanz einem virtualisierten Prozessorkern zugewiesen wird. Die gestrichelten Linien stellen die neuen Komponenten dar.
-
Der Grundgedanke des Sanktuarium-Designs besteht darin, eine oder mehrere isolierte Ausführungsumgebungen bereitzustellen, in der sensibler Programmcode, der sensible Daten verarbeitet, ausgeführt werden kann. Diese isolierten Umgebungen werden Sanktuarium Instanzen genannt. Der in einer Sanktuarium Instanz laufende Programmcode ist vollständig von allem nicht vertrauenswürdigen Programmcode auf dem System getrennt und gleichzeitig ist er nicht Teil des vertrauenswürdigen Programmcodes des Systems, auch als Trusted Computing Base (TCB) bezeichnet. Tatsächlich muss der in einer Sanktuarium Instanz laufende Programmcode selbst nicht vertrauenswürdig sein, da er die Systemsicherheit nicht gefährden kann. Die Trennung vom vertrauenswürdigen Programmcode und anderem nicht vertrauenswürdigen Programmcode erfolgt, indem die Sanktuarium Instanzen jeweils auf einem dedizierten Prozessor oder Prozessorkern ausgeführt werden und Speicherbereiche ausschließlich diesen Prozessoren oder Prozessorkernen unter Verwendung geeigneter Isolationsmechanismen zugewiesen werden.
-
In der Praxis kann das Sanktuarium-Design z.B. dazu genutzt werden, bestehende TEE-Architekturen so zu erweitern, dass das volle Potenzial von TEEs endlich auf modernen mobilen Endgeräten genutzt werden kann. 2 zeigt eine generische TEE-Architektur, die um die Konstruktionsprinzipien des Sanktuariums erweitert wurde, wenn eine Sanktuarium Instanz einem physischen Prozessorkern zugewiesen wird. 3 zeigt eine erweiterte TEE-Architektur, wenn eine Sanktuarium Instanz einem virtualisierten Prozessorkern zugewiesen wird.
-
Wie in der traditionellen TEE-Architektur ist das System in eine normale und eine sichere Welt (Normal World / Secure World) unterteilt. In der normalen Welt besteht der nicht vertrauenswürdige Programmcode aus dem ungeschützten OS (Legacy OS) (1) und den ungeschützten Anwendungen (Legacy Apps) (2). In der sicheren Welt wird ein vertrauenswürdiges OS (Trusted OS) (3) zusammen mit vertrauenswürdigen Anwendungen (Trusted Apps) (4) ausgeführt. Einer der wichtigen Unterschiede zur Stand der Technik TEE-Architektur ist, dass die sichere Welt keinen Programmcode von einem Drittanbieter enthalten wird. Alle vertrauenswürdigen Anwendungen im TEE werden vom Gerätehersteller oder vom TEE-Anbieter bereitgestellt, wenn sie von einer zweiten Vertrauensperson entwickelt werden. Es bleibt dem Hersteller überlassen, welche Funktionalitäten er im TEE zur Verfügung stellt. Eine Änderung nach der Auslieferung an den Endkunden ist somit nicht oder nur mit einem sehr hohen Aufwand möglich.
-
Der sensible Drittanbietercode, der in Form einer benutzerdefinierten vertrauenswürdigen Anwendung in das TEE integriert werden musste, wird in einer Sanktuarium Instanz in Form einer Sanktuariumsanwendung (Sanctuary App) (10) isoliert. Das bedeutet, dass ein Mobilfunkanbieter statt einer kundenspezifischen vertrauenswürdigen Anwendung nun eine kundenspezifische Sanktuariumsanwendung entwickelt. Für jede Sanktuariumsanwendung gibt es vorzugsweise eine entsprechende ungeschützte Anwendung, die ebenfalls vom Mobilfunkanbieter entwickelt werden kann oder auch von Dritten, die z.B. auf Standardschnittstellen zugreifen.
Die Sanktuarium Instanz besteht aus einer Sanktuariumsanwendung und einer Sanktuariumsbibliothek (Sanctuary Library) 9. Die Sanktuariumsbibliothek bietet einige grundlegende Prozess- und Speicherverwaltungsfunktionen für die Sanktuariumsanwendung, die z.B. mit unprivilegierten Rechten in der Sanktuarium Instanz läuft. Die Konstruktionsprinzipien einer Sanktuarium Instanz verlangen in einer möglichen Ausführungsform, dass nicht mehr als eine Sanktuariumsanwendung von unterschiedlichen Anbietern gleichzeitig in der Sanktuarium Instanz läuft, um Datenlecks zwischen verschiedenen mobilen Diensten zu verhindern. Eine Ausführung von mehreren Sanktuariumsanwendungen desselben Anbieters in einer Sanktuarium Instanz ist dagegen im Sanktuarium-Design möglich.
Wie in 2 und 3 gezeigt, läuft der Sanktuarium-Code auf einem separaten Prozessorkern und ist daher vom nicht vertrauenswürdigen/unsicheren Programmcode der normalen Welt getrennt. Wird die Sanktuarium Instanz einem physischen Prozessorkern zugewiesen, wie in 2 dargestellt, wird der Sanktuariumsspeicherbereich vorzugsweise ebenfalls durch die TZASC-Hardwarekomponente (6) vom Rest des Systems getrennt. Die neueste Referenzimplementierung, der TZC-400, erlaubt es Speicherbereiche ausschließlich Bus-Mastern auf dem System zuzuweisen, die sich bei den Transaktionen, die sie über den Systembus senden, identifizieren. Die CPU, GPU und andere Peripheriegeräte wie ein Display-Kontroller fungieren als Bus-Master auf dem System. Der TZC-400 kann nun die von den Bus-Mastern gesendeten Identifikatoren verwenden um eine Speicherzugriffskontrolle durchzuführen. In aktuellen TEE-Architekturen wird diese Funktion des TZC-400, die als identitätsbasierte Filterung bezeichnet wird, nur für die Implementierung von Medienschutzanwendungen verwendet, bei denen der Speicher entweder der CPU oder der GPU zugewiesen ist. Im Sanktuarium-Design wird diese Funktion verwendet, um einen Speicherbereich ausschließlich dem einen physischen Prozessorkern zuzuweisen, auf dem der Sanktuarium-Code ausgeführt werden soll. Infolgedessen können die Prozessorkerne, die den Programmcode der normalen Welt ausführen, nicht auf die Speicherbereiche der Sanktuarium Instanzen zugreifen. Da die identitätsbasierte Filterfunktion, zumindest bisher, nicht im Cache-Speicher implementiert ist, werden der Sanktuarium-Code und dessen Daten nicht im gemeinsamen Cache-Speicher zwischen den Prozessorkernen des gleichen Prozessor-Clusters zwischengespeichert. Andernfalls könnte Programmcode in der normalen Welt Zugang zu Daten aus einer Sanktuarium Instanz erhalten. Auf ARM-basierten Systemen ist dieser gemeinsame Cache typischerweise der L2-Cache.
Wird die Sanktuarium Instanz einem virtualisierten Prozessorkern zugewiesen, wie in 3 dargestellt, wird der Sanktuariumsspeicherbereich vorzugsweise durch Virtualisierungserweiterungen, z.B. eine entsprechend ausgebildete MMU 12, vom Rest des Systems getrennt. Seit der ARMv7 Architektur sind entsprechende Virtualisierungsmechanismen für ARM Prozessoren vorhanden. Die Speicherzugriffskontrolle der MMU erfolgt durch eine zweistufige Übersetzung von virtuellen Speicheradressen zu physikalischen Speicheradressen. Die Konfiguration der MMU kann nur in dem privilegierten Hypervisor-Modus EL2 erfolgen und wird vom Umschalt-Programmcode 11 durchgeführt. Auf diese Weise kann der Programmcode der normalen Welt, welcher in niedriger privilegierteren Betriebsmodi läuft (EL0 oder EL1) die MMU nicht mehr konfigurieren und daher nicht auf den Speicherbereich der Sanktuarium Instanz zugreifen. Da die Virtualisierungsmechanismen auch im Cache implementiert sind, können der Sanktuarium-Code und dessen Daten auch im Cache-Speicher abgelegt werden.
-
Sanktuarium Instanzen werden nicht immer im System ausgeführt bzw. konfiguriert. Nur wenn eine ungeschützte Anwendung verlangt, den sensiblen Programmcode ihrer entsprechenden Sanktuariumsanwendung auszuführen, wird eine Sanktuarium Instanz eingerichtet und bereitgestellt. Das spart Ressourcen auf dem System. Die Einrichtung und Verwaltung der Sanktuarium Instanzen erfolgt hauptsächlich durch die neuen Kernelmodule (Kernel Modules), Komponenten, die Teil des ungeschützten OS (7) und des vertrauenswürdigen OS (8) sind. Das Kernelmodul des ungeschützten OS wird hauptsächlich für das Sammeln der benötigten Ressourcen aus dem ungeschützten OS verwendet. Es wählt einen Prozessorkern aus, der als Sanktuarium-Kern verwendet werden soll und lädt die Binärdateien der Sanktuariumsanwendung und Sanktuariumsbibliothek in den Speicher. Alle sicherheitsrelevanten Verwaltungsaufgaben werden vom Kernelmodul des vertrauenswürdigen OS durchgeführt. Das Kernelmodul des vertrauenswürdigen OS stellt sicher, dass eine Sanktuarium Instanz tatsächlich von dem anderen nicht vertrauenswürdigen Programmode auf dem System getrennt ist. Es überprüft die Binärdatei der Sanktuariumsbibliothek und stellt sicher, dass die Sanktuarium Instanz korrekt eingerichtet ist. Zudem konfiguriert das Kernelmodul des vertrauenswürdigen OS den verwendeten Isolationsmechanismus. Soll die Sanktuariums Instanz einen physischen Prozessorkern zugewiesen werden, wie in 2 dargestellt, konfiguriert das Kernelmodule die TZASC-Komponente. Zudem wird die Hilfe der ARM Trusted Firmware TF benötigt, um zu überprüfen, ob der ausgewählte physische Sanktuarium-Kern ordnungsgemäß heruntergefahren wurde. Soll die Sanktuarium Instanz einem virtualisierten Prozessorkern zugewiesen werden, wie in 3 dargestellt, ruft das Kernelmodul den Umschalt-Programmcode 11 auf um die MMU zu konfigurieren. Nach der Konfiguration des Isolationsmechanismus und der Überprüfung der Sanktuariumsbibliothek kann die Sanktuarium Instanz gestartet werden. Dies wird vom Kernelmodul des ungeschützten OS angestoßen. Wird die Sanktuarium Instanz auf einem physischen Prozessorkern ausgeführt, nutzt das Kernelmodul die ARM TF um den Sanktuarium-Kern zu starten. Wird die Sanktuarium Instanz auf einem virtualisierten Prozessorkern ausgeführt, nutzt das Kernelmodul den Umschalt-Programmcode um die Ausführung des Sanktuarium-Codes anzustoßen.
-
Wenn eine Sanktuarium Instanz eingerichtet und in Betrieb ist, kann die Sanktuariumsanwendung mit der entsprechenden ungeschützten Anwendung kommunizieren, um Befehle oder unsensible Daten von ihr zu empfangen. Darüber hinaus kann es alle vertrauenswürdigen Funktionalitäten des Geräteherstellers und seiner vertrauenswürdigen Anwendungen nutzen. Dies bedeutet, dass eine Sanktuariumsanwendung sensible Daten aus dem TEE extrahieren und diese dann in einer isolierten Umgebung verarbeiten kann, die von der Sanktuarium Instanz bereitgestellt wird. Mit Hilfe des Kernelmoduls im vertrauenswürdigen OS kann eine vertrauenswürdige Anwendung immer sicherstellen, dass sensible Daten nur an eine korrekt eingerichtete Sanktuarium Instanz und an die legitime Sanktuariumsanwendung, die die Daten besitzt, weitergegeben werden. Wenn die Sanktuariumsanwendung die sensiblen Daten verarbeitet hat, können sie wieder im TEE gespeichert werden und nicht sensible Verarbeitungsergebnisse können an die ungeschützte Anwendung zurückgegeben werden. An dem Punkt, an dem eine Sanktuariumsanwendung auf einem Gerät installiert ist, wird sie niemals sensible Daten enthalten. Alle sensiblen Daten werden während der Laufzeit der Sanktuariumsanwendung bereitgestellt. Um dies zu erreichen, stellt das TEE einen Mechanismus mit seinen bewährten Funktionalitäten bereit, der es einem entfernten Server oder einem lokalen Programm ermöglicht, den korrekten Zustand einer Sanktuariumsanwendung zu überprüfen.
Die Kommunikation der Sanktuariumsanwendung mit ihrer ungeschützte Anwendung oder einer vertrauenswürdigen Anwendung erfolgt über gemeinsame Speicherbereiche, während der zwischen ungeschützter Anwendung und Sanktuariumsanwendung geteilte Speicherbereich als ungeschützter gemeinsamer Speicher und der zwischen Sanktuariumsanwendung und vertrauenswürdiger Anwendung geteilte Speicher als geschützter gemeinsamer Speicher bezeichnet wird. Da der geschützte gemeinsame Speicher sensible Daten enthalten kann, ist er durch den verwendeten Isolationsmechanismus (TZASC-Hardwarekomponente oder MMU mit Virtualisierungserweiterungen) geschützt. 2 bzw. 3 zeigen beispielhaft, dass dem Prozessorkern mit der ID 0 bzw. A im Normal-Modus, der Zugriff auf die Speicheradresse 0x80 verweigert wird, da dieser Speicherbereich der Sanktuarium Instanz zugewiesen ist.
Wenn eine Sanktuarium Instanz nicht mehr gebraucht wird und im Namen der ungeschützten Anwendung geschlossen wird, arbeiten die Kernelmodule des ungeschützten und vertrauenswürdigen OS zusammen, um die Sanktuarium Instanz so abzubauen, dass keine Daten aus dem Inneren der Sanktuarium Instanz vom Programmcode der normalen Welt aufgegriffen werden können. Alle aus dem ungeschützten OS entnommenen Ressourcen werden zurückgegeben.
-
Das Sanktuarium-Design kann zur Lösung der Probleme bestehender TEE-Architekturen verwendet werden. Durch das Verschieben des sensiblen Programmcodes von Drittanbietern aus der sicheren Welt in Sanktuarium Instanzen kann jeder Mobilfunkanbieter vom Gerätehersteller die Möglichkeit erhalten, den eigenen sensiblen Programmcode auf die Geräte zu übertragen. Der Grund dafür ist, dass der gesamte Sanktuarium-Code nicht Teil der TCB des Systems ist, was bedeutet, dass der Hersteller des Mobilgeräts diesem Programmcode nicht vertrauen muss. Der Sanktuarium-Code besitzt keine privilegierten Rechte auf dem System und ist dennoch vollständig von anderem nicht vertrauenswürdigen Programmcode isoliert. Die Isolation funktioniert in beide Richtungen. Der Programmcode der normalen Welt kann nicht auf die Speicherbereiche der Sanktuarium Instanzen zugreifen und der Programmcode der Sanktuarium Instanzen kann nicht auf den Speicherbereich der normalen Welt zugreifen. Daher deckt das Sanktuarium-Design sogar den Begriff einer bösartigen Sanktuariumsanwendung ab. Eine bösartige vertrauenswürdige Anwendung hingegen wird von den aktuellen TEE-Architekturen nicht abgedeckt.
Aufgrund dieser Konstruktionsmerkmale kann der Einsatz von Sanktuariumsanwendungen so einfach sein wie der Einsatz von traditionellen ungeschützten Anwendungen, da keine umfangreichen Sicherheitsbewertungen der Sanktuariumsanwendungen erforderlich sind. Da das Sanktuarium-Design flexibel ist und nur ein einige neue Komponenten einführt, können die meisten bestehenden TEE-Lösungen so geändert werden, dass sie das Sanktuarium-Design umsetzen.
-
Eine mögliche Testimplementierung des Sanktuarium-Designs folgte der in 2 dargestellten Sanktuarium-Architektur. Als ungeschütztes OS (1) wird ein Linux verwendet, während die ungeschützten Anwendungen (2) durch C-Programme repräsentiert werden, die auf dem Linux-Kernel im Userspace laufen. Der Linux-Kernel wurde um ein eigenes Kernelmodul (7) erweitert. Als vertrauenswürdiges OS (3) wurde beispielsweise das Open-Source TEE namens OP-TEE verwendet, das auch die Implementierung von vertrauenswürdigen Anwendungen (4) ermöglicht. OP-TEE wurde um ein eigenes Kernelmodul (8) erweitert. Für die Sanktuariumsbibliothek (9) wurde der Zircon Mikrokernel wegen seiner relativ geringen Größe von 1 MB verwendet und weil er eine vollwertige Userspace-Umgebung bietet. Die Sanktuariumsanwendungen (10) sind als C-Programme geschrieben, die auf dem Zircon Mikrokernel laufen. Als Monitor-Programmcode wurde eine leicht modifizierte Version der ARM Trusted Firmware verwendet.
In der Testimplementierung wurden zwei vertrauenswürdige Anwendungen implementiert, die einige grundlegende vertrauenswürdige Funktionalitäten bieten, die für die Implementierung der meisten mobilen Dienste auf einem Gerät benötigt werden. Eine vertrauenswürdige Anwendung bietet einige Fernzertifizierungsfunktionen, mit denen der Zustand einer Sanktuariumsanwendung von einem entfernten Server aus überprüft werden kann. Wie bereits erwähnt, wird diese Funktionalität benötigt, um sensible Daten auf das Gerät zu übertragen. Die zweite vertrauenswürdige Anwendung bietet einige Versiegelungsfunktionen, mit denen beliebige Daten einer Sanktuariumsanwendung sicher und dauerhaft auf dem Gerät gespeichert werden können. Diese vertrauenswürdige Anwendung stellt auch sicher, dass nur die berechtigte Sanktuariumsanwendung ihre gespeicherten Daten extrahieren kann.
In der Testimplementierung wurde das reale Szenario einer One-Time-Password (OTP) Generator-Anwendung implementiert, die für die Zwei-Faktor-Authentifizierung weit verbreitet ist. Die Anwendung besteht aus einer ungeschützten Komponente in der normalen Welt und einer Sanktuariumsanwendung. Mit Hilfe der zwei vertrauenswürdigen Anwendungen kann die Generator-Anwendung einen geheimen Schlüssel von einem entfernten Server anfordern und diesen dann sicher aufbewahren. Zu einem späteren Zeitpunkt kann die Sanktuariumsanwendung mit dem Schlüssel und dem aktuellen Zeitstempel ein neues OTP erzeugen, welches dann an die ungeschützte Komponente der Generator-Anwendung geschickt und dem Benutzer angezeigt wird, der eine Zwei-Faktor-Authentifizierung durchführen möchte.
-
Da der OTP-Generierungsalgorithmus sensible Daten (den geheimen Schlüssel) verarbeitet, muss dieser zur Laufzeit geschützt werden. In aktuellen TEE-Architekturen wäre eine eigene vertrauenswürdige Anwendung im TEE erforderlich. Die vorliegende Implementierung hat gezeigt, dass dasselbe mit dem Sanktuarium-Design ohne die Notwendigkeit von Drittanbietercode im TEE erreicht werden kann. Die Bewertung der Implementierung zeigt, dass die Sanktuarium-Architektur praktisch ist und keinen hohen Leistungsverlust verursacht. Wichtig für die implementierte Variante bei der die Sanktuarium Instanz an einen physischen Prozessorkern gebunden wird ist, dass die Speichertrennung auf einer Pro-Kern-Basis in Hardware durchsetzbar ist.
-
Der Grund dafür ist, dass die Identifikatoren, die den verschiedenen Bus-Mastern im System zugeordnet sind, in Hardware vergeben werden und nicht per Software verändert werden können. Durch Experimente mit Virtualisierungstools von ARM, den so genannten ARM Fast Models, wurde festgestellt, dass jedem Prozessorkern mit minimalem Aufwand eindeutige Identifikatoren zugewiesen werden können, wenn die Hardware eines mobilen Geräts entworfen wird. Zudem lassen sich durch einen Filtermechanismus diese Identifikatoren auf alle Transkationen der Bus-Master übertragen welche diese über den Systembus senden.
-
Bezugszeichenliste
-
- 1
- ungeschütztes OS (Legacy OS)
- 2
- ungeschützte Anwendung (Legacy App)
- 3
- Vertrauenswürdiges OS (Trusted OS)
- 4
- Vertrauenswürdige Anwendung (Trusted App)
- 5
- ARM Trusted Firmware
- 6
- Adressraum-Kontroller (Trust Zone Address Space Controller) (TZASC)
- 7
- Kernelmodul (Kernel Module)
- 8
- Kernelmodul (Kernel Module)
- 9
- Sanktuariumsbibliothek (Sanctuary Library)
- 10
- Sanktuariumsanwendung (Sanctuary App)
- 11
- Umschalt-Programmcode (Switching Code)
- 13
- Memory Management Unit (MMU)
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- V. Costan and S. Devadas. Intel sgx explained. IACR Cryptology ePrint Archive, 2016:86, 2016 [0009]
- V. Costan, I. A. Lebedev, and S. Devadas. Sanctum: Minimal hardware extensions for strong software isolation. in USENIX Security Symposium, pages 857-874, 2016 [0009]
- J. Noorman, P. Agten, W Daniels, R. Strackx, A. Van Herrewege, C. Huygens, B. Preneel, I. Verbauwhede, and F. Piessens. Sancus: Low-cost trustworthy extensible networked devices with a zero-software trusted computing base. in 22nd USENIX Security symposium, USENIX Sec, pages 479-494, 2013 [0009]
- J. Noorman, J. V. Bulck, J. T. Mühlberg, F. Piessens, P. Maene, B. Preneel, I. Verbauwhede, J. Götzfried, T. Müller, and F. Freiling. Sancus 2.0: A low-cost security architecture for iot devices. ACM Transactions on Privacy and Security (TOPS), 20(3):7, 2017 [0009]