TrustZone bildet eine vollumfänglich sicherbare Real-Time-Clock (RTC) für einen Wake-up-Timer Alarm A/Alarm B sowie den individuellen Zeitstempel für sichere bzw. nicht sichere Konfiguration.
Globaler TrustZone-Controller
Der sogenannte Global TrustZone Controller (GTZC) umfasst drei Untergruppen (Subblocks):
Der TrustZone-Sicherheitscontroller (TZSC) definiert den sicheren, privilegierten Zustand der Master/Slave-Peripheriegeräte und bestimmt die Größe eines nicht sicheren Bereiches im Watermark-Memory-Peripheral-Controller (MPCWM). Er gibt ausgewählten integrierten Peripherieeinheiten im Rahmen der gemeinsamen Nutzung der RCC und E/A-Logik Kenntnis über den sicheren Status der „Securable Peripherals“, wie RCC und GPIOs.
Der blockbasierte Speicherschutzcontroller (MPCBB) steuert sichere Zustandsmodi aller Blöcke (256-Byte-Seiten) des zugehörigen SRAM.
Der TrustZone-Zugriffscontroller für illegale Zugriffsereignisse (TZIC) sammelt alle illegalen Zugriffsereignisse im System und erzeugt einen sicheren Interrupt zum NVIC (Nested-Vectored-Interrupt-Controller). Mit den Unterblöcken werden die TrustZone und privilegierte Attribute innerhalb des gesamten Systems konfiguriert.
Die wichtigsten Merkmale des GTZC:
drei unabhängige 32-bit-AHB-Schnittstellen für TZSC, MPCBB und TZIC
MPCBB und TZIC sind nur mit sicheren Transaktionen zugänglich
der private wie auch der nicht private Bereich im TZSC wird in Bezug auf sicheren/nicht sicheren Zugriff unterstützt.
TrustZone-Unterstützung im Manipulations- und Sicherungsregister (TAMP)
Für die manipulationssichere/nicht sichere Konfiguration besteht im TAMP eine Backup-Registerkonfiguration in mehrere konfigurierbare Speicherbereiche wie folgt: ein sicherer Lese- zu Schreibbereich, ein sicherer Schreib- zu Lese-Bereich, ein nicht sicherer Lese- zu Schreibbereich und ein monotoner Zähler.
TrustZone im integrierten Flash-Speicher
TrustZone im on-Chip-integrierten Flash-Speicher (Embedded Flash-Memory) umfasst 512 kB zum Speichern von Programmen und Daten und ermöglicht „Single/Dual Bank“-Betriebszustände bzw. den Auslesemodus „Read While Write“ (RWW) im Dual-Bank-Modus.
Für den Flash-Speicher stehen vier Schutzstufen zur Verfügung:
Level 0.5 ist nur bei der TrustZone-Aktivierung verfügbar. Hier sind alle Lese-/Schreibvorgänge vom bzw. zum nicht sicheren Flash-Speicherbereich möglich, unter der Bedingung, dass TrustZone aktiviert und kein Schreibschutz eingestellt ist. Der Debug-Zugriff auf den gesicherten Bereich ist ausgeschlossen, auf nicht sichere Bereiche jedoch weiterhin möglich.
Level 0: keine Leseschutz
Level 1: Speicher-Leseschutz: Der Flash-Speicher kann nicht gelesen bzw. beschrieben werden, wenn die Debug-Funktionen verbunden sind bzw. „Boot in RAM“ oder der Bootloader eingestellt sind. Ist TrustZone aktiviert, ist das „Non-secure Debug“ – also das nicht sichere Debuggen – möglich, der Start im SRAM dagegen ausgeschlossen.