Die „normale Welt“ (oder „nicht sichere Welt“), die von der TrustZone definiert und umgesetzt wird, ist üblicherweise ein Hardware-Teilbereich des SoC. TrustZone gewährleistet, dass ein nicht sicherer Prozessor nur nicht sichere Ressourcen adressiert und nur nicht sichere Interrupts empfängt. Zum Beispiel kann ein Hardware-Teilbereich aus der normalen Welt die UART-, Ethernet- und USB-Schnittstellen enthalten, aber Zugriff auf ein Controller Area Network (CAN) ausschließen. CAN könnte stattdessen der sicheren Welt zugeordnet werden, wo separate Echtzeitbetriebssysteme oder Anwendungen nur laufen, um den CAN-Traffic zu managen, unabhängig vom Software-Stack der „normalen Welt“.
Im Gegensatz zu den Hardware-Teilbereichen, in denen Software aus der normalen Welt abläuft, hat Software, die in der sicheren Welt ausgeführt wird, vollständigen Zugriff auf die komplette SoC-Hardware. Aus der Perspektive der sicheren Softwareausführung wirkt und arbeitet das System deshalb nahe zu identisch zu dem, was auf einem Prozessor ohne TrustZone zu sehen wäre. Das bedeutet, dass sichere Software Zugriff auf alle Ressourcen der sicheren und normalen Welt hat.
Eine Trusted Execution Environment (TEE) verweist auf einen Software-Stack, der innerhalb der sicheren Welt läuft, und auf die Kommunikation, die es erlaubt, dass eine sichere Software mit Software aus der normalen Welt-Software interagiert. TEE-Software besteht typischerweise aus einem kleinen Mikrokernel, Anwendungen und APIs, die der sicheren Software die Kommunikation mit größerer, benutzerorientierter Software (z. B. Android, etc.) ermöglicht. Eine dieser Spezifikationen definiert ein TEE-Angebot, das manche auch als „typische RTOS“-API und -Funktionalität bezeichnen, sowie zusätzliche Fähigkeiten und APIs, die für TEE-Anwendungsfälle gut geeignet sind.
Viele Anwender verarbeiten regelmäßig Daten in der sicheren und der normalen Welt, ohne dies zu realisieren. Zum Beispiel erfordert das Online-Shopping normalerweise einen Benutzernamen und ein Password. Wenn sie aufgefordert werden, diese Authentifizierungsinformationen einzugeben, wechselt das Mobilgerät (Android-Smartphone, Apple iPad etc.) in den Sichere-Welt-Modus, wo die Daten über eine sichere Tastatur eingegeben und auf sichere Weise verarbeitet werden, bevor etwas anderes erfolgen darf. Die Bankanwendung selbst kann vollständig in der sicheren Welt ablaufen. Das Gerät kann jedoch von der sicheren in die normale Welt wechseln, um auf andere Anwendungen wie Browser oder E-Mail zuzugreifen oder um andere nicht sichere Aufgaben auszuführen.
Sicherung von Mehrkernarchitekturen
Ein einzelner ARM-basierter Kern kann Kontext der normalen und sicheren Welt ausführen. Doch was geschieht in einem SoC mit mehreren Kernen? Entwickler können möglicherweise in Situationen geraten, wo mehr als ein Kern auf die selbe sichere Anwendung zugreift. Dies erweitert nicht nur die Oberfläche für Angriffe, sondern setzt den Code möglicherweise Timing-Problemen aus, die schwer zu debuggen sind. Um dies zu korrigieren, können Entwickler ihre Geräte wie in Bild 2 dargestellt konfigurieren. In dieser Konfiguration darf nur ein Kern den Inhalt der sicheren Welt ausführen. Wenn in diesem Design eine Anwendung, die auf einem beliebigen Kern ausgeführt wird, eine sichere Applikation starten muss, dann müsste sie Kern 0 erreichen, wo der Übergang zur sicheren Welt erfolgt. Dies würde Mehrkerndesigns einfacher und robuster machen.
Das Ausführen einer Anwendung in der normalen Welt und das Verstecken sicherer Schlüssel und Algorithmen in der sicheren Welt macht zwar viel Sinn, es ist aber leider nicht sehr praktisch. Ein neuer Trend zeichnet sich ab, gemäß dem Halbleiterhersteller mehr Multicore-Bauteile ausliefern. In vielen Designs wird mehr als ein Betriebssystem verwendet, hier helfen der Hypervisor-Modus und Virtualisierungserweiterungen im SoC. Oberhalb des Hypervisor kann eine vollständigere Architektur aufgebaut werden, die die ARM-TrustZone-Technologie unterstützt. Entwickler können dann Anwendungen und Peripheriekomponeten zwischen virtuellen Maschinen partitionieren und gleichzeitig Schlüssel und proprietäre Algorithmen innerhalb der sicheren Welt absichern.
ARM TrustZone mit Hypervisor
Bild 3 zeigt ein Design mit einem ARM-Cortex-A-15-Prozessor. In der normalen Welt befindet sich der Hypervisor, der mit zwei virtuellen Maschinen ausgeführt wird. Zwei Linux-Instanzen, auf denen in der normalen Welt virtuelle Maschinen ablaufen, sind so eingerichtet, dass Kernel und Treiber im Kernel-Mode-Kontext ausgeführt werden, während Benutzeranwendungen dem Benutzermodus zugeordnet werden. TEE und sichere Anwendungen werden der sicheren Welt zugeordnet. Derzeit gibt es viele ARM-basierte SoC-Prozessoren, die rund um die Cortex-A15-Architektur aufgebaut sind und diese Art von Konfiguration unterstützen.