Alle diese Maßnahmen erfordern zum leistungsfähige Hardware und eine sichere Software. Ein weiterer sicherheitskritischer Aspekt ist, dass nur ein sicheres, also zuverlässiges und gegen Ausfälle abgesichertes System (Safety) gegen Angriffe von außen widerstandsfähig ist. Zusätzliche, in die CPU integriete Hardware-Beschleuniger unterstützen die Software und reduzieren die CPU-Last. Das hat unmittelbaren Einfluss auf die Leistungsfähigkeit des Systems (Performance) und auf den Leistungsbedarf (Power Consumption).
Es sind vielfältige Maßnahmen notwendig, um ein sicheres System zu realisieren. Die wichtigsten sollen in den folgenden Abschnitten beschrieben werden:
Ein sicherer Systemstart (Secure Boot) muss sicherstellen, dass von der CPU nur ein authentifizierter Programmcode ausgeführt werden darf. Üblicherweise ist diese Software der Bootloader. Secure Boot, auch High Assurance Boot genannt, ist ein wichtiges Element der Sicherheitsmaßnahmen und verhindert, dass die CPU nicht vertrauenswürdigen beziehungsweise unautorisierten Code ausführt. Es muss auch sichergestellt werden, dass ungewollte Modifikationen in der CPU-Konfiguration durch ungewollte Programmmodifikationen erkannt und unterbunden werden. Das ungewollte Auslesen von sensiblen Daten aus dem Baustein ist somit nicht möglich. Der Arbeitsprozess für Secure Boot enthält meist folgende Schritte: Signieren des Images, Verschlüsseln des Images sowie Anwendung einer Secure Boot-Sequenz.
Schutz durch ARM TrustZone
Hinter dem Begriff TrustZone von ARM verbirgt sich ein Konzept, das eine nicht sichere beziehungsweise nicht vertrauenswürdige Umgebung in der Hardware von einer sicheren, vertrauenswürdigen Umgebung trennt, indem eine nicht sichere Software vom Zugriff auf sichere Ressourcen blockiert wird. Die Software befindet sich innerhalb dieses Prozesses entweder in einer sicheren oder in einer nicht sicheren Umgebung.
Per Software erfolgt ein Wechsel zwischen diesen beiden Umgebungen, die als sicherer Monitor (Cortex-A) oder als Kernlogik (Cortex-M) bezeichnet werden. Die beiden CPU-Architekturen bieten ähnliche Sicherheitskonzepte, aber mit einer völlig anderen Implementierung. Das Konzept der sicheren und nicht sicheren Umgebung geht über den Prozessor hinaus, um Speicher, Software, Schnittstellen, Bussysteme, Interrupts und Peripheriegeräte innerhalb eines Embedded-Moduls zu umfassen.
Als Basis bietet die TrustZone-Technologie eine systemweite Sicherheit und die Möglichkeit, eine vertrauenswürdige Plattform zu schaffen. Das System kann so gestaltet werden, dass jeder Teil auch ein Teil der sicheren Umgebung ist, einschließlich Debug, Peripherie, Interrupts und Speicher. Durch die Verwendung eines Sicherheitssystems wie der TrustZone von ARM können zu schützende Teile vor Software-Angriffen und gängigen Hardware-Angriffen bewahrt werden.
NXP unterstützt beispielsweise auf den i.MX-Prozessoren mit eigener IP zusätzlich die Funktion, ausgewählten Code in einem abgesicherten CPU-Modus zu isolieren. Zusätzlich befinden sich Hardware Firewalls zwischen CPU beziehungsweise den DMA-Mastern und den Peripherieeinheiten und dem Speicher. Das Konzept ist vergleichbar mit zwei virtuellen Prozessorkernen, wovon der eine als unsicher gilt und nur Zugriff auf nicht-sichere Ressourcen hat, während der andere sichere Kern auf alle Systemressourcen zugreifen kann.